| name | qmd |
| description | Use for local hybrid search across markdown notes, documentation, and knowledge bases. Ideal for finding related content, retrieving documents from indexed collections, or searching personal notes. |
| compatibility | Requires Bun >= 1.0.0. macOS needs SQLite via brew. Works on darwin and linux. PATH must include $HOME/.bun/bin. |
| homepage | https://github.com/tobi/qmd |
QMD - Quick Markdown Search
Local search engine for Markdown notes, docs, and knowledge bases. Index once, search fast.
When to use
Use this skill when the user wants to:
- search notes, docs, or a knowledge base
- find related markdown content
- retrieve documents from indexed collections
- search local markdown files for specific topics or keywords
Inputs required
- Collection name or path to markdown files
- Search query (keywords or semantic intent)
- Preferred search mode (keyword vs semantic vs hybrid)
Procedure
0) Verify installation
Check if qmd is installed:
which qmd || echo "qmd not installed"
If not installed:
brew install oven-sh/bun/bun
brew install sqlite
bun install -g https://github.com/tobi/qmd
1) Set up a collection (first time only)
qmd collection add /path/to/notes --name notes --mask "**/*.md"
qmd context add qmd://notes "Personal notes and documentation"
qmd embed
2) Choose the right search mode
Default to qmd search (BM25 keyword matching)
- Instant results
- Best for exact terms, filenames, specific phrases
Use qmd vsearch only when keyword search fails
- Semantic similarity via vectors
- Can take ~60 seconds on cold start (loads local LLM model)
- Better for conceptual queries
Avoid qmd query unless explicitly requested
- Hybrid search with LLM reranking
- Slowest option, may timeout
- Only when highest quality results are worth the wait
3) Execute the search
qmd search "your query"
qmd search "query" -c notes
qmd search "query" -n 10
qmd search "query" --json
qmd search "query" --all --min-score 0.3
qmd vsearch "query"
4) Retrieve full documents
qmd get "path/to/file.md"
qmd get "#docid"
qmd multi-get "journals/2025-05*.md"
qmd multi-get "doc1.md, doc2.md, #abc123" --json
Verification
qmd status shows index health and collection info
- Search returns relevant results with scores
- Document retrieval works for indexed files
Maintenance
Keep indexes fresh:
qmd update
qmd embed
Optional cron automation:
0 * * * * export PATH="$HOME/.bun/bin:$PATH" && qmd update
0 5 * * * export PATH="$HOME/.bun/bin:$PATH" && qmd embed
Failure modes / debugging
Escalation
Important distinction
qmd searches local files (notes/docs on disk that you index)
- Agent memory search searches agent memory (saved facts from prior interactions)
- Use both: memory for "what did we discuss?", qmd for "what's in my notes?"