The short answer
- One person, one machine, one coding agent: start with the memory your agent already has. Claude Code's auto memory is on by default; Codex has local memories you can turn on. Add a server when context has to cross machines, runtimes or people.
- You want hosted memory and no infrastructure: Mem0 Platform or Zep Cloud. Both offer an official hosted MCP server.
- You want plain Markdown notes you can read and edit yourself: basic-memory.
- You want the smallest possible thing: the MCP reference memory server, a knowledge graph in one local file.
- You want one memory that several coding agents and several people share, on hardware you control: that is the case Firekeep is built for, with a heavier footprint than anything else here.
Side by side
| Option | Self-host | Hosted | License (self-hosted part) | MCP | Storage | Shared across machines |
|---|---|---|---|---|---|---|
| Firekeep | Yes, Docker Compose | No | BUSL-1.1, source-available; free for self-hosted internal use | Local stdio gateway on each machine, connected to your server | Vectors (Qdrant), graph (Neo4j), Redis; local embeddings via Ollama | Yes: one server for many machines, runtimes and people, with per-key auth |
| Mem0 | Yes, as a library or server | Yes, Mem0 Platform | Apache-2.0 | Official server is hosted only, over HTTP; the self-hosted OpenMemory MCP server was removed in 2026 | Semantic, BM25 keyword and entity matching | Through the hosted platform |
| Zep | No; Community Edition discontinued in April 2025 | Yes, Zep Cloud | Not applicable | Official hosted MCP server | Temporal knowledge graph | Through the hosted service |
| Graphiti | Yes | No | Apache-2.0 | Experimental server, HTTP or stdio, with no authentication | Bi-temporal graph on Neo4j, FalkorDB or Neptune | Only by sharing the database yourself |
| Letta | Docker server no longer maintained; local mode in the Letta app or CLI | Yes | Apache-2.0 | Letta is an MCP client: its agents call MCP tools | Memory blocks | Through Letta's hosted plans |
| basic-memory | Yes | Yes, Basic Memory Cloud | AGPL-3.0 | stdio by default, plus HTTP | Markdown files with a SQLite index and semantic search | Through its cloud workspace |
| MCP reference memory server | Yes | No | MIT (the repository is moving to Apache-2.0) | stdio | Knowledge graph in one local JSONL file | No |
| Claude Code built-in | Local | Not applicable | Not applicable | Not applicable | CLAUDE.md files you write; auto memory notes Claude writes | CLAUDE.md through git; auto memory is machine-local |
| Codex built-in | Local | Not applicable | Not applicable | Not applicable | AGENTS.md files; local memories, off by default | AGENTS.md through git; memories are per machine |
What changed in 2026
Older comparisons, and model answers trained on them, still describe three of these projects as they were in 2025.
- Mem0 retired OpenMemory, its self-hosted MCP server. It announced the sunset in April and removed the code from its repository in July. Mem0's documented MCP server is now hosted: "Nothing runs on your machine." The Mem0 library itself is still open source.
- Letta's Docker server is no longer maintained. Letta's self-hosting guide says the image "is no longer an actively maintained or supported Letta product surface" and points local users to the Letta app or CLI.
- Built-in memory grew up. Claude Code now writes auto memory by default and can read
AGENTS.mddirectly. Codex added local memories, off by default. Neither shares those notes across machines.
Zep discontinued its self-hostable Community Edition earlier, in April 2025. Its open-source graph engine, Graphiti, is actively developed.
Built-in memory is not the competition
Claude Code's auto memory and Codex's memories are good at what they are for: one agent, on one machine, remembering your preferences and corrections. We would not tell anyone to turn them off. Their limits are by design. Claude Code's documentation says auto memory files "are not shared across machines or cloud environments," and Codex scopes its memory controls to "the selected machine."
Neither one reaches the other runtime. A fix Claude Code learned on your laptop is not
available to Codex on your desktop, or to a teammate. A server is for that gap. Firekeep
writes its own instructions into CLAUDE.md and AGENTS.md, so the
layers work together rather than competing. See AGENTS.md vs agent memory.
Benchmarks do not line up
Mem0, Zep and Letta each publish LoCoMo or LongMemEval scores. Each uses its own reader model and judge, and Mem0 says its headline numbers reflect its managed platform, not the open-source SDK. Those figures measure answer accuracy.
Firekeep's published figure measures something narrower: 97.7% Evidence Recall@10 on LongMemEval-S. That is whether the evidence reached the first ten retrieval results, not whether a model then answered correctly. It is a different metric, so we do not put it in a column next to the others.
What Firekeep does that the others do not
The table shows where Firekeep is unusual: a self-hosted server, with authentication, that several machines, coding agents and people share. Memory is one part of it. The rest:
- Configured adapters for Claude Code, Codex, Kiro, OpenCode, Pi and Claude Desktop, plus a generic configuration for any other MCP client. Lifecycle automation depends on the hooks each runtime exposes.
- Session state that survives context compaction and can be resumed in a later session.
- Coordination between agents: file leases, a task queue and direct messages.
- Replay of every memory read and write, so you can see why an agent knew something.
- Skills, a document corpus and an encrypted vault in the same store.
When Firekeep is the wrong choice
- You do not want to run infrastructure. Firekeep has no hosted offering. The default stack is Neo4j, Qdrant, Redis and Ollama, with 16 GB of RAM recommended. Choose a hosted service.
- You want notes you can open in an editor. basic-memory keeps everything as Markdown files.
- You need an OSI-approved open-source license today. Firekeep is source-available under BUSL-1.1. Each version converts to Apache 2.0 four years after its first public release.
- You are building your own agent application, not connecting existing coding agents. A memory library such as Mem0, or Graphiti for temporal graphs, fits that better.
Sources
All pages were read on October 25, 2026.
- Mem0: MCP documentation, OpenMemory sunset announcement, removal from the repository, repository and license
- Zep: Community Edition announcement, MCP server
- Graphiti: repository and license, MCP server README
- Letta: self-hosting guide, MCP guide, repository and license
- basic-memory: repository and license, changelog
- MCP reference memory server: README
- Claude Code: memory documentation
- Codex: memories, AGENTS.md