An open-source Mem0 alternative for coding agents
retroactive recall over 43 coding agents on disk, with no LLM extraction key, cloud account, or Docker stack
Mem0 (and its OpenMemory MCP layer) is a general-purpose memory platform for AI applications: your code or a plugin sends conversation turns to it, and a model extracts facts into a vector and graph store. For coding agents, Mem0 ships plugins that capture sessions from install onward through lifecycle hooks and send them to the Mem0 Platform API or a self-hosted extraction pipeline.
deja-vu solves the coding-agent problem from the other end. Claude Code, Codex CLI, Cursor, OpenCode, Gemini CLI, Windsurf and thirty-seven other coding agents already write full session transcripts to local disk. deja indexes those existing files into a local SQLite FTS5 store in seconds and hands relevant fixes, file history, and past decisions back to your agents over MCP and hooks — with no model call and no background service.
brew install deja-vu && deja install --auto indexes your Claude Code, Codex and Cursor history in ~15 seconds with no API key or Docker stack — vshulcz/deja-vu on GitHub.brew install deja-vu && deja install --autonpx @vshulcz/deja-vu sourcesWhat differs
| deja-vu | Mem0 / OpenMemory | |
|---|---|---|
| Primary design target | coding agents on a developer's machine (CLI, TUI, MCP server, lifecycle hooks) | memory SDK and hosted/self-hosted service for LLM applications, plus coding-agent plugins |
| Where memory comes from | the JSONL and SQLite transcripts 43 coding agents already write to disk, plus optional deja remember and .deja/memory.jsonl | turns sent via memory.add(), OpenMemory MCP calls, or forward-capture hooks after plugin install |
| First-day recall (day zero) | months of prior sessions are searchable immediately after deja index | starts empty on install until new sessions are captured and extracted |
| What is stored | verbatim commands, compiler/test error output, file edits, and session turns (with credentials redacted) | LLM-extracted facts and user-profile memories |
| Requires an LLM or API key | no (BM25 lexical + code-identifier ranking out of the box; embeddings via deja embed are opt-in) | yes: Mem0 Platform API key for the hosted plugin, or an LLM + embedding key when self-hosted (gpt-5-mini by default) |
| Infrastructure | single 20 MB Go binary and one local SQLite file | hosted cloud service, or Python/Node SDK + vector store / Docker stack |
| Coding agents covered | 43 harnesses (full list) | plugins for Claude Code, Cursor, Codex, Kimi, opencode, Antigravity, OpenClaw; OpenMemory MCP for Cursor, VS Code and Claude |
| License | MIT | Apache-2.0 |
Why coding agents need verbatim transcripts, not just extracted facts
Fact extraction works well for user preferences in a chatbot ("prefers Python 3.12", "uses Postgres"). In software engineering, the detail that saves an hour is usually something a summarizer discards: the exact linker flag that fixed a cross-compile failure, the stack trace of a flaky test three weeks ago, or the commit where a workaround was tried and reverted (repeated mistakes).
Because deja indexes the raw transcript records on disk, its hooks and MCP modes answer engineering questions directly:
deja fix "<failing command output>"finds the exact command this machine ran after the same error in a past session.deja blame path/to/file.goreturns the sessions that created or modified a file and why.deja how "release build"retrieves the exact command and flags used in this repository.- Compaction recovery restores the active task, edited files, and recent decisions when a long session compacts its context window.
When Mem0 fits better
- You are building a customer-facing AI application or SaaS product in Python or TypeScript and need a hosted or self-hosted API (`memory.add`, `memory.search`) to store per-user facts across chat sessions.
- You want LLM-distilled user profiles rather than searchable engineering transcripts.
Questions people ask
Can I use deja-vu alongside Mem0?
Yes. They do not touch the same files: deja reads your coding agents' native session stores in place and writes its index under ~/.cache/deja.
How do teams share decisions without a cloud server?
deja repo add writes settled architectural decisions and rejected approaches into .deja/memory.jsonl inside the git repository so every contributor's agent reads them on clone, and deja sync ssh syncs personal session history between your own machines over SSH.
Every memory tool, compared · claude-mem alternative · SpecStory alternative · Basic Memory alternative · Day zero benchmark
Found this useful? Star deja-vu on GitHub.