How deja compares

where deja sits among the memory tools

There are a lot of AI memory systems. Most solve a different problem than deja: they give applications a memory API you call from code, or wrap an agent runtime around their own store. deja is narrower — it makes the transcripts your coding agents already write to disk searchable, and serves them back to those agents. That one difference (retroactive indexing vs forward capture) drives most of the table below.

deja-vuMem0LettamemUMemoriclaude-memagentmemory
What it isindex over agent transcriptsmemory API for appsagent runtimememory filesystemSQL memory SDKClaude Code plugincapture daemon
Starts with your history✓ retroactive
Capture stepnone neededAPI callsits runtimeagent distillsSDK wraphooks + LLMhooks
Stored asverbatim, redactedLLM factsmemory blocksmarkdownSQL rowsLLM summariesevents + vectors
Needs LLM/embedding keynoyesyesyesyesyesmodel or API
Background processnoneserver / cloudserver + Postgresserver / cloudnoneworkerdaemon, ports
Coding agents22 native parsers (Claude Code, Codex, opencode, Cursor, Goose, OpenClaw…)via SDK/MCPown runtimeadaptersframeworksClaude Code, opencode, Antigravity, OpenClawvia hooks
Cross-machine sync✓ SSH, no cloudcloudserver-sidecloud / self-hostyour DB
Recall provenance✓ log + receiptspartialqueryable rowsviewerdashboard
Retrievaltiered lexical, optional embeddingsvector + graphagent + vectorembeddingsSQL + vectorvectorhybrid RRF
Benchmark, harness in repo85.3% hit@1 LME-S · measured · day zero vs four toolsself-reportedresearch lineageself-reportedself-reported
Installone binarypip + keysdockerpip / serverpipnpm + Claudeinstaller + deps
LicenseMITApache-2.0Apache-2.0Apache-2.0Apache-2.0MITMIT
Benchmark rows are not directly comparable across systems: most projects publish end-to-end QA accuracy (an answering LLM on top of retrieval), deja publishes retrieval-only numbers with the harness in-repo so you can rerun them. Competitor cells reflect their public READMEs as of July 2026 — corrections welcome, open an issue.

The wider field

