A claude-mem alternative for Codex, Cursor and opencode

memory built from the transcripts already on disk, with no model writing it

claude-mem is the memory plugin most people meet first. It has 95k stars, and it now installs into Codex, Cursor, opencode, Windsurf, Antigravity, Grok Bot and OpenClaw as well as Claude Code. It watches sessions through hooks and has a model write summaries of what happened, which the next session gets back.

deja-vu takes the other route. Every coding agent already writes its sessions to disk; deja indexes those files as they are and hands the relevant turns back to whichever agent is running. Nothing writes the memory, so nothing has to be paid to write it, and the history from before you installed it is there on the first day.

What differs

deja-vuclaude-mem
Where memory comes fromthe session files each agent already keeps, including everything from before installhooks record sessions from install on
Who writes itnobody: transcripts are indexed as written, with secrets redacteda model summarises each session: claude-mem's hosted observer (sign-in, 14-day trial), your OpenRouter or Gemini key, or your Anthropic plan
Runs in the backgroundnothinga worker on Bun with an HTTP port, and Chroma for vector search
Installone 18.6 MB binarynpx claude-mem install, which pulls Bun and uv if missing
Agents35, read nativelyClaude Code, Codex, Cursor, opencode, Windsurf, Antigravity, Grok Bot, OpenClaw
Tool definitions sent with every request477 tokens, 1 tool2,307 tokens, 15 tools
Searchlexical, optional embeddingsSQLite FTS5 and Chroma vectors
Browse itdeja view, one local HTML fileweb viewer served by the worker
LicenseMITApache-2.0

The claude-mem column is from its README and repository at v13.28.0, read on September 29, 2026. The token counts were measured on September 24 against claude-mem 13.25.3; the method is on the day-zero page. Corrections welcome: open an issue.

The first day

Memory that records forward is empty on the day you install it. On the day-zero corpus, 19,195 real sessions and 100 questions whose answers are somewhere in them, claude-mem answers none, and that is its design rather than a fault: it has not recorded anything yet. deja builds its index over the same pile in 17.6 seconds and puts the right session first for 19 questions and in the top fifty for 65. The same table has six other tools that read existing history.

What a summary keeps

A summary is cheaper to inject and drops whatever the writer did not think mattered: the exact error text, the flag, the command that failed before the one that worked. deja keeps the turns, so deja fix "<error>" returns what was run after the same error last time, and deja blame path:line the session that wrote the line. The cost is the other side of it: the record is bigger than a summary, and lexical search misses paraphrases an embedding would catch. The benchmarks page shows where.

When claude-mem fits better

  • You want short observations curated for you rather than a searchable record, with semantic search on by default, and a model writing them is fine.
  • You started with coding agents recently, so there is little history on disk to read anyway.

Switching, or running both

brew install deja-vu
# or: curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh
deja install --auto

--auto wires every agent it finds on the machine: the MCP server, session-start recall where the agent has hooks, and the first index, so sessions from months ago answer in the next session you open. Per-agent details are under Codex, Cursor and opencode.

The two do not get in each other's way. deja only reads the agents' session files and never touches ~/.claude-mem. Both add context when a session opens, though, so with both on the agent gets two blocks. If that is more than you want, deja install --all wires the same agents without the session-start recall, and deja answers only when the agent asks.

Every memory tool, compared · Day zero · What memory costs

Found this useful? Star deja-vu on GitHub.