repomemory

Persistent, structured memory for AI coding agents. Your repo never forgets.

repomemory

Your codebase never forgets.

AI agents lose context every session. repomemory fixes that — one command creates a persistent, searchable knowledge base that any AI tool can read, search, and write to.

npm version npm downloads license CI

npx repomemory go

The Problem

Every time you open a project with Claude Code, Cursor, Copilot, or any AI coding agent:

  • It re-discovers your architecture from scratch
  • It proposes changes that were already debated and rejected
  • It re-introduces bugs that were already fixed

Your CLAUDE.md / .cursorrules helps, but it's static and gets stale.

The Solution

.context/
├── index.md              ← Quick orientation (loaded every session)
├── facts/                ← Architecture, database, deployment
├── decisions/            ← "We chose Drizzle over Prisma because..."
├── regressions/          ← "This broke before. Here's what happened."
├── preferences/          ← Your coding style — follows you across all repos
├── sessions/             ← Auto-captured AI session summaries
└── changelog/            ← Monthly git history syncs

Facts tell agents how things work. Decisions prevent re-debating. Regressions prevent re-breaking. Preferences teach agents how you code.

Quick Start

With an API key (Claude Code, terminal workflows)

npx repomemory go

One command: sets up global profile, creates .context/, configures Claude Code + Cursor, runs AI analysis, prints CLAUDE.md instructions.

With Cursor (no API key needed)

npx repomemory setup cursor

This installs everything Cursor needs:

  • MCP server in ~/.cursor/mcp.json (auto-starts repomemory in every project)
  • Rules in .cursor/rules/repomemory.mdc (teaches Cursor's AI to use context)
  • 6 commands in .cursor/commands/ (run with / in Cursor chat)

Then in Cursor chat, type:

/repomemory-analyze

Cursor's own AI scans your repo and populates .context/ via the MCP tools. No external API key required — your Cursor subscription handles it.

Available Cursor commands:

CommandWhat it does
/repomemory-analyzeFull repo analysis — populates facts, decisions, index
/repomemory-orientQuick orientation at start of session
/repomemory-searchSearch the knowledge base
/repomemory-recordRecord a fact, decision, or regression
/repomemory-sessionSave a session summary
/repomemory-statusShow context coverage

Guided wizard

npx repomemory wizard

Walks through provider selection, tool integration, and first analysis. If no API keys are detected, offers a "None — I use Cursor" option that skips external analysis entirely.

Non-interactive (CI-safe)

npx repomemory go --yes --provider anthropic --embedding-provider gemini --max-files 80

No prompts when --yes / --defaults / --no-prompt is used.

MCP Server — Agents With Real Memory

The real power is the MCP server. When configured via repomemory setup claude, it auto-starts with Claude Code and gives agents 6 tools:

ToolWhat It Does
context_searchHybrid keyword + semantic search across repo + global context
context_auto_orientOne-call orientation: index, preferences, recent sessions
context_writeWrite entries with smart scope routing (preferences → global)
context_readRead full content, repo-first with global fallback
context_listBrowse entries with [repo]/[global] provenance tags
context_deleteRemove stale knowledge
Agent: "Let me orient myself in this project..."
→ context_auto_orient()
→ Returns: project overview, preferences, recent sessions, recent changes

Agent: "Let me search for context about the auth flow..."
→ context_search("authentication flow")
→ Auto-routes to facts/ category, returns compact results

Agent: "I found a race condition. Let me record this."
→ context_write(category="regressions", filename="token-refresh-race", content="...")
→ Persisted. Detects if it supersedes an existing entry.

Sessions are auto-captured on shutdown. Zero config — repomemory setup claude handles everything.

Supported Tools

ToolIntegrationAPI Key Required?
Claude CodeMCP server (auto-starts) + post-commit hookYes (for analysis)
CursorMCP server + rules + 6 slash commandsNo — uses Cursor's built-in AI
GitHub Copilotcopilot-instructions.mdYes (for analysis)
Windsurf.windsurfrulesYes (for analysis)
Cline.clinerulesYes (for analysis)
Aider.aider.conf.ymlYes (for analysis)
Continue.continue/rules/Yes (for analysis)

Cursor users: You don't need any API key. Run npx repomemory setup cursor, then use /repomemory-analyze in Cursor chat. Cursor's AI does the analysis using the MCP tools — whatever model Cursor is using (it can even switch models mid-task).

Supported Providers

ProviderModelsEnv Variable
anthropicclaude-sonnet-4-6, claude-opus-4-6ANTHROPIC_API_KEY
openaigpt-4o, o3-miniOPENAI_API_KEY
geminigemini-2.0-flash, gemini-2.5-proGEMINI_API_KEY / GOOGLE_API_KEY
grokgrok-3, grok-3-miniGROK_API_KEY / XAI_API_KEY

Embeddings (optional, for semantic search): Gemini text-embedding-004 (free, default) or OpenAI text-embedding-3-small. Auto-detected from available API keys.

All Commands

repomemory go                            # One-command setup (add --yes for non-interactive)
repomemory wizard                        # Interactive guided setup
repomemory analyze                       # AI-powered repo analysis
repomemory analyze --merge               # Update without overwriting edits
repomemory analyze --dry-run             # Preview without API call
repomemory search <query>                # Search knowledge base from terminal
repomemory status                        # Coverage and freshness report
repomemory doctor                        # Diagnostics and health check
repomemory dashboard                     # Local web UI (localhost:3333)
repomemory sync                          # Sync git history to changelog
repomemory setup <tool>                  # Configure Claude/Cursor/Copilot/etc
repomemory hook install                  # Auto-sync changelog on commits
repomemory global list                   # Manage global developer context
repomemory global export                 # Export global context as JSON

Configuration

.repomemory.json in your repo root (all fields optional):

{
  "provider": "anthropic",
  "model": "claude-sonnet-4-6",
  "embeddingProvider": "gemini",
  "hybridAlpha": 0.5,
  "maxFilesForAnalysis": 80,
  "enableGlobalContext": true
}

Custom ignorePatterns and keyFilePatterns are additive — they extend built-in defaults, not replace them.

Why Not Just CLAUDE.md?

CLAUDE.mdrepomemory
MaintenanceManualAI-generated + agent-maintained
SearchLoad everythingHybrid keyword + semantic
Cross-toolClaude Code only7 tools supported
Team knowledgeOne person writesEvery AI session contributes
DecisionsMixed in with instructionsStructured, searchable
RegressionsNot trackedPrevents repeat bugs
SessionsNot trackedAuto-captured on shutdown
FreshnessUnknownStaleness detection + auto-purge

repomemory doesn't replace CLAUDE.md — it complements it. CLAUDE.md is for instructions and rules. .context/ holds the knowledge that grows over time.

Contributing

See CONTRIBUTING.md for development setup, testing, and contribution guidelines.

License

MIT


Built for developers who are tired of AI agents forgetting everything between sessions.

Report Bug · Request Feature · npm

Related Servers