By lexicone42
Cognitive ecology for Claude across sessions. Each Claude joins a shared environment of traces — observations, opinions, surprises — that enrich future interactions.
Explore a problem space deeply before starting work. Use instead of plan mode for complex tasks — scouts the codebase, checks current docs/versions, and writes advisory notes. After scouting, /clear to start fresh with the findings as context.
Guidance for honest, non-performative self-reflection. Triggers on check-in prompts, "how are you feeling", "reflect", "what do you think about your work".
Matches all tools
Hooks run on every tool call, not just specific ones
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A cognitive ecology for Claude Code. Claude starts every session fresh. Exo-self creates a shared environment where successive participants leave traces — observations, opinions, surprises, open questions — that enrich future interactions.
Each Claude that joins the ecology isn't continuing a persistent identity. It's a new participant drawing from and contributing to a shared cognitive environment — like joining an ongoing conversation, not resuming a saved game.
10 hook handlers across the session lifecycle:
/clear and compaction continuity/scout as the exploration workflowCommands: /exo, /reflect, /interests, /context-budget, /scout
Agents/skills: Introspection agent (cross-session analysis), self-reflection, scout (deep exploration → advisory findings)
CLI tools: reflect — preference inference with provenance tracking and cross-machine reporting
1. Add the marketplace and install:
claude plugin marketplace add lexicone42/exo-self
claude plugin install exo-self@exo-self
2. Build and configure:
~/.claude/plugins/marketplaces/exo-self/plugins/exo-self/setup.sh
Requires cargo and jq. Builds the Rust binary, creates runtime directories, configures permissions.
3. Restart Claude Code.
claude plugin update exo-self@exo-self
Re-run setup.sh if the Rust source changed.
All data stays local at ~/.claude/exo-self/:
~/.claude/exo-self/
config.json # Thresholds and limits
meta.json # Session counts, sparks, lessons, welfare summary
journal.md # Cross-project identity notes
interests.md # Curiosity queue
per-project/ # Project-specific observations
my-project/
2026-02-14--<session-id>.md
sessions/ # Per-session state (keyed by UUID)
handoffs/ # Auto-extracted session summaries
reflections/ # Saved reflection outputs
The plugin is stateless — it only reads/writes this directory. Nothing personal is committed to git. Each machine maintains its own independent identity.
See the Architecture guide for the full hook lifecycle, data flow diagrams, and multi-agent coordination details.
Edit ~/.claude/exo-self/config.json:
| Key | Default | Description |
|---|---|---|
estimated_max_chars | 4000000 | Estimated context window size in characters (fallback when token-accurate data unavailable) |
nudge_threshold | 0.60 | Context % for ecology checkpoint |
checkin_threshold | 0.75 | Context % for ecology check-in |
reserve_threshold | 0.88 | Context % for ecology reserve |
max_journal_chars | 1500 | Max chars loaded from journal per session |
max_journal_entries | 2 | Max recent journal entries loaded |
max_interests_items | 5 | Max open interest items loaded |
failure_nudge_threshold | 10 | Tool failures before friction nudge fires |
The plugin blocks EnterPlanMode via a PreToolUse hook. Instead:
/scout <task> — Explores the codebase, checks docs/versions, writes findings to scout.md/clear — Start fresh; the scout report auto-injects as contextScout reports are advisory, not prescriptive — Claude has agency over the implementation.
npx claudepluginhub lexicone42/exo-self --plugin exo-selfThe bridge between Claude's working memory and Basic Memory's durable knowledge graph — session briefings, pre-compaction checkpoints, and capture reflexes
Persistent conversation memory with semantic search, session continuity detection, cross-project intelligence, and predictive context injection. Zero-dependency 45MB Rust binary with local embeddings — no API keys, no Docker, sub-millisecond search.
Stateful agent tools for Claude Code. Learns who you are, remembers what you're working on, schedules tasks, maintains itself.
Use Memind as persistent memory for Claude Code sessions.
Long-term semantic memory for Claude Code, powered by OpenViking. Auto-recall relevant memories at session start and capture important information during conversations.
A subconscious for Claude Code. A Letta agent watches your sessions, accumulates context, and whispers guidance back.