1 million US Claude Code users. The category is real. The memory layer is not built into it.
recall context <id> | claude
Any past session, piped into a new one. Claude Code and Codex land in the same local SQLite index with FTS5, both on by default, with no configuration. Native MCP server. Works offline forever.
npm install -g @clauderecallhq/clirecall start && recall openRequires Node 22 or newer. Ships as @clauderecallhq/cli on npm. Also available as a VS Code extension and an MCP server.
The three commands you will actually use
Start the daemon and indexer.
recall startFind a past session. One query reads both agents' history.
recall search "auth race condition"Hand a past session to a fresh conversation as starting context. A Codex session pipes into Claude Code the same way, and the rendered context names the agent it came from.
recall context <session-id> | claudeCompose them. The middle command produces session ids that the third one consumes. That is the whole workflow.
Two agents, one index
Run Claude Code and Codex and your history lands in two separate places: transcripts under ~/.claude/projects/, rollouts under ~/.codex/sessions/, two formats, two timelines. Recall indexes both into the same database, on by default, with no configuration. Search once and you get both. Open the Stats view and the week is one total, with each agent priced at its own vendor's published list rates and a By source split showing which one cost more.
When you want one agent at a time, narrow it: recall list --source codex, the Source control in the web UI, ?src= on the HTTP API, or the source parameter on the MCP tools.
Native MCP server
Recall ships an MCP server with read tools (search, get session, list projects, get thread) and write tools (apply tags, create thread). An agent can call them directly mid-session. search, list_sessions and find_similar_sessions take a source parameter that defaults to all, so a session running in one agent can read the other one's history. Audit log on by default; rate-limited; talks only to the local index.
Why local-first matters here
- Daemon binds to
127.0.0.1only. Every outbound call is user-initiated or opt-in and off by default, apart from the Pro license activation and daily revocation check. - SQLite database lives at
~/.recall/. Grep-friendly. Portable. - Codex ingest is read-only and narrowly scoped. Under
~/.codexit opens rollout files andsession_index.jsonl, and nothing else: notauth.json, notconfig.toml. A test walks boot, sweep, title scan and doctor with an fs spy attached and fails if anything else is opened. The second agent brought no outbound network calls of its own. - Three-layer durability invariant: SQLite row, history column, plain-text mirror on disk. Source JSONLs are never modified.
- Works offline on a plane, in a SCIF, on a locked-down laptop.
- Dead-man clause: a future version can never delete your past.
The category, briefly
Anthropic ships a memory tool with Claude Code. CLAUDE.md is the convention. Simon Willison's llm CLI logs every prompt to SQLite. None of those is a session-shaped index across every project and both agents. Claude Recall is.
llm →CLAUDE.md →Pricing
Free tier indexes and lists. Pro is one-time, less than two coffees, and unlocks search, context re-injection, the MCP server, and every future personal feature. Pro license is validated once, then works offline forever.
Read this next
Last updated September 2026