Skip to content

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

@memtomem

Description

@memtomem

Summary

The primary install command in every first-touch doc (README.md, PyPI page, getting-started) is uv tool install memtomem with no extras. [all] in pyproject.toml is onnx,ollama,openai,korean,code,web. A user installing with the primary command silently ships without dense embeddings, LLM providers, the Korean tokenizer, the code chunker, and the Web UI — all of which the same README advertises as features.

This is the docs-layer counterpart to #362 (wizard runtime auto-install for missing extras). The two are orthogonal: #362 catches the problem after the user runs mm init; this issue is about what the landing docs tell them to install in the first place.

Where (verified)

  • README.md:45uv tool install memtomem (no extras)
  • packages/memtomem/README.md:18 — same
  • docs/guides/getting-started.md:55 — same (Option A)
  • packages/memtomem/pyproject.toml:49all = ["memtomem[onnx,ollama,openai,korean,code,web]"]
  • docs/guides/getting-started.md:65 — Option B already offers uv add memtomem[all] as an alternative, implying [all] is the "full" target but the primary path doesn't take it.

Why the silent degrade matters (needs verification on a fresh install)

Each extra corresponds to a feature the README or docs mention. If an extra is missing, the failure mode is a runtime fallback, not an error:

  • onnx — dense embedder; without it, DenseEmbedder falls back to NoopEmbedder. Hybrid search becomes BM25-only, silently.
  • ollama / openai — LLM providers; query expansion / entity extraction / auto-tag fall back.
  • korean — Kiwi tokenizer; FTS falls back to unicode61, which substantially hurts Korean search quality.
  • code — code chunker; disabled.
  • web — FastAPI + uvicorn; mm web won't run.

The wizard in #362 will eventually catch this if the user runs mm init. But the docs page is what the user reads before touching the CLI, and it currently promises features the primary install doesn't deliver.

Note: the above failure modes are described from memory/code structure and should be double-checked by installing bare memtomem in a clean env and observing which features actually run.

Handled by this issue

Pure documentation. Pick one of the two directions and apply it consistently to the three files above:

Option 1 — Primary install becomes uv tool install "memtomem[all]". The lightweight BM25-only install (uv tool install memtomem) moves into a <details> "minimal install" section with a warning about which features are off.

  • Pros: docs match the advertised feature list out of the box.
  • Cons: heavier first download (fastembed model on first embed, fastapi, kiwipiepy, openai/ollama SDKs).

Option 2 — Primary install stays uv tool install memtomem. A highlighted bullet immediately under the install command lists what's OFF by default ("no dense search, no web UI, no Korean tokenizer, BM25 only") and points to [all] for the full experience.

  • Pros: cheap default install, easier on CI / uvx / first-try contexts.
  • Cons: users have to read the bullet and opt in; otherwise they experience BM25-only and may not connect it back to [all].

Either direction is acceptable; the decision belongs in this issue's discussion or in the resulting PR. What is not acceptable is leaving the mismatch silent.

Explicitly out of scope

Acceptance criteria

File estimate

3–6 files depending on direction (README, PyPI README, getting-started at minimum; mcp-clients and integrations if they also show install commands). No API changes.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions