Installation
Requirements
Section titled “Requirements”- Python 3.12+
- pip, uv, or pipx
- An embedding provider for semantic search — pick one during
mm init(see Embedding Providers below). Fine to skip at first: memtomem works keyword-only until you choose.
Which installer should I use?
Section titled “Which installer should I use?”| Situation | Recommended choice | Why |
|---|---|---|
| First installation | uv tool install 'memtomem[all]' | isolated persistent CLI, with every feature used by this site |
| Existing pipx-managed CLI environment | pipx install 'memtomem[all]' | keeps the same tool-management workflow |
| Project dependency or controlled virtual environment | pip install 'memtomem[all]' | keeps the package version inside that environment |
Verify python --version and uv --version before installing. On Windows, use py --version if python is unavailable. For the shortest no-model-download path, complete Quick Start with the Minimal preset first.
LTM Server (memtomem)
Section titled “LTM Server (memtomem)”uv tool install 'memtomem[all]'pipx install 'memtomem[all]'pip install 'memtomem[all]'[all] is the recommended first install because it matches the main docs: ONNX dense embeddings, Korean tokenizer, Ollama / OpenAI providers, code chunking, the Web UI, Langfuse tracing, and LangGraph Store adapters. For a leaner footprint, drop the extras for a BM25-only install:
uv tool install memtomem # no extras — dense search, Web UI, Korean tokenizer unavailable until addedOpt into features later with e.g. uv tool install --reinstall 'memtomem[onnx,web]'.
After installing, verify the binary and upgrade with refreshed package metadata if the version looks stale:
mm --versionuv tool install 'memtomem[all]' --refreshOptional extras
Section titled “Optional extras”The extras below are what [all] bundles — install them individually when you want a narrower footprint.
| Extra | Description | Command |
|---|---|---|
onnx | fastembed local embeddings (recommended default) | pip install memtomem[onnx] |
ollama | Ollama provider client | pip install memtomem[ollama] |
openai | OpenAI provider client | pip install memtomem[openai] |
korean | kiwipiepy Korean morphological analysis | pip install memtomem[korean] |
code | tree-sitter AST chunking (Python / JS / TS) | pip install memtomem[code] |
web | FastAPI + uvicorn Web UI | pip install memtomem[web] |
langfuse | Langfuse observability tracing | pip install memtomem[langfuse] |
langgraph | MemtomemStore and MemtomemBaseStore adapters | pip install memtomem[langgraph] |
all | Everything | pip install memtomem[all] |
mm CLI
Section titled “mm CLI”After installation, the commands you’ll reach for most often:
| Command | Purpose |
|---|---|
mm init | Interactive setup wizard |
mm status | Post-install DB / config / embedding health check |
mm search <query> | Search the knowledge base |
mm add <content> | Add a memory entry |
mm web | Launch Web UI dashboard (http://localhost:8080) |
mm --version · mm version | Print installed version |
Full command list (including ingest, session, context, wiki, watchdog, schedule, tags, upgrade, uninstall): see the CLI Reference.
The MCP server itself ships as the memtomem-server console script. You don’t run it by hand — your MCP client launches it after registration. For plugin, scope, configuration-file, restart, and verification paths across all released clients, see Connect an AI Client.
Preset choice
Section titled “Preset choice”| Wizard label | Provider path | Download / network boundary | Recommended for |
|---|---|---|---|
| Minimal | BM25 keyword search only | no model download | first smoke test and exact identifiers |
| English (Recommended) | local ONNX embedding + English reranker | downloads local models once | mostly English projects |
| Korean-optimized | multilingual embedding + reranker + Korean tokenizer | downloads local models once | Korean or multilingual notes |
The CLI tokens remain --preset minimal, --preset english, and --preset korean. Remote Ollama or OpenAI-compatible providers are explicit later choices; selecting them can send request data to the configured service.
File locations
Section titled “File locations”memtomem keeps its local database and configuration under your home directory. The default ONNX path stays on the machine; optional remote embedding, LLM, rerank, and tracing providers send the configured request data to their endpoints.
| Path | What |
|---|---|
~/.memtomem/memtomem.db | SQLite store (chunks + vectors) |
~/.memtomem/config.json | LTM configuration written by mm init |
~/.memtomem/logs/web.log | Web UI log (from mm web -b) |
Override the config directory with the MEMTOMEM_* env vars (see Configuration).
STM Proxy (memtomem-stm)
Section titled “STM Proxy (memtomem-stm)”STM is optional. Install it after the LTM quick-start flow works if you want proactive memory surfacing (presenting relevant memories) or tool-response compression.
uv tool install memtomem-stmpipx install memtomem-stmpip install memtomem-stmuvx memtomem-stm --helpFor ad-hoc execution only — use uv tool install or another tab for a permanent install with client registration.
Optional extras
Section titled “Optional extras”| Extra | Description | Command |
|---|---|---|
langfuse | Langfuse observability tracing | pip install memtomem-stm[langfuse] |
langchain | LangChain agent integration | pip install memtomem-stm[langchain] |
mms CLI
Section titled “mms CLI”After installation, the following commands are available:
| Command | Purpose |
|---|---|
mms init --demo --client auto | First-time, no-network demo + detected-client registration |
mms doctor | Validate config, client registration, upstreams, and optional LTM |
mms register --client claude|codex|auto | Register or refresh STM in a supported client |
mms add <name> --command <cmd> | Register an upstream MCP server |
mms add --from-clients | Bulk-import upstreams from existing MCP client configs |
mms eject <name> | Restore an imported server to its original client and unregister it from STM |
mms list | List registered servers (with a SURFACING column) |
mms status | Config summary — enabled flag and server count |
mms health | Probe upstream connectivity + LTM surfacing readiness |
mms project route | Preview routing selected project MCPs through STM (--apply writes) |
mms --version | Print installed version |
The STM proxy itself ships as the memtomem-stm console script. As with LTM, you don’t launch it by hand — once STM is registered with your MCP client via mms init --client ..., mms register --client ..., or a generic JSON entry, the client starts it automatically. STM writes its proxy config to ~/.memtomem/stm_proxy.json; mms add / mms init manage it for you, so you rarely hand-edit it.
Embedding Providers
Section titled “Embedding Providers”| Provider | Setup | GPU | Cost |
|---|---|---|---|
| ONNX (fastembed) | Built-in | Not required | Free |
| Ollama | ollama pull nomic-embed-text | Not required | Free |
| OpenAI | API key required | — | Paid |
Not sure which to pick? Start with ONNX — inference is local, free, and needs no extra daemon or API key. You can switch later by re-running mm init or setting MEMTOMEM_EMBEDDING__PROVIDER (note the double underscore — nested pydantic-settings keys use __ as delimiter).
Tech Stack
Section titled “Tech Stack”| Category | Technology |
|---|---|
| MCP | FastMCP (stdio, SSE, Streamable HTTP) |
| Framework | Pydantic v2, Click (CLI), FastAPI (Web UI) |
| Database | SQLite (FTS5 full-text search), sqlite-vec (vector search) |
| Code parsing | tree-sitter (Python, JS, TS AST) |
| Korean | kiwipiepy morphological analyzer (optional) |
| Observability | Langfuse (optional) |