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.

Try it on your existing transcripts: 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 --auto
$npx @vshulcz/deja-vu sources
deja-vu on GitHubQuick start →

What differs

deja-vuMem0 / OpenMemory
Primary design targetcoding 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 fromthe JSONL and SQLite transcripts 43 coding agents already write to disk, plus optional deja remember and .deja/memory.jsonlturns 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 indexstarts empty on install until new sessions are captured and extracted
What is storedverbatim 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 keyno (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)
Infrastructuresingle 20 MB Go binary and one local SQLite filehosted cloud service, or Python/Node SDK + vector store / Docker stack
Coding agents covered43 harnesses (full list)plugins for Claude Code, Cursor, Codex, Kimi, opencode, Antigravity, OpenClaw; OpenMemory MCP for Cursor, VS Code and Claude
LicenseMITApache-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.go returns 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.