docs(install): flip primary install to memtomem[all]#395
Merged
Conversation
Bare `uv tool install memtomem` omits the `[all]` extra, which bundles everything the public docs actively advertise — ONNX dense embeddings (both "recommended" presets depend on them), Korean tokenizer, Ollama and OpenAI SDKs, the code chunker, and the Web UI. Verified on a fresh install: the bare tool env is ~48 MB and is missing `fastembed`, `kiwipiepy`, `fastapi`, `ollama`, `openai`, and all `tree-sitter-*` grammars. `mm web` exits with a loud remediation; ONNX-provider indexing drops into a recovery-mode warning; kiwipiepy tokenization falls back to unicode61 with a warning at search time. None of this was hinted at by the install command itself. Flip the primary install command to `uv tool install 'memtomem[all]'` across every first-touch surface (repo README, PyPI README, Getting Started, Claude Code integration, CLI reference). Keep the bare `uv tool install memtomem` shape available as a "Minimal" option under the existing collapsible Other-Install-Options section in the repo README, with a parallel callout in the PyPI README and an inline alternative block in Getting Started. Option B (`uv add`) gets the same flip: primary is `uv add 'memtomem[all]'`, alternative is bare. Update the cache-lag blockquote wording (shipped in #393) to reference the new primary command so the copy-paste `--refresh` instructions match. Closes #391. Co-Authored-By: Claude <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Flip the primary install command across all first-touch docs to
uv tool install 'memtomem[all]'. Keep the bareuv tool install memtomemshape as a secondary "Minimal install" option. Update the cache-lag blockquotes (from #393) to reference the new primary command.5 files, +33 / −14 lines. Docs-only, no code changes.
Closes #391.
Why
The
[all]extra (memtomem[onnx,ollama,openai,korean,code,web]) bundles exactly the features the public docs advertise:English/Korean-optimized) thatmm initpushes by defaultkiwipiepy) — advertised as a multilingual selling pointtree-sitter) — implied by "index markdown + code"fastapi) — surfaced in its own README section +mm webcommandA fresh
uv tool install memtomemships none of these. Observed on 2026-04-23 in a clean tool env:Runtime behaviour after picking a feature that needs a missing extra:
mm web→ loud error with remediation (uv tool install --reinstall 'memtomem[web]')mm init -y --provider onnx→ wizard accepts, writesprovider=onnx (0d); index/search then warn "degraded mode — Run 'mm embedding-reset' to fix"mm init -y --tokenizer kiwipiepy→ wizard accepts; search-time warning "kiwipiepy not installed — falling back to unicode61"Users aren't silent-degraded at runtime (that framing from the original issue was revised in this fact-check comment), but the install command doesn't match what the same README promises. Users who follow the README literally can end up configuring a preset that never reaches dense search and only learn about it via runtime warnings.
Going with Option 1 from the issue discussion: the recommended setups already require
[all]-level extras, so making the primary command deliver that is consistent with the docs' implicit promise. Users who specifically want a ~40 MB lightweight install can take the Minimal option.Files changed
README.md[all]; added Minimal option inside<details>with an explicit anchor; updated cache-lag blockquote; flippeduv addinside<details>packages/memtomem/README.md(PyPI)[all]; added one-line tradeoff paragraph; updated cache-lag blockquotedocs/guides/getting-started.md[all]+ inline BM25-only alternative + extras opt-in pointer; Option Buv addflipped; updated cache-lag blockquote; "No such command" Troubleshooting entry also flippeddocs/guides/integrations/claude-code.md[all]docs/guides/reference.md[all]Intentional residual
uv tool install memtomembare lines (4 total) are all inside the Minimal install alternatives, clearly labeled as such.Scope — intentionally out
mm init -y --provider onnxrefusing whenfastembedis missing) — separate gap, tracked adjacent to mm init: auto-install consistency for python extras + mismatch banner (Phase 2 of #360) #362.[all]packaging composition — nopyproject.tomlchanges in this PR. If we later split into a lighter "recommended" extra set, the docs can re-point.Test plan
uv tool install 'memtomem[all]'in a clean env:mm --versionprints0.1.24,fastembed,kiwipiepy,fastapi,ollama,openai,tree_sitterall import.uv tool install memtomemverified in a prior run (48 MB, BM25-only default config).#minimal-installadded via explicit<a id>tag (safer than heading-derived slug).#option-c-from-source-for-development-or-testingmatches GitHub's default anchor slug for the existing### Option C: From source (for development or testing)heading.[all]shows up unquoted-unbracket-exploded in rendered code blocks.🤖 Generated with Claude Code