Mnemosyne is a local-first memory layer for AI agents that keeps everything in a single SQLite file with no external services. It is built first for the Hermes agent, where it ships enabled as a plugin with automatic context injection, and it also works with Claude Code, Cursor, Codex, Windsurf, Open WebUI, Pi, OpenClaw, any MCP client, or a Python agent through its SDK.
Its architecture, BEAM (Bilevel Episodic-Associative Memory), has three parts. Working memory holds hot context that is injected before LLM calls and evicted by time-to-live. Episodic memory is long-term storage searched with a hybrid of sqlite-vec vectors and FTS5 full-text search, scored as 50% vector similarity, 30% full-text rank, and 20% importance. A TripleStore adds a temporal knowledge graph with version chains. Embeddings are binarized so a 384-dimension vector fits in 48 bytes and is compared by Hamming distance inside SQLite, with no separate vector database.
The Python API stores and recalls facts with importance, scope, expiry, recency weighting, entity extraction, and optional LLM-driven fact extraction, and memory banks isolate domains from each other. A consolidation pass compresses working memory into episodic summaries, and a sync feature replicates memory between instances with optional client-side encryption. Embeddings run locally by default, with an option to call a remote OpenAI-compatible endpoint.
End-to-end question answering on the BEAM benchmark at 100K scale, measured on v3.0.0 and not re-run since:
| System | Score |
|---|---|
| Hindsight | 73.4% |
| Mnemosyne v3.0.0 | 65.2% |
| Honcho | 63.0% |
| LIGHT | 35.8% |
| RAG | 32.3% |
The runs used different judge models, so the scores are not directly comparable. A previously listed LongMemEval figure was withdrawn pending a reproducible re-run.
The project compares itself with Mem0, Letta, Honcho, Supermemory, Hindsight, and Chroma on local-first storage, dependencies, MCP support, and memory architecture.
Features
- Single-file storage: all memory in one SQLite database with ACID transactions and no external services
- BEAM memory tiers: working memory for hot context, episodic memory for long-term recall, and a temporal knowledge graph
- Hybrid recall: vector similarity, FTS5 full-text rank, and importance combined in one score inside SQLite
- Binary vectors: embeddings compressed 32x and compared by Hamming distance without an external vector store
- MCP server: stdio, SSE, and streamable HTTP transports for Claude Code, Cursor, Codex, Windsurf, and other MCP clients
- Hermes plugin: native provider tools and lifecycle hooks for automatic context injection
- Python SDK: remember and recall with importance, scope, expiry, recency weighting, and entity or LLM fact extraction
- Memory banks: per-domain isolation of stored memories
- Consolidation: a sleep pass compresses working memory into episodic summaries
- Sync: bidirectional delta sync between instances with optional client-side encryption
- Multilingual embeddings: swap the default English embedding model for multilingual or Chinese models





