Brain-inspired memory for your self-hosted AI stack
Runs on your local machine — from a Raspberry Pi (core features) to a beefy workstation (full LLM-powered extraction). No cloud, no API bills, your data stays yours.
$ mnemlet serve ╭──────────────────────────────────────────╮ │ Mnémlet v0.4 │ │ Storage → ~/.mnemlet │ │ API → http://127.0.0.1:4050 │ │ MCP → http://127.0.0.1:4050/mcp │ │ LLM → disabled │ │ Search → disabled │ ╰──────────────────────────────────────────╯ $ █
New in v0.4
LLM-powered conversation extraction automatically turns chats into structured memories. Platform adapters for OpenWebUI, Claude Code, Cursor, and more. Morning briefings that actually summarize your work.
Exponential decay + interaction-weighting. What you use stays sharp. What you ignore fades. No manual cleanup.
Night consolidation: dedup, rescore, cluster, morning briefing. All local, zero API costs. Like REM sleep for your agent.
Context packs, provenance, Audit trails, and Trust blocks show why a memory exists and whether it is active, superseded, forgotten, or confirmed.
Every memory as a Markdown file. cat ~/.mnemlet/vault/**/*.md. Open in Obsidian. No black box.
A v0.4 flow on an isolated demo server: authenticated remember → Secret Guard → Audit → explainable Trust.
$ curl -X POST http://127.0.0.1:14060/api/v1/remember \ -H 'Content-Type: application/json' \ -H "X-Mnemlet-Key: $MNEMLET_API_KEY" \ -d '{"content":"Christoph prefers dark mode in all editors","namespace":"preferences","memory_type":"preference"}' {"memory_id":"7f4a...","stored":true,"namespace":"preferences","superseded_ids":[]} $ curl -X POST http://127.0.0.1:14060/api/v1/ingest \ -H 'Content-Type: application/json' \ -H "X-Mnemlet-Key: $MNEMLET_API_KEY" \ -d '{"content":"token sk-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}' {"detail":"secret_guard_blocked: patterns=openai_key"} $ curl http://127.0.0.1:14060/api/v1/audit -H "X-Mnemlet-Key: $MNEMLET_API_KEY" {"events":[{"action":"ingest","result":"blocked"},{"action":"ingest","result":"success"}]} $ curl http://127.0.0.1:14060/api/v1/explain/7f4a... -H "X-Mnemlet-Key: $MNEMLET_API_KEY" {"memory_id":"7f4a...","trust":{"ingested_by":"rest","secret_guard_result":"clean"}} $ █
No checkmark bingo. Here's where Mnémlet shines, and where it doesn't.
| Mnémlet | Mem0 | MemPalace | |
|---|---|---|---|
| Self-hosted | ✅ | ⚠️ | ✅ |
| Decay / Forgetting | ✅ | ❌ | ❌ |
| Sleep / Consolidation | ✅ | ❌ | ❌ |
| Local LLM support | ✅ | ❌ | ❌ |
| Inspectable vault | ✅ | ❌ | ❌ |
| Vector search | ✅ | ✅ | ✅ |
| TUI Dashboard | ❌ | ❌ | ❌ |
| Cloud sync | ❌ | ✅ | ❌ |
| MCP tools | 16 | ~10 | 29 |
| Pi-friendly RAM | ✅ (450 MB core) | ❌ | ✅ |
If your priority is cloud sync, a polished dashboard, or an ecosystem with 50k stars — use Mem0 or MemPalace. If your priority is local-first, brain-inspired forgetting, and running on hardware you own — that's Mnémlet.
Install from PyPI or GitHub. Core features run on a Pi. LLM extraction needs more power.
$ pip install mnemlet $ export MNEMLET_API_KEY="mnemlet_..." $ mnemlet serve $ curl -X POST http://localhost:4050/api/v1/ingest \ -H 'Content-Type: application/json' \ -H "X-Mnemlet-Key: $MNEMLET_API_KEY" \ -d '{"content":"Hello Mnémlet","namespace":"test"}'