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.

VerifiedSTDIODesktop onlyKnowledge & MemoryDeveloper Tools

Overview

AI-generated 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.
Before you install
Memory writes happen only when you or the agent call the tools, but those calls create and modify Markdown files and the local index. Choosing OpenAI embeddings, a cloud LLM or the Cohere reranker sends note text to that service. The project is in beta, and some features such as multi-agent memory, export/import bundles and LLM-written output are marked experimental and may change.

Installation

In SourceWeft

  1. Open Memtomem in the dashboard and add it to a workspace.
  2. 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 mm CLI, and the format of your memory and config files change only with an Upgrading note 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.

[Session 1 in Claude Code runs /memtomem:handoff save, writing one checkpoint record into the project's .memtomem/memories.local Markdown files. Session 2 in Codex CLI runs $memtomem-brief to list handoff IDs and updates, then $memtomem-handoff resume to load the checkpoint. After work and commits, back in Claude Code, /memtomem:update writes decisions, fixes, and preferences back into the same files.]

Illustrative output — agent wording and results vary.

text
# End of a session, in Claude Code> /memtomem:handoff save codex-clihandoff_id: 3f2a9c1e-7b4d-4e8a-9c2f-1d5e6a7b8c9dscope: project_local · namespace: shared:retry-policy · 1 file written, 2 chunks indexed
# Next session, in Codex CLI> $memtomem-briefRecent updates and active handoff IDs  - 3f2a9c1e-7b4d-4e8a-9c2f-1d5e6a7b8c9d  from claude-code → codex-cli    load it with: $memtomem-handoff resume 3f2a9c1e-7b4d-4e8a-9c2f-1d5e6a7b8c9d> $memtomem-handoff resume 3f2a9c1e-7b4d-4e8a-9c2f-1d5e6a7b8c9dgit_head matches the live HEAD · worktree clean · in sync with `origin` `refs/heads/main`
# After a few commits, back in Claude Code> /memtomem:updatemode: incremental · 4 of the latest 10 commits not yet reviewedsaved 2 items · commit-derived: 1 · session-derived: 1

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 .md files 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

bash
uv tool install 'memtomem[all]'       # or: pipx install 'memtomem[all]'mm --version                          # verify 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

bash
mm init                               # preset picker, then memory_dir + MCP

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

bash
mm statusmm add "Deployment checklist uses blue-green rollout" --tags opsmm search "blue-green"

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:

bash
cd <your-project> && mm mem init --scope project_local

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)

bash
mm web                # dashboard on http://127.0.0.1:8080mm web -b             # run in the background; logs go to ~/.memtomem/logs/web.logmm web stop           # stop the tracked Web UI process

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):

bash
uv tool install memtomem             # no extras — no local ONNX model, Web UI or Korean tokenizer until you add them; Ollama/OpenAI embeddings still work

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):

bash
uv add 'memtomem[all]' && uv run mm init    # all commands need `uv run` prefix

No install (uvx on demand):

bash
claude mcp add memtomem -s user -e MEMTOMEM_EXTRA_TOOLS=mem_update_coverage -- uvx --isolated --from "memtomem[all]==0.7.6" memtomem-server
Troubleshooting the install
  • mm --version shows an older version than the latest release right after installing: uv is likely serving cached PyPI metadata. Re-run with uv tool install 'memtomem[all]' --refresh, or clear the cache first with uv cache clean memtomem. To upgrade an existing uv tool install, use mm upgrade rather than re-running uv tool install; see the CLI reference for what it preserves and stops.
  • mm: command not found: uv tool install drops the shim into ~/.local/bin, which is not on $PATH in fresh shells on macOS/Linux. Run uv tool update-shell, then open a new shell and re-run mm --version.
  • Duplicate tools after upgrading the Claude plugin: re-check /mcp after reloading. The plugin launches memtomem[onnx]==0.7.6. A manual registration whose launch differs — base-only memtomem, 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

Your memory, your filesOperate itPlug it in
Markdown is the source of truth; the search index is rebuilt from it (database-only state such as tag edits is not)Web UI for search, sources, tags, timeline, and dedup (mm web)Nine core MCP tools, with mem_do routing every other action so agents load a small tool surface
Hybrid search: BM25 keyword + dense vector + RRF fusion in one queryNamespaces, auto-derived from folder names and labelled from the Web UIContext Gateway: keep Skills, Commands, and Subagents in one Store and push them to your AI runtimes
Semantic chunking: heading-aware Markdown, AST-based Python, tree-sitter JS/TS, structure-aware JSON/YAML/TOMLMaintenance: near-duplicate detection, time-based decay, TTL expiration, auto-taggingPinned Context: small user/project/agent Markdown blocks composed ahead of retrieved results
Incremental indexing: chunk-level SHA-256 diff, so only changed chunks are re-embeddedScheduled jobs for compaction, decay, dead-link cleanup, and dedup scansLangGraph MemtomemBaseStore, plus the Hybrid Store with SQLite persistence and BM25/dense/RRF retrieval
Scriptable CLI: --json output on status, search, recall, and the write commands; mm warmup pre-loads local modelsmemtomem-stm: optional proxy for proactive surfacing, compression, and caching

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_start with agent_id). Open decisions: #1477, #1478.
  • Memory export and import bundles — mem_export / mem_import and 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

PackageWhat it addsSession loop
memtomemCore: MCP server, CLI, Web UI, hybrid search, storage—
Claude Code pluginExact-pinned MCP server and slash-command workflowshandoff · brief · update
Claude Code automation pluginOptional hooks for prompt-time search and write-time indexing—
Codex pluginExact-pinned MCP server and skills for Codex CLIhandoff · brief · update
opencode-memtomemExact-pinned MCP server, commands, and read skills for OpenCodehandoff · brief · update
Kimi Code skillsSkill bundle for Kimi Code (not a plugin)handoff · brief · update
Antigravity CLI pluginExact-pinned MCP server and skills for agy — experimentalhandoff · brief · update
Cursor pluginExact-pinned MCP server and skills for Cursor — experimentalhandoff · brief · update
Hermes Agent pluginExact-pinned MCP server and the search, recall, status, remember, index, and setup skills— (needs a project root)
Hermes memory providerRecall-only provider that adds relevant notes to each Hermes turn—
memtomem-stmSTM proxy: proactive memory surfacing via tool interception—

Documentation

Hosted at memtomem.com and available as Markdown in this repo.

GuideDescription
Getting StartedInstall, configure, save and find your first memory
Plugin quickstartSave and find a memory from Claude Code or Codex CLI in 10–15 minutes
한국어 바이브코딩 빠른 시작Claude Code·Codex CLI에서 10~15분 안에 기억 저장·검색
Project workflowshandoff, brief, and update: modes, checks, and names per host
MCP Client SetupEditor-specific configuration
Use casesNine runnable scenarios for multi-tool developers, personal knowledge bases, and teams
All guidesReference, configuration, embeddings, operations, and more, in a suggested reading order

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

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

15
  1. v0.7.6LatestNov 7, 2026
  2. v0.7.5Nov 5, 2026
  3. v0.7.4Nov 4, 2026
  4. v0.7.3Nov 3, 2026
  5. v0.7.2Nov 1, 2026
  6. v0.7.1Oct 31, 2026
  7. v0.7.0Oct 29, 2026
  8. v0.6.12Oct 25, 2026
  9. v0.6.10Oct 24, 2026
  10. v0.6.9Oct 19, 2026
  11. v0.6.8Oct 8, 2026
  12. v0.6.7Oct 5, 2026
  13. v0.6.6Oct 2, 2026
  14. v0.6.5Sep 26, 2026
  15. 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