Local-first memory and knowledge graph for AI coding agents
Your agent stops re-reading files and re-deriving the same conclusions.
Your notes, code and secrets never leave your machine.
The problem
A long session accumulates hard-won detail about why the code is the way it is. Then the context compacts and it is gone. Next session the agent re-reads the same files, re-derives the same conclusions, and bills you for the same tokens again.
CLAUDE.md does not scale past a few dozen lines, and it cannot answer "what did we decide about X, and why?".
Turbo Quant Memory is an MCP server that gives the agent a persistent, searchable store it writes to while it works — decisions, lessons, patterns, session handoffs — plus a compact index of your Markdown. Retrieval returns ~220-character result cards rather than whole documents; the agent loads full content only when a card is not enough.
Why this one
| Turbo Quant Memory | mem0 / OpenMemory | MCP memory server |
|
|---|---|---|---|
| Where your data lives | your disk, always | vendor cloud or self-host | your disk |
| Your data leaves the host | never | yes, unless self-hosted | never |
| Retrieval | hybrid BM25 + dense vector, RRF-fused | dense vector | exact graph lookup |
| What a search returns | compact cards, hydrate on demand | full memories | full nodes |
| Knowledge graph | yes — with lifecycle + linting | no | yes |
| Non-English content | Cyrillic exact-match out of the box | varies | n/a |
| Measures its own savings | yes — server_info() |
no | no |
| Price | free, MIT | paid tiers | free |
No HTTP client, no telemetry, no phone-home. Verify it yourself — this returns nothing:
grep -rnE '^[[:space:]]*(import|from)[[:space:]]+(requests|httpx|aiohttp|urllib3)\b' src/
To be precise about the one exception: on first run fastembed downloads the embedding model (~0.22 GB) from Hugging Face. After that the server runs fully offline. Your notes, code and secrets are never transmitted anywhere — there is nothing in the package that could send them.
Install
Let your agent install it
Paste this into Claude Code, Codex, Gemini CLI, Cursor or Antigravity:
Install and configure the Turbo Quant Memory MCP server for this workspace from https://github.com/Lexus2016/turbo_quant_memory — follow the README, register the
tqmemoryserver, runturbo-memory-mcp skill install, run the health check, and index this project.
skill install copies an operating manual into every agent skill directory on the machine, so every future session already knows how to use the memory without being told.
Or install it yourself
uv tool install turbo-quant-memory
Then register the server with your client:
claude mcp add --scope project tqmemory -- turbo-memory-mcp serve # Claude Code
codex mcp add tqmemory -- turbo-memory-mcp serve # Codex
gemini mcp add tqmemory turbo-memory-mcp serve # Gemini CLI
Cursor, OpenCode, Antigravity and other clients → CLIENT_INTEGRATIONS.md. Hermes runs MCP through a systemd gateway → docs/hermes.md.
📈 It measures its own savings — see for yourself
Turbo Quant Memory doesn't just claim to save tokens — every install keeps a running tally you can read anytime with server_info() (field usage_stats.headline). The savings are yours to verify, not ours to promise.
Live snapshot from a real developer instance (v0.28.0):
| What the memory did | Number |
|---|---|
| 🔢 Input tokens saved (cumulative) | ≈ 2,640,000 and counting |
| 🔁 Retrievals served | 2,275 searches + 280 deep hydrations |
| 📉 Average saved per retrieval | ≈ 1,200 tokens |
| 📚 Knowledge under management | 234 active notes + 763 indexed code blocks |
| 🛡️ Integrity | 0 corrupted records · 0 pending migrations |
These are one machine's cumulative numbers, not a synthetic benchmark — your own counter starts at zero and grows as your agent works. Run
server_info()on your install to see your real figure.
What it does
- Typed notes.
decision,lesson,pattern,handoff— each stored with tags, provenance and a knowledge-graph link to the file or issue it is about. - Tiered memory.
durable(decisions, patterns) andreference(indexed docs) are searched by default;episodic(session handoffs) stays out of the way until you ask for it, so yesterday's noise never buries an architectural decision. - Hybrid retrieval. A dense vector lane leads; a BM25 lane rescues exact terms — function names, file paths, IDs — fused with Reciprocal Rank Fusion. Cyrillic and other non-English terms match exactly, case- and accent-insensitive, with no configuration.
- Knowledge graph. Directed, timestamped relations between notes, files and issues. Search results carry the linked context inline, so the agent does not need a second lookup.
- Human notes outrank agent notes. Anything you explicitly asked to remember is flagged
human-explicitand ranks above the agent's own observations at equal relevance. - Encrypted secrets vault. Project-scoped, AES-256-GCM, structurally unreachable from search. → docs/secrets-vault.md
- Runs on a small machine. The default embedder is ONNX via fastembed — no PyTorch, ~0.22 GB model, comfortable on 2 GB of RAM.
Full technical detail → docs/features.md
The 19 MCP tools
| Group | Tools |
|---|---|
| Write | remember_note · deprecate_note · promote_note · index_paths |
| Read | semantic_search · hydrate · recent_context · list_scopes |
| Graph | link_entities · unlink_entities · get_related_entities |
| Hygiene | lint_knowledge_base · health · self_test · server_info |
| Vault | set_secret · get_secret · list_secrets · delete_secret |
Documentation
| MEMORY_STRATEGY.md | How to actually use the memory day to day |
| CLIENT_INTEGRATIONS.md | Per-client setup: Cursor, OpenCode, Antigravity, … |
| TECHNICAL_SPEC.md | Architecture and storage format |
| docs/features.md | Retrieval, graph, tiers, embedder, FTS language |
| docs/secrets-vault.md | Vault setup, threat model, FAQ |
| docs/hermes.md | Hermes gateway setup and troubleshooting |
| CHANGELOG.md | Release history |
License
MIT. Copy it, modify it, fork it, ship it inside a closed-source product, sell it. Attribution is the only condition.
Languages
🇺🇸 English · 🇺🇦 Українська · 🇷🇺 Русский
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 turbo_quant_memory-0.28.1.tar.gz.
File metadata
- Download URL: turbo_quant_memory-0.28.1.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d45b239a5322754f22163bcdd4dd6e70f486cdb58bc9f936e973a5d82f0b8bcb
|
|
| MD5 |
53aad951d3aefeded0cd32c68452b1c8
|
|
| BLAKE2b-256 |
9c3a6ca7773fd1dcadb6e94403a08c1fd62f1e957e29c0d91d20d8cbfd13657f
|
Provenance
The following attestation bundles were made for turbo_quant_memory-0.28.1.tar.gz:
Publisher:
publish.yml on Lexus2016/turbo_quant_memory
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
turbo_quant_memory-0.28.1.tar.gz -
Subject digest:
d45b239a5322754f22163bcdd4dd6e70f486cdb58bc9f936e973a5d82f0b8bcb - Sigstore transparency entry: 2864024554
- Sigstore integration time:
-
Permalink:
Lexus2016/turbo_quant_memory@5b103f736e9d8eea83ee6a7bb96f94c7ed67d7cd -
Branch / Tag:
refs/tags/v0.28.1 - Owner: https://github.com/Lexus2016
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5b103f736e9d8eea83ee6a7bb96f94c7ed67d7cd -
Trigger Event:
release
-
Statement type:
File details
Details for the file turbo_quant_memory-0.28.1-py3-none-any.whl.
File metadata
- Download URL: turbo_quant_memory-0.28.1-py3-none-any.whl
- Upload date:
- Size: 133.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69f7d233ea8250d91252da62a13d684574b6cbe0d4ca6a8cd1b024d9252118c2
|
|
| MD5 |
503e0794bffac3527c9345931039758c
|
|
| BLAKE2b-256 |
8f4337562954167ee0440a3eefc14b58fd12a708223a00d4be3ee8db748278d3
|
Provenance
The following attestation bundles were made for turbo_quant_memory-0.28.1-py3-none-any.whl:
Publisher:
publish.yml on Lexus2016/turbo_quant_memory
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
turbo_quant_memory-0.28.1-py3-none-any.whl -
Subject digest:
69f7d233ea8250d91252da62a13d684574b6cbe0d4ca6a8cd1b024d9252118c2 - Sigstore transparency entry: 2864024655
- Sigstore integration time:
-
Permalink:
Lexus2016/turbo_quant_memory@5b103f736e9d8eea83ee6a7bb96f94c7ed67d7cd -
Branch / Tag:
refs/tags/v0.28.1 - Owner: https://github.com/Lexus2016
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5b103f736e9d8eea83ee6a7bb96f94c7ed67d7cd -
Trigger Event:
release
-
Statement type: