Quick Start
Estimated time: 10 minutes
Goal: initialize local storage, add one memory, and find it again from the terminal.
This path uses LTM only. You do not need an existing notes folder, embedding model, cloud account, MCP client, or STM proxy.
1. Check the Prerequisites
Section titled “1. Check the Prerequisites”memtomem requires Python 3.12 or later. This guide recommends uv for a persistent CLI installation.
python --versionuv --versionOn Windows, use py --version if python is not available. If uv is missing, install it from the official uv installation guide, reopen the terminal, and rerun uv --version.
2. Install and Initialize
Section titled “2. Install and Initialize”uv tool install 'memtomem[all]'mm --versionmm init --preset minimal --non-interactive --mcp skipThe Minimal preset uses keyword search and does not download an embedding model. --mcp skip keeps the first test independent of any client configuration.
If the shell cannot find mm, run uv tool update-shell and reopen the terminal. If the reported version is stale, refresh the package metadata:
uv tool install 'memtomem[all]' --refresh3. Verify a Memory Round Trip
Section titled “3. Verify a Memory Round Trip”Check the new store before adding anything:
mm statusStorage and database paths should be visible. A zero chunk count is normal in a new store. Now add and search one memory:
mm add "Release smoke tests run before traffic cutover" --tags release,decisionmm search "release smoke tests"The result should contain the saved sentence and its Markdown source path. This proves that the local store, write path, index, and keyword search all work.
Add Semantic Search Later
Section titled “Add Semantic Search Later”The interactive preset picker uses these released names:
| Preset | Use it for | Downloads |
|---|---|---|
| Minimal | fastest smoke test and exact-keyword search | none |
| English (Recommended) | mostly English projects | local embedding and reranker models |
| Korean-optimized | Korean or multilingual notes | multilingual embedding, reranker, and Korean tokenizer |
Rerun mm init after the first success when you want to change the provider. See Installation before changing an existing index’s embedding model.
4. Connect Your MCP Client
Section titled “4. Connect Your MCP Client”Use Connect an AI Client to choose one supported client, register the server, and verify mem_status. Claude Code and Codex users should prefer the official plugin path; other clients use their released MCP configuration format.
Installing a plugin or registering MCP does not index the whole project, watch files, import built-in memory, or save conversations automatically.
5. Index Existing Notes
Section titled “5. Index Existing Notes”Follow Index and Import Existing Content for a complete mm index or mm ingest workflow with a dry run, source-backed search, and repeat-run check.
6. Open the Web UI
Section titled “6. Open the Web UI”The CLI round trip is sufficient for the first success. To browse search results, sources, tags, settings, and Context Gateway in a browser:
mm web --openDeveloper and maintainer pages require mm web --dev; normal use does not.
Optional: Add STM Later
Section titled “Optional: Add STM Later”Add STM only when an existing MCP workflow needs response compression, caching, or proactive LTM surfacing. Add STM to an MCP Server takes you from the bundled demo to a real proxied call and a reversible mms eject workflow.
- Choose Your Path — pick the next task by outcome
- Memory Across Sessions — retrieve a saved decision in a new session
- Connect an AI Client — Claude Code, Codex, and other MCP clients
- Index and Import Existing Content — notes, code, and built-in AI memory
- Local-First & Privacy — local defaults and opt-in network boundaries
- Troubleshooting — return to the failed step with a concrete fix