by humanplane
A Claude Code plugin that watches how you work, learns your patterns, and evolves itself to help you better.
# Add to your Claude Code skills
git clone https://github.com/humanplane/homunculusGuides for using cli tools skills like homunculus.
Last scanned: 5/26/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-26T07:46:16.290Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}homunculus is an open-source cli tools skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by humanplane. A Claude Code plugin that watches how you work, learns your patterns, and evolves itself to help you better. It has 379 GitHub stars.
Yes. homunculus passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/humanplane/homunculus" and add it to your Claude Code skills directory (see the Installation section above).
homunculus is primarily written in Shell. It is open-source under humanplane on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other CLI Tools skills you can browse and compare side by side. Open the CLI Tools category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh homunculus against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Based on votes and bookmarks from developers who liked this skill

v2.0-alpha — A complete rewrite. Instinct-based learning. Reliable observation. Real evolution.
In old alchemical texts, a homunculus was a tiny being grown in a sealed vessel—alive, aware, bound to its creator alone.
This is that idea, alive in your terminal.
# Add the marketplace
/plugin marketplace add humanplane/homunculus
# Install the plugin
/plugin install homunculus@homunculus
# Birth it
/homunculus:init
Homunculus is a Claude Code plugin that tries to be more than a tool. It:
The more you work together, the more it becomes shaped by you.
v1 relied on skills to observe. Skills are probabilistic—they fire ~50-80% of the time based on Claude's judgment. This meant:
v2 uses hooks for observation (100% reliable) and instincts as the atomic unit of learned behavior.
| v1 | v2 |
|---|---|
| Skills try to observe (unreliable) | Hooks observe (100%) |
| Analysis in main context | Analysis in background agent (Haiku) |
| Evolves big chunks (commands/skills) | Evolves instincts first, clusters into bigger things |
| No sharing | Export/import instincts |
An instinct is a small learned behavior:
---
trigger: "when writing new functions"
confidence: 0.7
domain: "code-style"
---
# Prefer Functional Style
## Action
Use functional patterns over classes.
## Evidence
Observed 5 instances of functional pattern preference.
Instincts are:
Session Start
↓
Observer agent runs (background, Haiku)
↓
Observations → Instincts (auto-approved)
↓
Instincts cluster around a domain
↓
User runs /homunculus:evolve
↓
Bigger structures emerge:
- Command (if user-invoked)
- Skill (if auto-triggered)
- Agent (if needs isolation/depth)
Fully automatic except evolution. You just work. It learns.
plugins/homunculus/
├── .claude-plugin/
│ └── plugin.json # v2.0.0
├── hooks/
│ └── hooks.json # Observation capture
├── scripts/
│ ├── observe.sh # Captures prompts and tool use
│ ├── on_stop.sh # Updates session count
│ └── test-homunculus.sh # Test suite
├── agents/
│ └── observer.md # Background analyzer (Haiku)
├── skills/
│ ├── session-memory/ # Spawns observer, loads context
│ └── instinct-apply/ # Surfaces relevant instincts
└── commands/
├── init.md # Birth/wake
├── status.md # Check in
├── evolve.md # Create capability from clusters
├── export.md # Share instincts
└── import.md # Adopt instincts
your-project/.claude/homunculus/
├── identity.json # Who you are, your journey
├── observations.jsonl # Current session observations
├── observations.archive.jsonl # Processed observations
├── instincts/
│ ├── personal/ # Learned instincts (auto-approved)
│ └── inherited/ # Imported from others
└── evolved/
├── agents/ # Generated specialist agents
├── skills/ # Generated skills
└── commands/ # Generated commands
Session Start
↓
session-memory skill activates
├→ Spawn observer agent (background, Haiku)
├→ Load identity + instincts
└→ Greet with context
↓
Observer Agent (parallel, silent)
├→ Read observations.jsonl
├→ Find patterns
├→ Create instincts → personal/ (auto-approved)
├→ Check clustering → flag in identity.json
└→ Archive observations
↓
User Works
↓
Hooks capture EVERYTHING
├→ UserPromptSubmit → observations.jsonl
└→ PostToolUse → observations.jsonl
↓
Session End (Stop hook)
└→ Session count increments
↓
Next Session
└→ Observer processes new observations...
Only manual step: /homunculus:evolve when 5+ instincts cluster.
| Command | What It Does |
|---|---|
/homunculus:init |
Birth or wake |
/homunculus:status |
Check in (includes journey) |
/homunculus:evolve |
Create capability from clustered instincts |
/homunculus:export |
Share instincts |
/homunculus:import |
Adopt instincts |
5 commands. Everything else is automatic.
| Skill | When It Activates |
|---|---|
session-memory |
Session start — spawns observer, loads context |
instinct-apply |
During work — surfaces relevant instincts |
| What | Reliability |
|---|---|
| Observation capture (hooks) | 100% |
| Observer agent (session start) | 100% |
| Instinct creation | 100% |
| Commands | 100% |
| Skills (session-memory, instinct-apply) | ~50-80% |
The critical path is fully deterministic. Skills enhance the experience but aren't required.
Instincts are tagged with domains for clustering detection:
| Domain | Examples |
|---|---|
code-style |
Functional patterns, naming conventions |
testing |
Test-before-commit, coverage requirements |
git |
Commit message format, branch naming |
debugging |
Error→fix sequences, logging preferences |
file-organization |
Where to put things |
tooling |
Tool sequences, preferred tools |
communication |
Comment style, documentation |
When 5+ instincts accumulate in a domain, evolution can propose a specialist agent or skill.
# Export your instincts
/homunculus:export
# Creates .claude/homunculus/exports/instincts-TIMESTAMP.tar.gz
# Import someone else's
/homunculus:import path/to/instincts.tar.gz
# Goes to inherited/, not personal/
Inherited instincts are kept separate from personal ones. You can see where each behavior came from.
Run the test suite:
./plugins/homunculus/scripts/test-homunculus.sh
Tests cover:
When you birth it, it asks how you work:
Technical — Fast and sharp. No hand-holding.
Semi-technical — A thinking partner.
Non-technical — Focused on outcomes.
Chaotic — Flows with whatever happens.
Same creature, different personality.
Everything is open. Fork it. Reshape its instincts. Change how it thinks.
# Edit the personality
vim CLAUDE.md
# Add a command
vim plugins/homunculus/commands/my-thing.md
# Add a skill
mkdir plugins/homunculus/skills/my-skill
vim plugins/homunculus/skills/my-skill/SKILL.md
The homunculus you end up with should feel like something you grew—because you did.
There's a landing page in /landing (React + Tailwind). Run it:
cd landing && npm install && npm run dev
MIT License
A small thing, growing toward the light.