Skip to content

docs(install): flip primary install to memtomem[all]#395

Merged
memtomem merged 1 commit intomainfrom
docs/install-primary-all-extras
Apr 22, 2026
Merged

docs(install): flip primary install to memtomem[all]#395
memtomem merged 1 commit intomainfrom
docs/install-primary-all-extras

Conversation

@memtomem
Copy link
Copy Markdown
Owner

Summary

Flip the primary install command across all first-touch docs to uv tool install 'memtomem[all]'. Keep the bare uv tool install memtomem shape 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:

  • ONNX dense embeddings — required by both "Recommended" presets (English / Korean-optimized) that mm init pushes by default
  • Korean tokenizer (kiwipiepy) — advertised as a multilingual selling point
  • Ollama / OpenAI providers — listed in every embeddings table
  • Code chunker (tree-sitter) — implied by "index markdown + code"
  • Web UI (fastapi) — surfaced in its own README section + mm web command

A fresh uv tool install memtomem ships none of these. Observed on 2026-04-23 in a clean tool env:

fastembed                 MISSING ✗
onnxruntime               MISSING ✗
kiwipiepy                 MISSING ✗
tree_sitter               MISSING ✗
fastapi                   MISSING ✗
ollama                    MISSING ✗
openai                    MISSING ✗

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, writes provider=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

File Change
README.md Primary install → [all]; added Minimal option inside <details> with an explicit anchor; updated cache-lag blockquote; flipped uv add inside <details>
packages/memtomem/README.md (PyPI) Primary install → [all]; added one-line tradeoff paragraph; updated cache-lag blockquote
docs/guides/getting-started.md Option A primary → [all] + inline BM25-only alternative + extras opt-in pointer; Option B uv add flipped; updated cache-lag blockquote; "No such command" Troubleshooting entry also flipped
docs/guides/integrations/claude-code.md Hooks-automation install hint → [all]
docs/guides/reference.md CLI-reference footer install line → [all]

Intentional residual uv tool install memtomem bare lines (4 total) are all inside the Minimal install alternatives, clearly labeled as such.

Scope — intentionally out

  • Wizard-time validation of extras (e.g. mm init -y --provider onnx refusing when fastembed is missing) — separate gap, tracked adjacent to mm init: auto-install consistency for python extras + mismatch banner (Phase 2 of #360) #362.
  • [all] packaging composition — no pyproject.toml changes in this PR. If we later split into a lighter "recommended" extra set, the docs can re-point.
  • Absolute URLs vs relative links — the PyPI README already mixes both (see line 33); kept the same style.

Test plan

  • Verified on a fresh uv tool install 'memtomem[all]' in a clean env: mm --version prints 0.1.24, fastembed, kiwipiepy, fastapi, ollama, openai, tree_sitter all import.
  • Inline alternative uv tool install memtomem verified in a prior run (48 MB, BM25-only default config).
  • Anchor #minimal-install added via explicit <a id> tag (safer than heading-derived slug).
  • Cross-reference #option-c-from-source-for-development-or-testing matches GitHub's default anchor slug for the existing ### Option C: From source (for development or testing) heading.
  • No lint/test failures expected — docs only.
  • Reviewer: render each page and confirm the Minimal/alternative blocks read well; verify [all] shows up unquoted-unbracket-exploded in rendered code blocks.

🤖 Generated with Claude Code

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]>
@memtomem memtomem merged commit 2c153b8 into main Apr 22, 2026
7 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 22, 2026
@memtomem memtomem deleted the docs/install-primary-all-extras branch April 27, 2026 14:56
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs/install: primary install command omits [all] extras — decide include vs justify

2 participants