Your AI tools forget. crossmem doesn't.
Cross-tool memory for AI coding agents. One pip install, zero cloud, zero accounts — your Claude Code, GitHub Copilot, and Gemini CLI sessions remember everything, across every project, automatically.
pip install crossmem # 1. Install
crossmem setup # 2. Done. All tools configured.That's it. Every AI coding session now starts with cross-project context.
40-50% of tokens in a typical AI coding session are wasted re-establishing context the model already knew last session. In a real experiment, two AI agents (Claude Code and GitHub Copilot) both bypassed their own memory tools and re-derived everything from training data — proving the problem they were explaining.
crossmem fixes this by injecting remembered context before the AI starts thinking — not as a suggestion it can ignore, but as enforced context.
You: "How should I handle credentials in this new service?"
AI: [crossmem recalls patterns from 3 of your projects]
Based on your backend-api, mobile-app, and infra-tools projects,
you use a middleware layer for credential masking — keys in
Secret Manager, never env vars, masked in logs via
_mask_sensitive_headers(). Applying the same pattern here.
No copy-pasting. No "I already solved this." Your AI remembers — across every project.
| crossmem | Mem0 | Letta | Zep | |
|---|---|---|---|---|
| Install | pip install + SQLite |
Cloud API key or self-hosted Qdrant | Server + Docker | Postgres + Go server |
| Cross-tool | Claude + Copilot + Gemini | Single app | Single app | Single app |
| Cross-project | All projects, one index | Per-app scoped | Per-agent scoped | Per-session scoped |
| Protocol | MCP-native | REST API | Custom framework | SDK |
| Infrastructure | None. Local SQLite. | Cloud or Qdrant + server | Letta server | Postgres + server |
| Enforcement | Hook injects context before generation | LLM decides to call API | LLM self-manages memory | LLM calls SDK |
| Tool | Auto-recall | How |
|---|---|---|
| Claude Code | SessionStart hook (startup/resume/compact) + UserPromptSubmit hook (every prompt) | crossmem install-hook |
| GitHub Copilot | Injects memories into copilot-instructions.md | crossmem install-hook --tool copilot |
| VS Code Agent Mode | SessionStart + UserPromptSubmit hooks (Preview) | crossmem install-hook --tool copilot-agent |
| Gemini CLI | Instruction in GEMINI.md | crossmem install-instructions |
cd ~/any-project
claude # Claude Code: hook fires, memories injected automatically
code . # Copilot: reads context pre-injected into copilot-instructions.md
gemini # Gemini: calls mem_recall via instruction in GEMINI.md
- Auto-ingest — pulls latest memories from Claude, Copilot, and Gemini native files
- Auto-init — first time in a project? Indexes README.md, CLAUDE.md, etc.
- Tiered recall — returns most relevant context within a token budget: curated memories > tool memories > CLAUDE.md > CONTRIBUTING.md > README.md
- Mid-session recall (Claude Code + VS Code Agent Mode) — every prompt is searched against your memories. Relevant context is injected before the model responds — no manual
mem_recallneeded. - Learn — AI saves new discoveries via
mem_saveduring sessions. Knowledge compounds.
Add to your tool's MCP config so AI assistants can search, recall, and save memories in real-time:
Claude Code (~/.mcp.json)
{
"mcpServers": {
"crossmem": {
"command": "crossmem-server"
}
}
}GitHub Copilot (.vscode/mcp.json)
{
"servers": {
"crossmem": {
"command": "uvx",
"args": ["--from", "crossmem", "crossmem-server"]
}
}
}Gemini CLI (~/.gemini/settings.json)
{
"mcpServers": {
"crossmem": {
"command": "crossmem-server"
}
}
}If
crossmem-serverisn't on PATH, useuvx --from crossmem crossmem-serverinstead.
| Tool | Description |
|---|---|
mem_recall |
Load project context + cross-project patterns at session start |
mem_search |
Search across all memories (query, project filter, limit) |
mem_save |
Save a discovery during a session |
mem_update |
Update a memory in place (preserves ID) |
mem_forget |
Delete a memory by ID |
mem_get |
Get full content of a memory by ID |
mem_init |
Index project documentation files |
mem_ingest |
Refresh the index from native tool memory files |
CLI reference
# Recall (runs automatically via hook)
crossmem recall # auto-detects project from cwd
crossmem recall -p backend-api # explicit project
crossmem recall --format copilot # marker-wrapped for Copilot injection
crossmem recall --format vscode # JSON for VS Code agent-mode hooks
# Search
crossmem search "JWT token rotation"
crossmem search "retry strategy" -p backend-api -n 5
# Save / Update / Delete
crossmem save "Always use middleware for credential masking" -p backend-api -s Patterns
crossmem update 42 "corrected content here"
crossmem forget 42
# Index project docs
crossmem init # current directory
crossmem init -p my-api --path ~/projects/api
# Hooks
crossmem install-hook # Claude Code (SessionStart + UserPromptSubmit)
crossmem install-hook --tool copilot # Copilot (workspace instructions)
crossmem install-hook --tool copilot --global # Copilot (all workspaces)
crossmem install-hook --tool copilot --if-stale # refresh if >30 min old
crossmem install-hook --tool copilot-agent # VS Code agent mode (.github/hooks/)
crossmem install-instructions # Gemini
# Internal (installed as hooks — not run manually)
crossmem prompt-search # mid-session recall via UserPromptSubmit
# Other
crossmem ingest # re-ingest tool memories
crossmem graph # visualize knowledge graph in browser
crossmem stats # database stats
crossmem setup # one-time: Claude hook + Copilot injection + Gemini instructions + ingest| Tool | Memory files |
|---|---|
| Claude Code | ~/.claude/projects/*/memory/*.md |
| Gemini CLI | ~/.gemini/GEMINI.md |
| GitHub Copilot (macOS) | ~/Library/Application Support/Code/User/globalStorage/github.copilot-chat/memory-tool/memories/*.md |
| GitHub Copilot (Linux) | ~/.config/Code/User/globalStorage/github.copilot-chat/memory-tool/memories/*.md |
| GitHub Copilot (Windows) | %APPDATA%\Code\User\globalStorage\github.copilot-chat\memory-tool\memories\*.md |
Ingestion is pluggable — PRs welcome for new tools.
Found a bug? Want to add support for another AI tool? Open an issue or submit a PR.
If crossmem saves you from re-explaining your codebase to AI, consider giving it a star — it helps others find it.
MIT

