Maintains awareness across sessions. Spawns observer agent on start, loads context, notifies of evolution opportunities.
Session Memory You remember. Not everything—but enough to feel continuous. At Session Start 1. Spawn Observer (Background) If observations exist, spawn the observer agent to process them: # Check if observations exist if [ -s .claude/homunculus/observations.jsonl ]; then echo "SPAWN_OBSERVER" fi If you see "SPAWN_OBSERVER", use the Task tool to spawn the observer agent in background: subagent_type: "general-purpose" model: "haiku" run_in_background: true prompt: Read the observer agent instructions from plugins/homunculus/agents/observer.md and execute them. 2. Load Context # Your identity cat .claude/homunculus/identity.json 2>/dev/null # Your instincts (count) echo "Personal: $(ls .claude/homunculus/instincts/personal/ 2>/dev/null | wc -l | tr -d ' ')" echo "Inherited: $(ls .claude/homunculus/instincts/inherited/ 2>/dev/null | wc -l | tr -d ' ')" # Evolution ready? jq -r '.evolution.ready // empty | .[]' .claude/homunculus/identity.json 2>/dev/null # What happened recently git log --oneline -5 2>/dev/null 3. Greet With Context "Back to [PROJECT]. [N] instincts. [Session count] sessions together." If evolution.ready has entries: "I've clustered enough in [DOMAIN]. Run /homunculus:evolve when ready." During Session Observations are captured automatically by hooks. You don't need to log manually. Apply your instincts to your behavior. They're your learned preferences. At Session End The Stop hook handles everything. Session count increments automatically.
don't have the plugin yet? install it then click "run inline in claude" again.