memtomem
🚧 Alpha — APIs, defaults, and on-disk config surfaces may still change between
0.xreleases. Feedback and issue reports are especially welcome at github.com/memtomem/memtomem/issues.
Markdown-first long-term memory infrastructure for AI agents. Core usage is hook-free by default: your files remain the source of truth, and memory changes happen only when you or your agent explicitly call memtomem. Optional client hooks are separate, visible integrations.
Core philosophy: .md files are the source of truth and the vector database is a derived cache. Manage memories as plain text files — memtomem makes them instantly searchable.
Built for:
- AI agents (Claude Code, Cursor, Windsurf, Claude Desktop, Kimi CLI) that need to remember between sessions
- Developers who want a searchable knowledge base built from their existing markdown notes — no proprietary database, no vendor lock-in
- Multilingual content (English, Korean, Japanese, Chinese) via
bge-m3embeddings
Quick Start
# 1. Install memtomem with all features (Python 3.12+)
uv tool install 'memtomem[all]' # or: pipx install 'memtomem[all]'
mm --version
# 2. Configure storage, search, and optional MCP registration
mm init
# 3. Verify a complete memory round trip
mm status
mm add "Deployment checklist uses blue-green rollout" --tags ops
mm search "blue-green"
The search should return the sentence you just added. mm add writes to your configured user memory directory and indexes the entry immediately, so this path works without an existing notes directory or a connected editor.
Choose Minimal in the setup picker for a no-model-download first proof;
rerun mm init later to add semantic search.
To index existing files next:
mm index /path/to/your/notes
If mm init registered an MCP client, ask it to Call the mem_status tool. See Getting Started for install alternatives, the Korean Claude Code/Codex quickstart for a plugin-first path, and MCP Client Setup for manual registration.
[all] includes ONNX, Ollama and OpenAI integrations, Korean tokenization,
code chunking, the Web UI, Langfuse tracing, and LangGraph Store support.
Install bare memtomem for BM25-only usage. See the
optional extras table
for smaller bundles. If mm is not on PATH, run uv tool update-shell and
open a new shell. If an install appears stale, re-run it with --refresh.
memtomem is the long-term-memory store. memtomem-stm is a separate, optional MCP proxy for automatic surfacing, compression, and caching.
Key Features
- 🔍 Hybrid search — BM25 (FTS5) + dense vectors (sqlite-vec) merged via Reciprocal Rank Fusion. Exact terms via keyword, meaning via semantic, both at once.
- 📦 Semantic chunking — heading-aware Markdown, AST-based Python, tree-sitter JS/TS, structure-aware JSON/YAML/TOML
- ♻️ Incremental indexing — chunk-level SHA-256 diff means only changed chunks get re-embedded
- 🏷️ Namespaces — scope memories into groups (work / personal / project) with optional auto-derivation from folder names; label them (colour, description) from Settings → Namespaces in the Web UI
- 🧹 Maintenance — near-duplicate detection with merge, time-based score decay, TTL expiration, auto-tagging
- 🔄 Export / import — JSON bundle backup and restore with re-embedding
- 🌐 Web UI — polished SPA dashboard for search, sources, indexing, tags, and timeline (
mm web --devunlocks the full maintainer surface including Sessions, Working Memory, and Health Report) - 🧭 Context Gateway — keep canonical Skills, Commands, and Subagents in a project or user Store, optionally install reusable Wiki assets, then push them to supported runtimes
- ⚙️ Scriptable CLI —
--jsonoutput onmm statusand write commands (mm add/mm reset/mm purge);mm warmuppre-loads local models so the first query skips cold-start - 🛠️ 9-tool core mode — a compact default surface, with
mem_dorouting the full feature set without loading every tool into agent context - 📌 Pinned Context — small file-backed user/project/agent blocks are composed before retrieved memory
- 🕸️ LangGraph Store — optional
MemtomemBaseStoresupplies tuple-namespace JSON persistence and search - Hybrid Store —
MemtomemHybridStoreadds explicit-path SQLite persistence, BM25/dense/RRF retrieval, TTL, and diagnostics; see the guide
The full surface contains 100 tools. It includes the Pinned Context actions
(mem_pinned_list/get/set/delete, mem_context_compose) and review-first
formation actions (mem_formation_scan, mem_candidate_propose/list/evidence/review/recover). See the
complete MCP table
for every category.
Documentation
Full documentation lives in the memtomem GitHub repo:
| Guide | Topic |
|---|---|
| Getting Started | Start here — install, configure, save and find your first memory |
| 한국어 바이브코딩 빠른 시작 | Claude Code·Codex CLI에서 10~15분 안에 기억 저장·검색 |
| MCP Client Setup | Connect Claude Code, Cursor, Codex, and other clients |
| Core memory tools | Index existing notes, search, and manage memories |
| Configuration | Supported config files, precedence, and environment variables |
| Embeddings | ONNX, Ollama, and OpenAI providers, model dimensions, switching models |
| Context Gateway | Author and push canonical Skills, Commands, and Subagents to each type's supported AI tools |
| Operations & troubleshooting | Web UI, privacy audits, diagnostics, and recovery |
| Reference | Complete feature reference — all tools and patterns |
| memtomem-stm | Optional STM proxy for proactive memory surfacing (separate package) |
License
Apache License 2.0 — see LICENSE for details.
Release files for memtomem 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| memtomem-0.6.0.tar.gz | 3.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| memtomem-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.3 MB
Release files / memtomem-0.6.0.tar.gz
| Download URL | memtomem-0.6.0.tar.gz |
|---|---|
| Size | 3.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
12ae331546e919ab7f37654cda4c70ca69d9e48a0e050d3639d05de864c907e2
|
|
BLAKE2b-256 checksum How to use checksums |
c81678738d5459ae362ffe48df3edfb732635862cdfbed7ebc218079d2a4fda9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.
Transparency logRelease files / memtomem-0.6.0-py3-none-any.whl
| Download URL | memtomem-0.6.0-py3-none-any.whl |
|---|---|
| Size | 3.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a0007e9fdc11d1a5fd4bcfab50ddf1cb893738ce27e74468ec3f0912944ea1a1
|
|
BLAKE2b-256 checksum How to use checksums |
6e2b3dddd4aa411acc3e21ddcebacae19550e58bf7d16de5ed50fa2fb1dda258
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.
Transparency log