
Memtomem
io.github.memtomemPublished by GitHub account memtomemv0.7.6Updated Nov 7, 2026
Long-term memory for AI coding agents, kept as Markdown you own. Runs locally.
Overview
Local long-term memory for AI coding agents, stored as Markdown files you own and searchable through MCP tools and a CLI.
- What you can do
- Add, index and search memories kept as plain Markdown files, with hybrid keyword and vector search
- Recall and update stored notes, check status, and route other memory actions through a single tool
- Run handoff, brief and update workflows that carry a project's memory between sessions and coding agents
- Browse and maintain memories in a local Web UI, including tags, timeline and duplicate detection
- Export and import memory bundles, and share memories between agents
- When to use it
- Useful when you work with coding agents across sessions or across tools such as Claude Code, Codex CLI, Cursor or OpenCode and want decisions, fixes and preferences to persist in files you can read and version. Also fits personal knowledge bases that should stay on your machine.
- Requirements
- Runs locally as a stdio process, typically installed with uv or pipx (Python) or launched on demand with uvx. Setup runs an interactive init that picks a memory directory and registers the MCP server. Optional extras add ONNX embeddings, a Korean tokenizer and the Web UI; Ollama or OpenAI embeddings can be used instead.
Installation
In SourceWeft
- Open Memtomem in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
memtomem
Long-term memory for AI coding agents, kept as Markdown you own. Core usage is hook-free by default: memory changes happen only when you or your agent call memtomem.
[PyPI] [Downloads] [GitHub stars] [License: Apache 2.0]
🧪 Beta — the nine core MCP tools, the
mmCLI, and the format of your memory and config files change only with anUpgradingnote in the CHANGELOG. Features marked experimental can change without one; see Stability. Feedback is welcome: Issues · Discussions.
The session loop
Three plugin workflows carry a project's memory from one session to the next, and from one coding agent to another.
Illustrative output — agent wording and results vary.
handoff save writes one Markdown record into the project's own .memtomem/memories.local; brief only reads; update saves decisions, bug fixes, and preferences as separate items. All three run only when you invoke them, and nothing runs in the background. The Project workflows guide has each one's modes, checks, and host-specific names.
Why memtomem?
- Your files stay yours. Memories are plain
.mdfiles you can read, edit, and version. The search index is rebuilt from them, day-file namespaces included; tag edits and working state live only in the database (what a rebuild restores). - Explicit by default. Memory operations run on your CLI or MCP calls (
mm add,mem_add,mem_index). Optional client hooks are separate, removable integrations, not a hidden runtime default. - One store, many tools. Claude Code, Codex CLI, OpenCode, Kimi Code, and Antigravity share one local store, and any MCP client can search it. memtomem-stm is a separate, optional proxy that surfaces memories proactively.
Quick Start
1. Install
[all] bundles ONNX dense embeddings, the Korean tokenizer, the code chunker, and the Web UI (about 340 MB installed, before any model download). The Ollama and OpenAI embedding providers need no extra. A smaller install is under Other install options below.
2. Setup
The interactive picker starts with three presets — Minimal (BM25, no downloads), English (Recommended) (ONNX multilingual-e5-small + auto-discover providers), Korean-optimized (ONNX multilingual-e5-small + kiwipiepy tokenizer); no preset turns on a reranker — plus an Advanced entry that opens the full 10-step wizard. Preset paths only ask about the memory directory and MCP registration; everything else is set from the preset.
Choose Minimal for the fastest no-download first proof and rerun mm init later to add semantic search. For automation, mm init --non-interactive picks the minimal preset without prompts. See Embeddings for the model and provider matrix. The presets keep embedding on your machine; choosing OpenAI embeddings, a cloud LLM, or the Cohere reranker sends note text to that service (What leaves your machine).
3. Verify a complete memory round trip
The last command should return the sentence you just added. mm add writes to your user memory directory and indexes the entry immediately, so this works without an existing notes directory or a connected editor. To bring existing notes into the same index, run mm index /path/to/your/notes.
4. Connect your coding agent
Install the plugin for your tool — Claude Code, Codex CLI, OpenCode, Kimi Code, Antigravity, or Cursor — then, in the project you work on, register the memory tier the session loop writes to:
Start a new session and run the brief workflow: /memtomem:brief in Claude Code, and the name each other host uses is in the Project workflows guide. The Claude Code & Codex CLI plugin quickstart (한국어) walks through plugin installation and a first memory save-and-search round trip in 10–15 minutes. For Windsurf, Claude Desktop, Gemini CLI, other MCP clients, and registering Cursor by hand instead of through the plugin, see MCP Client Setup; from any client, asking it to call the mem_status tool confirms the connection.
5. Open the Web UI (optional)
mm web shows the polished page set. mm web --dev (or MEMTOMEM_WEB__MODE=dev) adds maintainer pages such as Sessions, Working Memory, and Health Report.
Other install options
Minimal (no bundled model, about 50 MB):
Opt in later per feature: uv tool install --reinstall 'memtomem[onnx,web]' (see the extras table). List every extra you want to keep, because --reinstall replaces the whole set. A plain mm upgrade keeps the extras it detects from the current install, but an explicit mm upgrade --extras list must name the complete set too.
Project-scoped (per-project isolation):
No install (uvx on demand):
Troubleshooting the install
mm --versionshows an older version than the latest release right after installing:uvis likely serving cached PyPI metadata. Re-run withuv tool install 'memtomem[all]' --refresh, or clear the cache first withuv cache clean memtomem. To upgrade an existing uv tool install, usemm upgraderather than re-runninguv tool install; see the CLI reference for what it preserves and stops.mm: command not found:uv tool installdrops the shim into~/.local/bin, which is not on$PATHin fresh shells on macOS/Linux. Runuv tool update-shell, then open a new shell and re-runmm --version.- Duplicate tools after upgrading the Claude plugin: re-check
/mcpafter reloading. The plugin launchesmemtomem[onnx]==0.7.6. A manual registration whose launch differs — base-onlymemtomem, or the ONNX launch pinned to an earlier release — no longer matches for deduplication. Confirm the manual entry's name and scope, then align its launch command with the plugin or remove the redundant registration. - Indexing vs. discovery (Claude Code): provider memory folders that setup auto-discovers (such as
~/.claude/projects/*/memory/) are added to the search index. That is separate from the Web UI's opt-in Context Gateway scan of~/.claude/projects/, which discovers project roots for Skills, Commands, and Subagents; see Configuration → Context Gateway.
What else is inside
Stability
memtomem is beta (0.x). The nine core MCP tools, the mm CLI, and the format of your memory files and config files change only with an Upgrading note in the CHANGELOG, and behind a deprecation window where one is possible. Other features are supported — maintained, with their changes recorded in the CHANGELOG — without that guarantee.
These are experimental — their behaviour, output, or format can still change or go away without a window, because a decision that shapes them is still open or an LLM writes what they produce:
- Multi-agent memory —
mem_agent_register,mem_agent_search,mem_agent_share, and per-agent session scopes (mem_session_startwithagent_id). Open decisions: #1477, #1478. - Memory export and import bundles —
mem_export/mem_importand the Web export/import. How a backup made before 0.7.0 (bundle v1–v3) that holds project memories should be restored is still open. - LLM-written output — anything memtomem's configured LLM (
MEMTOMEM_LLM__ENABLED=true) writes: LLM auto-tagging and entity extraction,strategy="llm"query expansion, LLM consolidation and policy summaries, session auto-summaries, source summaries (indexing.auto_summarize), and contextual chunk enrichment (indexing.enrich_chunk_context). The rule-based modes beside them are supported. - Claude projects scan in the Context Gateway (
MEMTOMEM_CONTEXT_GATEWAY__EXPERIMENTAL_CLAUDE_PROJECTS_SCAN). - Antigravity CLI plugin (
packages/memtomem-antigravity-plugin/). - Cursor plugin (
packages/memtomem-cursor-plugin/).
Works with
Documentation
Hosted at memtomem.com and available as Markdown in this repo.
Contributing
See CONTRIBUTING.md for setup instructions and the contributor guide. New here? Start with an issue labelled good first issue.
License
Apache License 2.0. Contributions are accepted under the terms of the Contributor License Agreement.
Source: README.md at commit b51ac3d
Tools
0Version history
15- v0.7.6LatestNov 7, 2026
- v0.7.5Nov 5, 2026
- v0.7.4Nov 4, 2026
- v0.7.3Nov 3, 2026
- v0.7.2Nov 1, 2026
- v0.7.1Oct 31, 2026
- v0.7.0Oct 29, 2026
- v0.6.12Oct 25, 2026
- v0.6.10Oct 24, 2026
- v0.6.9Oct 19, 2026
- v0.6.8Oct 8, 2026
- v0.6.7Oct 5, 2026
- v0.6.6Oct 2, 2026
- v0.6.5Sep 26, 2026
- v0.6.4Sep 20, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
