Persistent memory for Claude Code. SQLite + FTS5. No daemon, no vector DB, no bloat.

$ npm install -g eagle-mem && eagle-mem install

Getting started

Install once. Open Claude Code. That’s it.

  1. Install
    npm install -g eagle-mem && eagle-mem install
    One-time setup. Registers hooks in Claude Code, creates the database, installs skills.
  2. 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.

  1. cd ~/projects/my-app
  2. eagle-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 structure
  • eagle-mem index — re-index source files for code search
  • eagle-mem memories — view or sync mirrored Claude Code memories and plans
  • eagle-mem tasks — view mirrored Claude Code tasks
  • eagle-mem update — re-deploy hooks after npm update
  • eagle-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 /compact when 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 -N via updatedInput. 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