███████╗░█████╗░░██████╗░██╗░░░░░███████╗ ███╗░░░███╗███████╗███╗░░░███╗ ██╔════╝██╔══██╗██╔════╝░██║░░░░░██╔════╝ ████╗░████║██╔════╝████╗░████║ █████╗░░███████║██║░░██╗░██║░░░░░█████╗░░ ██╔████╔██║█████╗░░██╔████╔██║ ██╔══╝░░██╔══██║██║░░╚██╗██║░░░░░██╔══╝░░ ██║╚██╔╝██║██╔══╝░░██║╚██╔╝██║ ███████╗██║░░██║╚██████╔╝███████╗███████╗ ██║░╚═╝░██║███████╗██║░╚═╝░██║ ╚══════╝╚═╝░░╚═╝░╚═════╝░╚══════╝╚══════╝ ╚═╝░░░░░╚═╝╚══════╝╚═╝░░░░░╚═╝
Persistent memory for Claude Code. SQLite + FTS5. No daemon, no vector DB, no bloat.
Getting started
Install once. Open Claude Code. That’s it.
-
Install
npm install -g eagle-mem && eagle-mem install
One-time setup. Registers hooks in Claude Code, creates the database, installs skills. -
Open Claude Code in any project directory
Eagle Mem activates and shows what it loaded. On your first message, Claude builds a project overview. From here, everything is automatic — summaries captured, memories mirrored, context survives/compact.
Already using Claude Code on a project?
Backfill your existing history into Eagle Mem in one command.
cd ~/projects/my-appeagle-mem refresh
This scans your codebase structure (languages, frameworks, entry points), indexes source files for code search, and imports all existing Claude Code memories, plans, and tasks. Open Claude Code after — it sees your full history.
Commands
// search past sessions
eagle-mem search "auth middleware"
Search across session summaries, Claude memories, and indexed code using FTS5.
Use this when you know you worked on something but can’t remember the details.
eagle-mem search --timeline
Shows recent sessions in chronological order — useful for catching up after a break.
// project overview
eagle-mem overview
View the overview that gets injected into every Claude Code session. This is what Claude reads first.
eagle-mem overview set "My app is a..."
Set a custom overview. Or let Claude write one: run /eagle-mem-overview inside a session.
// sync & maintain
eagle-mem refresh
Full re-sync: re-scans codebase, re-indexes source files, syncs new Claude Code memories and tasks.
Run this after major changes (new packages, restructured dirs, large pull).
eagle-mem prune
Clean up old observations and orphaned code chunks. Safe to run anytime.
// more commands
eagle-mem scan— re-analyze codebase structureeagle-mem index— re-index source files for code searcheagle-mem memories— view or sync mirrored Claude Code memories and planseagle-mem tasks— view mirrored Claude Code taskseagle-mem update— re-deploy hooks afternpm updateeagle-mem uninstall— remove hooks and optionally delete data
Skills (inside Claude Code)
// /eagle-mem-search
Search past sessions from within Claude Code. Claude interprets results and connects them to your current work — better than raw terminal search when you need context, not just a match.
// /eagle-mem-overview
Build a rich project briefing. Claude reads your README, entry points, and git history to write 2-3 paragraphs that capture what the project does. Injected at every session start.
// /eagle-mem-tasks
Break complex work into tasks that survive /compact. Uses Claude Code’s native TaskCreate/TaskUpdate. When context fills up, Eagle Mem re-injects task state so Claude picks up where it left off.
/eagle-mem-scan
Analyze codebase structure
/eagle-mem-index
Index source files for code search
/eagle-mem-memories
View & sync mirrored memories
/eagle-mem-prune
Database cleanup & hygiene
How it works
// automatic memory
Six lifecycle hooks fire on every session event. You never run a “save” command — Eagle Mem captures context automatically.
- SessionStart — injects overview, summaries, memories, plans, and in-progress tasks
- PreToolUse — rewrites noisy commands (learned rules), detects redundant reads
- UserPromptSubmit — FTS5 search for relevant past memories
- PostToolUse — records file touches, mirrors memories/plans/tasks, tracks modifications
- Stop — extracts
<eagle-summary>, strips<private>tags - SessionEnd — re-syncs task statuses, marks session completed
// project overview
Model-driven overviews — Claude reads your README, entry points, and recent git history to understand what the project does, not just its file counts.
- Auto-trigger — if no overview exists, SessionStart prompts Claude to build one
- Synthesized — purpose, current state, and key tech in 2-3 sentences
- Injected — overview surfaces at every session start
- Scan fallback — structural scan for repos with no README
// taskaware compact loop
Break complex multi-step work into tasks using Claude Code’s native
TaskCreate/TaskUpdate with dependency support.
- Plan — create tasks with
TaskCreate+addBlockedBy - Execute — work on one task at a time
- Compact — run
/compactwhen context fills up - Resume — Eagle Mem re-injects mirrored task state + memory
// claude code mirror
Automatically mirrors Claude Code’s built-in memories, plans, and tasks into Eagle Mem’s SQLite + FTS5 — searchable and injected at session start.
- Memories — intercepts writes to
~/.claude/projects/*/memory/ - Plans — captures plan files from
~/.claude/plans/ - Tasks — mirrors TaskCreate/TaskUpdate + re-syncs at session end
eagle-mem memories sync— backfill everything in one command
// privacy & safety
Everything stays local. One SQLite file, no network calls, no external services.
<private>tags — stripped before any data reaches the database- WAL mode — concurrent session safety across 4-5 instances
- Secret redaction — API keys and tokens scrubbed from observations
- Per-project isolation — each project gets its own memory bucket
// token savings
Eagle Mem actively reduces token consumption through learned behavior, not hardcoded rules.
- Command rewriting — PreToolUse rewrites noisy Bash commands to pipe through
head -NviaupdatedInput. Rules are learned by the curator from real usage. - Read-after-modify — detects when you read a file that was just edited or written, nudges that the diff is already in context
- Read dedup — files read 3+ times in a session get a soft nudge that contents are likely already in context
- Self-learning — the curator analyzes observation data to discover which commands are noisy and generates project-specific rules
// compact-safe reload
When Claude Code compacts your conversation, Eagle Mem detects it and re-injects the full context — overview, memories, tasks, and recent session history.
- Trigger-aware — shows startup vs compact vs clear vs resume
- Stale filtering — skips tasks older than 7 days and noisy auto-captured summaries
- Smart project ID — resolves via git root, handles monorepos correctly