How deja compares

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 agents16 native parsers (Claude Code, Codex, opencode, Cursor, Goose, OpenClaw…)via SDK/MCPown runtimeadaptersframeworksClaude Codevia 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 repo84.9% hit@1 LME-S · measuredself-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.

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 only use Claude Code and prefer compressed summaries over raw history. deja covers 16 agents and keeps recall lossless.

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: indexing history from before the tool was installed; 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 you can scp.