Skip to content

Troubleshooting

Start at the failed step. Each fix ends with the command or guide section to retry.

Terminal window
python --version

memtomem requires Python 3.12 or later. On Windows, try py --version. Install or select a supported Python before retrying Quick Start → Install and Initialize.

Install uv from its official installation guide, reopen the terminal, and verify:

Terminal window
uv --version

mm: command not found / mms: command not found

Section titled “mm: command not found / mms: command not found”

The executable directory may not be on PATH. Run the command for your installer and reopen the terminal:

Terminal window
uv tool update-shell

For pipx, use pipx ensurepath. Then retry mm --version or mms --version.

Terminal window
uv tool install 'memtomem[all]' --refresh
mm --version

The setup wizard is unclear or a model download fails

Section titled “The setup wizard is unclear or a model download fails”

Return to a deterministic no-download baseline:

Terminal window
mm init --preset minimal --non-interactive --mcp skip
mm status

Minimal is BM25-only and does not download an embedding model. Add English (Recommended) or Korean-optimized semantic search only after this path works.

Run mm status and read the configuration and database paths it reports. Confirm the current user can write to the parent directory and that ~/.memtomem/ is not owned by another account. Retry initialization; do not delete the directory or database as a first recovery step.

Healthy output includes storage and database paths, an embedding provider, and index counts. Zero chunks are normal before the first add or index.

Terminal window
mm status
mm status --json
  1. Read the database and memory paths from mm status.
  2. Confirm the current user owns and can write to those directories.
  3. Retry with a short, non-sensitive sentence.
  4. If a project-local tier is involved, run from the intended Git project root.

Return to Quick Start → Verify a Memory Round Trip.

  • Confirm mm status shows at least one chunk after add or index.
  • With Minimal preset, search words that appear exactly in the saved source.
  • If a namespace was used, pass the same namespace or use the agent-specific search flow.
  • For external files, confirm the returned source count changed after mm index or import.
Terminal window
mm search "EXACT_WORDS_FROM_THE_SOURCE"

See Index and Import Existing Content for source and repeat-run checks.

The client does not support plugin commands

Section titled “The client does not support plugin commands”

Claude Code and Codex have the official plugin paths documented on this site. Other clients may not recognize /plugin or codex plugin; use their MCP-only configuration from Connect an AI Client instead.

  • A manual MCP-only entry must use memtomem-server; memtomem and mm are CLIs. An official plugin may use its own pinned launch command.
  • Restart the client or open a new session after changing configuration.
  • In a Claude Code session, run /mcp; in Codex, run codex mcp list. In OpenCode, inspect the exact mcp.memtomem key.
  • Ask the client to call mem_status explicitly.

GUI apps may start with a different PATH from the terminal. Find the installed executable:

Terminal window
command -v memtomem-server

Use that absolute path as the configured command, then fully restart the app. On Windows, use where memtomem-server.

This duplicates MCP server namespaces and tools, not necessarily the plugin’s slash commands or skills. Resolve it according to the client:

  • Claude Code: run /mcp. The plugin signature is uvx --from memtomem==0.3.12 memtomem-server; an exact manual match runs one server, while a different command runs both mcp__memtomem__mem_* and mcp__plugin_memtomem_memtomem__mem_*. Keep the plugin with claude mcp remove memtomem, or keep the manual server with /plugin uninstall memtomem@memtomem. You can also retain the plugin commands by giving the manual entry the exact plugin signature.
  • Codex: run codex mcp list. [mcp_servers.memtomem] takes precedence over the plugin and runs one server. A different name such as [mcp_servers.memtomem-local] runs both; rename it to memtomem or remove it to use the plugin server.
  • OpenCode: keep the manual entry at the exact mcp.memtomem key, or remove it to use the plugin server. A different key such as mcp."memtomem-local" runs both.

Start a new session after changing the registration. See Connect an AI Client for the complete coexistence choices.

Call mem_status in both clients and compare database paths. Project-local memory also requires the same project root and scope. Matching package versions alone does not make different databases share content.

The browser does not open or the page is unavailable

Section titled “The browser does not open or the page is unavailable”
Terminal window
mm web --open
mm web status

The default server binds to loopback. Background Web UI logs are in ~/.memtomem/logs/web.log. Do not bind it to a public interface without the controls described in Operations & API.

Terminal window
mms status
mms health
mms doctor

mms add or mms init must have enabled the proxy and added an upstream. mms doctor exits 0 when there are no FAIL checks; WARNs are allowed.

Proxied tools go missing (64-character limit)

Section titled “Proxied tools go missing (64-character limit)”

The final client name may be mcp__<server>__<prefix>__<tool>. If it exceeds 64 characters, the tool can be withheld. Use a shorter STM server name and upstream --prefix, then run mms health --names and confirm it no longer reports the composed name.

The client probably used a built-in tool instead of an STM MCP alias. Ask it to call the visible <prefix>__<tool> name explicitly and check stats again.

mms health must report the optional LTM link as connected and the LTM server must expose mem_search. If only LTM is unavailable, proxying, compression, and caching can still work.

Preview first:

Terminal window
mms eject SERVER_NAME --dry-run
mms eject SERVER_NAME

See Add STM to an MCP Server for verification before and after restoration.

  • LTM and STM MCP logs go to stderr by default and are captured or discarded by the launching client.
  • Set MEMTOMEM_LOG_LEVEL to adjust LTM verbosity.
  • Set MEMTOMEM_STM_LOG_FILE to opt into an STM rotating file log.
  • Background Web UI logs live at ~/.memtomem/logs/web.log.
PathWhat
~/.memtomem/memtomem.dbLTM SQLite store
~/.memtomem/config.jsonLTM configuration
~/.memtomem/stm_proxy.jsonSTM proxy configuration
~/.memtomem/logs/web.logbackground Web UI log

For every released setting, see Environment Variables.