CLI reference
dither search
Search across your entries.
dither search <query> [flags]Searches the qmd index built from your configured library. Prints one tab-separated line per hit: <displayPath>\t<score>\t<title>. Refuses with the standard pre-init error until dither init has run.
Arguments
| Name | Description |
|---|---|
query | Positional. The search string. Required. |
Flags
| Flag | Description |
|---|---|
-c, --collection <name> | Restrict the search to a single collection (one top-level folder under the library). |
-n, --limit <N> | Max results to return. Defaults to qmd's internal default. |
--rerank | Run the LLM reranker over the candidate set. Slower, higher quality. Only meaningful in hybrid mode. |
--mode <hybrid|lex> | hybrid (default) combines BM25 + vector + LLM query expansion. lex is pure BM25 — no models, no embeddings, instant. |
--mode only accepts the literal strings hybrid and lex; anything else is ignored and the default is used.
Examples
Search everything:
dither search "auth flow"
# notes/auth.md 0.842 Auth flow notes
# meetings/2025-q3.md 0.611 Q3 planningRestrict to one collection, top 5:
dither search "auth flow" -c notes -n 5Lexical-only (no model download required):
dither search "exact phrase" --mode lexWith reranking:
dither search "what did I write about auth" --rerankNotes
- Hybrid mode requires qmd's models. By default,
dither initpre-downloads them so the first query is fast; pass--no-downloadat init to skip and let them lazy-load instead. - If the library is empty,
searchreturns no results silently. - Make sure the index is current — run
dither index updateafter editing files outside the plugin runner.
See also: CLI overview.