Letta vs Mem0
Both are catalogued under Memory & Context. The figures come from the GitHub API; the assessments are ours.
At a glance
| At a glance | Letta | Mem0 |
|---|---|---|
| License | Apache-2.0 | Apache-2.0 |
| Languages | Python | Python, TypeScript |
| Deployment | Self-hosted / Managed cloud | Self-hosted / Managed cloud |
| Maturity | Growing | Growing |
| Stars | 24.3k | 63.3k |
| Star growth over the last 7 days | +4 ★ | +11 ★ |
| Forks | 2.6k | 7.4k |
| Open issues | 43 | 670 |
| Last commit | 14 Aug 2026 | 15 Aug 2026 |
| Activity | Active | Active |
What each one does
Letta
Treats the context window like RAM and everything else like disk, with the agent itself deciding what to page in and out. That framing makes indefinitely long-running agents tractable. It is a more opinionated commitment than bolting a memory library onto an existing stack.
Full entry →Mem0
Extracts durable facts from a conversation and retrieves the relevant ones on later runs, instead of replaying an ever-growing transcript into the context window. Useful wherever an assistant should remember a user between sessions. What gets stored is model-decided, so verify the extraction quality on your own data before relying on it.
Full entry →What you can do
Letta
- Run an agent with memory locally —
npm install -g @letta-ai/letta-codethenlettalaunches an agent with memory on your own computer (Node.js 22.19+) that can code and do other tasks there; agents can also be run via the desktop app or channels like Slack. - Embed stateful agents in your app — The TypeScript Agent SDK creates one with
createAgent, passing a model string such asanthropic/claude-opus-4-8plushumanandpersona, then streams the reply throughresumeSessionandsession.stream(). - Switch backends with one field — The same SDK code runs against Constellation, Letta's agent cloud, against a self-hosted App Server, or with
backendset tolocal, which spawns Letta Code on your machine as a subprocess. - Keep an existing V1 integration running — The previous-generation V1 SDKs —
@letta-ai/letta-clientfor TypeScript andletta-clientfor Python — still target the Letta API directly; the README points new projects at the Agent SDK instead. - Start from letta-code, not this repo — This repository is the legacy server behind the Letta V1 API; active development moved to letta-ai/letta-code, and self-hosting an API server is now done through the App Server.
Mem0
- Carry user facts between sessions —
memory.add(messages, user_id=...)extracts durable facts from a conversation, andmemory.searchwith auser_idfilter andtop_kreturns only the ones the next prompt needs. - Turn on hybrid retrieval — Installing
pip install mem0ai[nlp]together with the spaCyen_core_web_smmodel adds BM25 keyword matching and entity extraction on top of dense vector search. - Inspect what got stored — The CLI from
npm install -g @mem0/cligivesmem0 addandmem0 searchwith--user-id, so you can check what the extractor actually kept before trusting it in an application. - Self-host the memory server —
make bootstrapin theserverdirectory starts the stack, creates an admin and issues the first API key; auth is on by default, withAUTH_DISABLED=truereserved for local development. - Wire Mem0 into a repo — Pipeline skills added via
npx skills add—/mem0-integratethen/mem0-test-integration— run a test-first integration inside Claude Code, Cursor and other tools supporting the skills standard.