exomemby Substrate Systems

MCP memory server

Agents get memory.
You keep the files.

Exomem is an open-source MCP memory server that runs over the Markdown knowledge base you already own — a plain folder, or your Obsidian vault. Claude Code, Codex, and Cursor get durable context; you keep the files, the provenance, and the review loop.

View source →

Python · AGPL-3.0 · self-hosted · no account

$ kb find "stale decision"
864 ms · 50,000 notes
→ notes/newer-constraint.mdcurrent
→ notes/old-plan.mdsuperseded · forwarded
2 results · 864 ms end-to-end · 50,000 notes · cache cold
retrievedstruck superseded○ note▪ entity

01 — Why it exists

Memory should be inspectable infrastructure you own — not hidden assistant state in someone else’s cloud.

Exomem gives agents a shared substrate without asking you to move your knowledge into another app. Source material, compiled notes, typed entities, evidence, and supersession history remain plain files — open any of them in a text editor.

The server measures and routes: search, embeddings, extraction, file writes, graph health, review queues. Judgment stays with the human and the client model using the tools.

notes/old-plan.mdplain Markdown
---
type: decision
status: superseded
superseded_by: "[[newer-constraint]]"
---

Batch embeddings at 256 on 16 GB cards.
Replaced after [[benchmark-run-014]] showed VRAM
headroom, not throughput, is the bound.

Supersession lives in the file, not in a hidden database — grep it, diff it, version it.

02 — Capabilities

The whole stack, local.

01

MCP tools

Search, capture, notes, evidence, audit, and review queues — usable from any MCP client.

02

Hybrid retrieval

Keyword and vector search over typed Markdown knowledge bases. Sub-second at 50,000 notes, measured.

03

Local index

SQLite FTS5 for lexical lanes, sqlite-vec for vectors. No external search service, ever.

04

Media ingestion

Local OCR, ASR, PDF, Office extraction, and CLIP image indexing — screenshots and recordings become searchable.

05

One registry

CLI and REST surfaces generated from the same operation registry as the MCP tools.

03 — Measured at scale

Sub-second at 50,000 notes — measured, not asserted.

Most memory tools claim they scale. Exomem publishes the numbers — and the methodology, so you can reproduce them on your own vault.

864ms

Hybrid find() end-to-end at 50,000 notes — hot cache off, methodology public in the repo.

<10ms

Keyword and lexical lanes, served straight from the SQLite FTS5 index.

0cloud deps

In the lean install. A GPU is optional — never required.

Reference desktop — Ryzen 7 5800X3D · RTX 5080 · 32 GB RAM. See the methodology →

04 — The difference

Your memory stays yours.

Cloud memory services

  • Extract your data into a vector database or knowledge graph in their cloud
  • The memory is a derived copy — you never get plain files back
  • Account and subscription required; your data leaves your machine

Exomem

  • Plain Markdown in a vault you own — edit it anywhere, forever
  • The index is a local SQLite sidecar — the files themselves are the memory
  • Self-hosted, no account — with the lean install, nothing leaves your machine

Full comparison vs mem0, Letta, Zep, cognee, and Basic Memory →
Exomem vs claude-mem: session continuity vs durable knowledge →
How we benchmark memory systems — the fairness rules, before the results →

05 — Install

terminal

$ pip install exomem

$ exomem --help

# extras: local embeddings · CLIP · OCR · ASR

Works with

Claude CodeClaude DesktopCodexCursorany MCP client

The same memory is also reachable from the CLI and a personal REST facade — all generated from one operation registry.

GitHub source →PyPI package →README →

06 — Exomem Hosted

Hosted Exomem is a friends-only private alpha.

Self-hosted Exomem stays the full open-source product you run yourself. Hosted runs it for a small friends cohort while we finish the v1 alpha. Tenant cells process plaintext for search; storage and transport are encrypted. Express interest below; invitations are personally issued and there is no public checkout.

friends-only v1 alphayour data exportable any timeSelf-hosted setup →

07 — FAQ

Common questions

Any MCP-capable client — Claude Code, Claude Desktop, Codex, Cursor, or a custom agent. The same memory is also reachable from a CLI (kb / exomem) and a personal REST facade, all generated from one operation registry.

No. Your vault stays plain Markdown files you own, and the search indexes are local SQLite sidecar files next to it. The lean install has no cloud dependency — nothing is uploaded.

Measured on a 50,000-note corpus: hybrid search runs end-to-end in 864 ms on the reference desktop, hot cache off, with the keyword and lexical lanes answering in milliseconds from the FTS5 index. The methodology is published in docs/benchmarks.md.

Cloud memory tools extract your data into a vector database or knowledge graph in their cloud. Exomem keeps your memory as plain Markdown in a vault you own and indexes it locally — your files are the memory, not a derived copy.

No. The lean install runs keyword and BM25 search out of the box — SQLite's FTS5 engine ships inside Python's standard library. Optional extras add local embeddings, CLIP image search, OCR, and speech-to-text; a GPU accelerates those, but is never required.