Directory
Side by side.
The same facts and the same 11 mechanisms for each system. Pick the ones you want; the link keeps your pick, so you can share it.
Head to headMem0 vs ZepLetta vs Mem0ChatGPT vs ClaudeClaude Code vs claude-memMem0 vs SupermemoryCognee vs Mem0All of them
EncodingStorageRetrievalTransformationbuiltpartlyin developmentnot builtnot known
| Counterparts | ChatGPT memory | Claude Code memory | claude-mem | Claude (app memory) | Cognee | Hyperconsciousness | Letta | Mem0 | Supermemory | trusty-memory | Zep | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| At a glance | ||||||||||||
| Whose memory | The AI's own memory | Memory about you | Work & project memory | Work & project memory | Memory about you | Building blocks | Building blocks | The AI's own memory | Building blocks | Building blocks | Work & project memory | Building blocks |
| Memory lives | Your machine, one file | OpenAI's cloud | Your machine (plain files) | Your machine (cloud sync optional) | Anthropic's cloud | Your machine, your server, or Cognee Cloud | Your machines (or your company's server) | Letta's cloud, or your machine | Mem0's cloud, or your own server | Supermemory's cloud, or your own machine | Your machine | Zep's cloud (or your own cloud), or your graph database with Graphiti |
| API keys | None | None: sign in to ChatGPT | A Claude plan login, an API key, or a cloud provider | None on your Claude plan; or a CMEM Pro, Gemini or OpenRouter key | None, just a Claude account | None to store and search; an AI model key for written answers and lessons | None | An AI model key, or Letta's cloud | A Mem0 key (cloud) or an AI model key (self-hosted) | A Supermemory key (cloud), or your own AI model key (self-hosted; none with a local model) | None for the core; an OpenRouter key or local model for the optional AI merge step | A Zep key (cloud), or an AI model key plus a graph database (Graphiti) |
| Works with | Claude Code | ChatGPT on the web, iOS & Android apps, Mac & Windows apps | Claude Code CLI, VS Code, Claude desktop app, Agent SDK, AGENTS.md files | Claude Code, Codex, Cursor, OpenCode, OpenClaw, MCP tools | claude.ai on the web, Claude Desktop, Claude Mobile, Cowork in the cloud | Python SDK, Claude Code, Codex, Cursor (MCP), OpenClaw, REST API | Codex, Claude Code, Any MCP client, CLI, HTTP API | Its own CLI and app, TypeScript SDK, MCP tools, Claude Code (demo plugin) | Python & TypeScript SDKs, Claude Code, Cursor, Codex, LangGraph, CrewAI | TypeScript & Python SDKs, Claude Code, Cursor, Codex, MCP clients, Vercel AI SDK | Claude Code, Codex, Any MCP client | Python, TypeScript & Go SDKs, LangGraph, CrewAI, Claude & ChatGPT (MCP), Cursor, Graphiti MCP server |
| License | Open sourceMIT | Closed sourceProprietary | Closed sourceProprietary (Anthropic Commercial Terms) | Open sourceApache-2.0 | Closed sourceProprietary | Open sourceApache-2.0 | Open sourceMIT | Open sourceApache-2.0 | Partly open sourceApache-2.0 | Partly open sourceMIT (repo), Apache-2.0 (SDKs) | Open sourceMIT | Partly open sourceApache-2.0 (Graphiti) |
| Price | Free | Free (limited memory); more on Go, Plus and Pro | Comes with Claude Pro, Max, Team or Enterprise, or pay per use with an API key | Free; hosted Pro $20–30/mo | Free; Pro $17/mo yearly or $20 monthly | Free to self-host; Cloud free tier, then $1 per 1M tokens | Free | Free tier; Pro $20/mo | Free tier; from $19/mo | Free tier; Pro $19/mo | Free | Graphiti free; Zep free tier, then from $125/mo |
| Under the hood | ||||||||||||
| Who writes memories | Claude itself, at the end of each session, in its own words, with an importance score. | You, by asking it to remember; ChatGPT, when it judges something useful; and a background “dreaming” process that rewrites memory from many chats. | You write CLAUDE.md files. Claude writes its auto memory notes itself during the session, deciding what will be useful next time and skipping what the code already shows. | A separate “observer” AI (Claude Haiku by default) watches each tool step and writes notes, plus a summary after each reply. The AI you talk to doesn't write them. | Claude itself, during the conversation, choosing what to save. You can also say “remember this”, or edit topics in settings. | Whatever you or your app sends it. An AI (or a small local model) extracts the entities and links; after sessions, an AI curator writes the lessons. | You, a script, or an agent with a write grant. Each note is saved exactly as sent; HC adds no judgement of its own. | The agent itself, as it works, plus background “dreaming” helpers between sessions. | A separate AI call reads each conversation and pulls out short facts. The AI you talk to doesn't write them. | Supermemory's own model reads what you send and writes the facts, in a background “dreaming” pass. You can steer it with instructions, or write facts yourself. In the plugins, the AI can also save and forget on purpose. | The agent or a hook calls a save tool (memory_remember, memory_note, kg_assert). A filter checks the text first. Facts in the graph are also pulled from saved notes by fixed rules, with no AI call. | A separate AI reads each message or record and pulls out the people, things and facts. The AI you talk to doesn't write them, though it can add memory through MCP tools. |
| Where they're kept | One SQLite database file on your machine. Exportable as readable text. | On OpenAI's servers, as saved memories and a synthesised summary. The details aren't published. | Markdown files: CLAUDE.md in your project and home folder, and a per-project memory folder under ~/.claude with a MEMORY.md index and one file per note. | A SQLite database on your machine, with a local Chroma index for meaning-based search. Optional sync to their cloud. | A set of topics on Anthropic's servers, encrypted at rest, with a separate space for each project. | A graph database, a vector database and SQLite, all embedded by default (Ladybug, LanceDB), or Postgres, Neo4j and others on a server. | An encrypted, signed, append-only log per device, synced between your machines, with a rebuildable encrypted search index. | Markdown files in a git repo, on your machine or Letta's cloud. | A vector database (about 25 to choose from; Postgres with pgvector self-hosted), plus the names each fact mentions. | Its own engine that mixes meaning search, keyword search and a graph of linked facts. Self-hosted, it all sits in one folder. | Files on your machine: a redb database for notes and the knowledge graph, an HNSW vector index, and a BM25 text index. | A graph: people and things joined by dated facts, plus the original messages. Graphiti runs on Neo4j, FalkorDB or Amazon Neptune; Zep's cloud uses its own graph database. |
| How they're found | Your words are matched by keywords and by meaning (a small model that runs on your machine), then weighed by how strong each memory is. | ChatGPT looks for relevant memories and past chats when they're likely to help, not on every reply. Sources show what it used. | No search engine. CLAUDE.md and the index load at the start; nested CLAUDE.md files and path rules load when Claude reads matching files; Claude opens notes with its normal file tools. | The newest 50 notes and recent summaries are shown at the start. After that, Claude searches by keywords or meaning, looks at what happened around a note, and opens the ones it needs. | Saved topics are brought into new conversations. On paid plans Claude can also search past chats when you ask, and shows links to them. | By meaning and keywords over passages, then by walking the graph to connected facts. It picks the search type for you unless you choose. | Exact text by default, or an optional word-based ranking (BM25), filtered by kind, tag and date and limited to what the grant allows. | The most important files are always in view; the agent opens others by name, and a helper searches past conversations. Meaning-based search is an add-on. | By meaning, by keywords, and by shared names, combined into one ranked list. | By meaning across both facts and original documents, with optional reranking and linked facts. The profile comes along without a search. | By meaning, by keywords and by tags, with importance tilting the score. Notes are searched in layers: identity, a hot cache of top notes, then full search. | By meaning, by keywords, and by walking the links around a person or thing, combined into one ranked list. On the cloud, one call builds a ready-to-use context block from the last few messages. |
| Extra AI calls | No API bill. Writing, and a few minutes of dreaming once a day, use your own Claude Code session; recall and sleep run locally. | Nothing extra to pay: dreaming runs in the background on OpenAI's side, within your plan. | No separate AI call is documented: notes are written by the same Claude, as part of the session, using the context they take up. | Yes: observer calls as you work, plus a summary each reply. They run on your Claude plan, your own key, or their hosted observer. | Not disclosed. It's part of the plan, with no separate charge. | Yes, with an AI key: extraction on every add, a call per written answer, and more in improve() and the optional contradiction check. | None. It makes no AI calls. | Yes: dreaming and the helpers are extra AI calls, on your model key or Letta's credits. | Yes: an AI call to pull out facts on every add, plus embeddings. Dream adds more on the cloud. | Yes: its models read everything you add, billed as credits on the cloud. Self-hosted, those calls run on your model. | None for the core. The optional merge step makes AI calls to OpenRouter or a local model, up to 20 per cycle. | Yes: several AI calls per message (find things, find facts, date them, match them to the map, update summaries), plus embeddings. Paid in credits on the cloud, or on your own model key. |
| Measured against human memory | ||||||||||||
| Counterparts | ChatGPT memory | Claude Code memory | claude-mem | Claude (app memory) | Cognee | Hyperconsciousness | Letta | Mem0 | Supermemory | trusty-memory | Zep | |
| Of the 11 | 8 built (5 in depth), 3 partly · 3 in development | 4 built, 5 partly, 2 not known | 0 built, 8 partly, 2 not, 1 not known | 0 built, 5 partly, 6 not · 1 in development | 0 built, 6 partly, 5 not known | 3 built (2 in depth), 6 partly, 2 not · 1 in development | 0 built, 1 partly, 10 not | 1 built, 7 partly, 3 not | 7 built, 2 partly, 2 not | 5 built (1 in depth), 3 partly, 1 not, 2 not known | 2 built, 7 partly, 2 not | 4 built (4 in depth), 3 partly, 4 not |
| Encoding | ||||||||||||
| SalienceDecides what's worth keeping, and how much, as a memory is written. | ||||||||||||
| EmotionGives memories written with feeling more weight. | ||||||||||||
| Storage | ||||||||||||
| ForgettingLets unused memories fade over time on its own. | ||||||||||||
| InterferenceWhen a new memory closely matches an old one, notices and lets the newer one win. | ||||||||||||
| Retrieval | ||||||||||||
| RetrievalRemembering something makes that memory stronger. | ||||||||||||
| AssociationLinks memories, so recalling one brings its neighbours. | ||||||||||||
| ProspectiveBrings a memory back at the right time without being asked. | ||||||||||||
| Transformation | ||||||||||||
| ConsolidationReworks memories between sessions: strengthening, merging, reorganising. | ||||||||||||
| ReconsolidationCorrects a memory when it's contradicted, and keeps what it used to say. | ||||||||||||
| GistTurns many specific moments into general knowledge. | ||||||||||||
| SchemasForms beliefs about people and projects, and weighs new facts against them. | ||||||||||||