The table above is the six systems people ask us about, which are mostly a different shape of tool. Asked for a broader atlas (#310), here are the four largest memory projects outside that set, on the same axes. Star counts and cells are from each project's own README, read in July 2026.

deja-vuMemPalacecogneeGraphiti / ZepHindsight
What it isindex over agent transcriptslocal-first memory storeknowledge-graph memory platformtemporal knowledge graphmemory service with typed pathways
Starssee repo57.9k29.6k29.3k18.9k
Starts with your history✓ retroactive, 25 harnesses✓ mines Claude Code, Codex, Cursor
Capture stepnone neededhooks, plus a mine/sweep backfillAPI callsAPI (episodes)API (retain)
Stored asverbatim, redactedverbatim, in rooms and drawersgraph entities + embeddingsentities and edges with validity windowstyped facts + sparse/dense vectors
Needs LLM/embedding keynono — ships a local model (~300 MB)yesyesyes
Background processnonenone; a vector store backend (ChromaDB by default)Postgres + pgvector, or Neo4jNeo4j, FalkorDB or NeptuneDocker service, or embedded
Retrievaltiered lexical, optional embeddingssemantic, optional keyword and recency boosts, optional LLM rerankgraph + vector, strategy picked for youembeddings + BM25 + graph traversalhybrid sparse/dense over memory banks
Published retrieval numbers85.3% hit@1 / 95.5% hit@5 LME-S, harness in repo96.6% R@5 LongMemEval (500q, no LLM); 88.9% R@10 LoCoMo0.79 on BEAM at 100k tokensnone in README; a Zep paper reports separately
Installone binaryuv tool installuv pip install + a databasepip + a graph databasedocker
LicenseMITMITApache-2.0Apache-2.0MIT
On that benchmark row, plainly: MemPalace publishes a higher LongMemEval number than we do — 96.6% R@5 against our 95.5% hit@5 on the same 500-question set. The metrics are defined slightly differently and neither of us has rerun the other's harness, so treat the gap as unresolved rather than as either of us winning. What we can say about our own is that the harness is in this repo and you can run it.

The other tools that read the same files

A second group is closer to deja than any memory system: tools that also read the session files coding agents leave on disk. They are built for a person doing the looking — a window or a terminal you open when you want to find something. Cells are from each project's own README, read on 26 August 2026.

deja-vucassAgent Sessionsagent-historiancasrAgent Session Viewer
What it isindex the agent queriesTUI and CLI over one timelinemacOS appCLI for agentssession converterweb viewer
Agents read2425 providers14 CLIs5 CLIsClaude, Codex, Gemini and moreClaude Code, Codex
Recall without being asked✓ hooks at session start, before an edit, after a failure
Serves an agent✓ MCP + skill✓ MCP✓ MCP
Secrets stripped at index time
Cross-machine sync✓ SSH, no cloud
Also doesblame, fix, how, digeststimeline browsinglive quota burn per session, priced per modelproject or global scoperesume a Codex session inside Claude Codefull-text search per project
Written inGo, one binaryRustSwift, macOS onlyTypeScriptRustPython

One more belongs here since September 2026: Hugging Face's funes reads existing transcripts of Claude Code, Codex, pi and Hermes into a local vector index with a reranker, and serves an agent over MCP and per-turn hooks — the closest thing to deja's shape. Measured on the day-zero corpus: two hours to index what deja indexes in half a minute, six seconds a query against 155 ms, and once its recency weighting is off it ranks a little better at rank five (46 against 35) and the same at rank one. Four agents against twenty-four, and nothing arrives at a failed command or a file about to be edited. ctx is the nearest sibling in shape — a Rust lexical index over thirty-odd agents' files, with MCP and a paid blame tier — and on the same corpus it finds half as many sessions at every depth (hit@1 8, found@50 42) at 0.8 s a query; its automatic setup could not index the directory at all and needed an explicit import.

The row that matters is the third one. Every tool here can find the session you are thinking of; deja is the one where nobody has to be thinking of it — the hook fires at session start and before an edit, so the earlier decision arrives whether or not anyone remembered to look. That is a different job from browsing, and on browsing several of these are better than we are.

When to pick something else

Honest routing, because the categories genuinely differ:

Mem0 / Memori — you are building an application and want to give your users memory through an API. deja has no SDK; it is not for app-embedded memory.

Letta — you want a full agent runtime with self-editing memory and you're happy living inside it. deja is the opposite bet: memory only, bring whatever agent you already use.

memU — you want curated, distilled knowledge files and don't mind the agent doing the distilling. deja keeps the verbatim record and searches it instead.

claude-mem — you prefer compressed summaries over raw history. It installs into Claude Code, opencode, Antigravity and OpenClaw gateways; deja parses 25 agents and keeps recall lossless.

MemPalace — the closest overlap by far, and the honest comparison is narrow: it also reads Claude Code sessions off disk and also keeps them verbatim. It brings a local embedding model and a vector store; deja is one binary with neither, parses 25 harnesses rather than three, and adds the things built around a code history specifically — deja blame, SSH sync, sanitized digests. If you want semantic paraphrase matching and don't mind a Python install with a 300 MB model, theirs is the better fit.

cognee / Graphiti — you want a knowledge graph with entities, relationships and time-valid facts to reason over, and you accept a database and an LLM key as the price. deja does not build a graph; it searches what was said.

Hindsight — you want an agent to accumulate curated beliefs about the world over time, through an API you call. deja never writes memories of its own: it indexes the record your agents already produced.

cass — you want to sit and read across your own history, and you want the widest net: it lists 25 providers against our 25 harnesses, in a TUI built for browsing a single timeline. It also serves an agent over MCP and strips secrets. deja's difference is the hook, not the search.

Agent Sessions — you are on a Mac and the question is where your quota went. It attributes 5-hour and weekly burn to the individual session, priced per model, which deja does not do at all. deja has no window to open.

casr — you want to carry one session into a different agent and keep going. deja resumes a session in the tool that wrote it and otherwise answers questions about it; it does not convert between formats.

A vector database + your own pipeline — you need semantic paraphrase matching above all. deja's lexical ladder loses to embeddings on pure paraphrase (we say so in the benchmarks); it wins on identifiers, error strings, and everything code-shaped, with no key and no daemon.

What only deja does

Across the systems we've studied, these have no equivalent elsewhere: déjà vu recurrence detection ("you have been here" when a prompt matches solved work); origin-trust scopes on imported memory; deja blame — which sessions touched a file and what was decided; sanitized deja share digests; and the whole thing in one binary, with no model and no runtime, that you can scp.

This list used to open with "indexing history from before the tool was installed". It no longer does: MemPalace mines Claude Code, Codex and Cursor transcripts off disk too. Retroactive indexing is still rare — nine of the ten systems on this page cannot do it — but it is not ours alone, and a page that claimed otherwise would be the wrong thing to trust.