The Zero-Dependency, Sub-Millisecond AI Memory System
Project description
Mnemosyne
Zero-dependency AI memory that works everywhere. SQLite-backed. Sub-millisecond. Fully private.
Mnemosyne is a universal memory layer for AI agents. Drop it into any agent framework — Hermes, Claude Code, Cursor, Codex, OpenWebUI, OpenClaw, or your own custom agent. One pip install, one SQLite database, zero cloud dependencies.
Works With Everything
| Platform | Method | Setup |
|---|---|---|
| Cursor | MCP | Add to .cursor/mcp.json |
| Claude Code | MCP | Add to claude.json |
| OpenAI Codex CLI | MCP | Add to .codex/mcp.json |
| Windsurf | MCP | Add to .windsurf/mcp_config.json |
| OpenWebUI | Native @tool | Drop bridge file into data/tools/ |
| OpenClaw | Native provider | pip install mnemosyne-memory[openclaw] |
| Hermes Agent | MCP + Plugin | Native — ships enabled |
| Any MCP client | MCP (stdio/SSE) | One config line |
| Any Python agent | Direct SDK | import mnemosyne |
See docs/integrations/ for complete setup guides per platform.
Quick Start
pip install mnemosyne-memory
# With all features (vector search + MCP server)
pip install "mnemosyne-memory[all]"
Add to your agent
MCP-based (Cursor, Claude Code, Codex, Windsurf):
{
"mcpServers": {
"mnemosyne": {
"command": "mnemosyne",
"args": ["mcp"],
"env": {}
}
}
}
Python SDK (any agent):
from mnemosyne import remember, recall
remember("User prefers dark mode interfaces")
results = recall("user preferences")
OpenWebUI: Drop a 1-line bridge file into data/tools/.
OpenClaw: Add provider: mnemosyne.integrations.openclaw:create_provider to config.
Benchmark
Mnemosyne v3 scores 65.2% on the BEAM long-context memory benchmark (ICLR 2026) at 100K scale — competitive with cloud alternatives while running fully offline, all in a single SQLite file.
| Scale | Mnemosyne v3 | Honcho | Hindsight | LIGHT | RAG |
|---|---|---|---|---|---|
| 100K | 65.2% | 63.0% | 73.4% | 35.8% | 32.3% |
Per-ability (100K): IE 91.5% · MR 87.5% · TR 75.0% · ABS 100.0% · CR 50.0% · KU 50.0% · EO 25.0% · IF 62.5% · PF 54.5% · SUM 55.6%
Full report: docs/beam-benchmark.md
CLI Usage
# MCP server (works with any MCP client)
mnemosyne mcp # stdio (default)
mnemosyne mcp --transport sse --port 8080 # SSE (web clients)
# Direct memory ops
mnemosyne remember "User likes dark mode"
mnemosyne recall "preferences"
mnemosyne stats
mnemosyne sleep # Run consolidation
# Export / import
mnemosyne export --output backup.json
mnemosyne import --input backup.json
Python API
from mnemosyne import remember, recall
# Store a fact
remember("User prefers dark mode interfaces",
importance=0.9, source="preference")
# Store globally (visible across all sessions)
remember("User email is user@example.com",
importance=0.95, scope="global")
# Store with expiry
remember("Temp token: abc123",
importance=0.8, valid_until="2026-12-31")
# Search
results = recall("interface preferences", top_k=3)
# Temporal recall (recency boost)
results = recall("deployments",
temporal_weight=0.5, temporal_halflife=48.0)
# Entity extraction
remember("Met with Abdias about the v2 release",
extract_entities=True)
# LLM-driven fact extraction
remember("User said they prefer Python for backend work",
extract=True)
# Temporal triples (knowledge graph)
from mnemosyne.core.triples import TripleStore
kg = TripleStore()
kg.add("Maya", "assigned_to", "auth-migration",
valid_from="2026-01-15")
kg.query("Maya", as_of="2026-02-01")
# Memory banks (per-domain isolation)
from mnemosyne.core.banks import BankManager
BankManager().create_bank("work")
work_mem = Mnemosyne(bank="work")
work_mem.remember("Sprint review on Friday")
Advanced: BEAM Direct Access
from mnemosyne.core.beam import BeamMemory
beam = BeamMemory(session_id="my_session")
beam.remember("Important context", importance=0.9)
beam.consolidate_to_episodic(
summary="User likes Neovim",
source_wm_ids=["wm1"]
)
results = beam.recall("editor preferences", top_k=5)
Architecture
┌────────────────────────────────────────────────────────────┐
│ Any AI Agent │
│ (Hermes · Claude Code · Cursor · Codex · OpenWebUI · MCP) │
└────────────────────────┬───────────────────────────────────┘
│ MCP / SDK / Plugin
┌────────────────────────▼───────────────────────────────────┐
│ Mnemosyne BEAM │
│ ┌────────────┐ ┌──────────────┐ ┌────────────────────┐ │
│ │ Working │ │ Episodic │ │ TripleStore │ │
│ │ Memory │──▶│ Memory │ │ (Temporal KG) │ │
│ │ (hot ctx) │ │ (long-term) │ └────────────────────┘ │
│ └────────────┘ └──────┬───────┘ │
│ │ │
│ ┌──────────▼──────────┐ │
│ │ SQLite DB │ │
│ │ (single file) │ │
│ │ sqlite-vec + FTS5 │ │
│ │ MIB binary vectors │ │
│ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
BEAM (Bilevel Episodic-Associative Memory):
- Working memory — Hot context, auto-injected before LLM calls, TTL-based eviction
- Episodic memory — Long-term storage with sqlite-vec + FTS5 hybrid search
- TripleStore — Temporal knowledge graph with version chains
Hybrid scoring: 50% vector similarity + 30% FTS5 rank + 20% importance, all inside SQLite.
Binary vectors: Information-theoretic binarization (MIB) compresses 384-dim float32 embeddings into 48 bytes — 32x reduction. Hamming distance entirely within SQLite. No ANN indices, no external vector DB.
Why Mnemosyne?
| Feature | Mnemosyne | mem0 | Letta | Honcho | SuperMemory | Hindsight | ChromaDB |
|---|---|---|---|---|---|---|---|
| Local-first | ✅ SQLite | ⚠️ Hybrid | ❌ Docker+PG | ⚠️ PG+worker | ❌ SaaS | ✅ SQLite | ✅ Embedded |
| Zero deps | ✅ pip only | ❌ Qdrant/PG | ❌ PG+vector | ❌ PG+3 LLMs | ❌ SaaS infra | ✅ pip only | ✅ pip only |
| MCP server | ✅ Built-in | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
| Python SDK | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Multi-platform | ✅ 8+ targets | ⚠️ 3 adapters | ❌ Agent-only | ⚠️ 4 adapters | ✅ MCP | ❌ Agent-only | ❌ Library only |
| Open source | ✅ MIT | ✅ Apache 2.0 | ✅ OSS | ⚠️ AGPL | ❌ Proprietary | ✅ MIT | ✅ Apache 2.0 |
| Benchmark | 65.2% BEAM | 49% LongMem | 83.2% LoCoMo | 90.4% LongMem | 85.2% MemoryBench | 73.4% BEAM | N/A (vector DB) |
| Self-hosted | ✅ Yes | ✅ Optional | ✅ Optional | ✅ Yes | ❌ Enterprise | ✅ Yes | ✅ Yes |
| Integration template | ✅ Published | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Memory architecture | BEAM (3-tier) | Session + facts | OS-virtual context | Peer + reasoning | 5-layer stack | Episodic + semantic | Vector store only |
| Purpose | Full memory system | Memory API | Agent runtime | Managed memory | Consumer + agent | Research memory | Vector database |
Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
MNEMOSYNE_DATA_DIR |
~/.hermes/mnemosyne/data |
Database directory |
MNEMOSYNE_VEC_TYPE |
int8 |
Vector compression: float32, int8, or bit |
MNEMOSYNE_VEC_WEIGHT |
0.5 |
Vector similarity weight |
MNEMOSYNE_FTS_WEIGHT |
0.3 |
FTS5 keyword weight |
MNEMOSYNE_IMPORTANCE_WEIGHT |
0.2 |
Importance weight |
MNEMOSYNE_WM_MAX_ITEMS |
10000 |
Working memory limit |
MNEMOSYNE_RECENCY_HALFLIFE |
168 |
Decay halflife in hours |
Full reference: docs/configuration.md
Hermes Plugin (17 tools)
When used with Hermes Agent, Mnemosyne exposes 17 tools for memory lifecycle management — 3 lifecycle hooks (pre_llm_call, on_session_start, post_tool_call) for automatic context injection, plus full MCP support.
See docs/hermes-integration.md.
Contributing
See CONTRIBUTING.md for guidelines.
Full docs: docs/ · Changelog: CHANGELOG.md · Releases: GitHub Releases · Integrations: docs/integrations/
Support
Discord: Join the Mnemosyne community · Issues: GitHub Issues
⭐ Star the repo if you find it useful!
License
MIT License — See LICENSE
Copyright (c) 2026 Abdias J
"The faintest ink is more powerful than the strongest memory." — Hermes Trismegistus
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mnemosyne_memory-3.1.0.tar.gz.
File metadata
- Download URL: mnemosyne_memory-3.1.0.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2de9b6f54ed771730011cfc57093375ad17e1c32b05c6f3d65ed8b23bc72d5b3
|
|
| MD5 |
1aca75d4b17a54aaaaa3ddc05d5bbd8a
|
|
| BLAKE2b-256 |
c338b5f4ac87340e44b2f5e4ba30e8e098d6ec45f23581133200a5f7d7c68df4
|
Provenance
The following attestation bundles were made for mnemosyne_memory-3.1.0.tar.gz:
Publisher:
release.yml on AxDSan/mnemosyne
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mnemosyne_memory-3.1.0.tar.gz -
Subject digest:
2de9b6f54ed771730011cfc57093375ad17e1c32b05c6f3d65ed8b23bc72d5b3 - Sigstore transparency entry: 1634025401
- Sigstore integration time:
-
Permalink:
AxDSan/mnemosyne@8bb309d3e2ef2d2dcea14bb8db3cad0bcc1fc496 -
Branch / Tag:
refs/tags/v3.1.0 - Owner: https://github.com/AxDSan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8bb309d3e2ef2d2dcea14bb8db3cad0bcc1fc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mnemosyne_memory-3.1.0-py3-none-any.whl.
File metadata
- Download URL: mnemosyne_memory-3.1.0-py3-none-any.whl
- Upload date:
- Size: 369.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2825716abf3727f87b30f62558f2b1a7578e7533aae1cca2150ed9092d97fe91
|
|
| MD5 |
42f1c965eae45410d1fb9d8c7b2a1681
|
|
| BLAKE2b-256 |
593f5807f6d829cd0cfc89b0c925b69737e9f945f8611c7127e753164f4ffcaf
|
Provenance
The following attestation bundles were made for mnemosyne_memory-3.1.0-py3-none-any.whl:
Publisher:
release.yml on AxDSan/mnemosyne
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mnemosyne_memory-3.1.0-py3-none-any.whl -
Subject digest:
2825716abf3727f87b30f62558f2b1a7578e7533aae1cca2150ed9092d97fe91 - Sigstore transparency entry: 1634025414
- Sigstore integration time:
-
Permalink:
AxDSan/mnemosyne@8bb309d3e2ef2d2dcea14bb8db3cad0bcc1fc496 -
Branch / Tag:
refs/tags/v3.1.0 - Owner: https://github.com/AxDSan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8bb309d3e2ef2d2dcea14bb8db3cad0bcc1fc496 -
Trigger Event:
push
-
Statement type: