QMD - Local Markdown Search
description: Search and retrieve markdown documents from local knowledge bases using qmd. Supports BM25 keyword search, vector semantic search, and hybrid search with LLM re-ranking. Use for querying
by davidsteelerose · published 2026-03-22
$ claw add gh:davidsteelerose/davidsteelerose-k2ljl-qmd---
name: qmd
description: Search and retrieve markdown documents from local knowledge bases using qmd. Supports BM25 keyword search, vector semantic search, and hybrid search with LLM re-ranking. Use for querying indexed notes, documentation, meeting transcripts, and any markdown-based knowledge. Requires qmd CLI installed (bun install -g https://github.com/tobi/qmd).
---
# QMD - Local Markdown Search
Search and retrieve documents from locally indexed markdown knowledge bases.
Installation
bun install -g https://github.com/tobi/qmdSetup
# Add a collection
qmd collection add ~/notes --name notes --mask "**/*.md"
# Generate embeddings (required for vsearch/query)
qmd embedUsage Rules
**Always use `--json` flag** for structured output when invoking qmd commands.
Search Commands
search (BM25 keyword search - fast)
qmd search "authentication flow" --json
qmd search "error handling" --json -n 10
qmd search "config" --json -c notesvsearch (vector semantic search)
qmd vsearch "how does login work" --json
qmd vsearch "authentication best practices" --json -n 20query (hybrid with LLM re-ranking - best quality)
qmd query "implementing user auth" --json
qmd query "deployment process" --json --min-score 0.5Search Options
| Option | Description |
|--------|-------------|
| `-n NUM` | Number of results (default: 5, or 20 with --json) |
| `-c, --collection NAME` | Restrict to specific collection |
| `--min-score NUM` | Minimum score threshold |
| `--full` | Return complete document content in results |
| `--all` | Return all matches |
Retrieval Commands
get (single document)
qmd get docs/guide.md --json
qmd get "#a1b2c3" --json
qmd get notes/meeting.md:50 -l 100 --jsonmulti-get (multiple documents)
qmd multi-get "docs/*.md" --json
qmd multi-get "api.md, guide.md, #abc123" --json
qmd multi-get "notes/**/*.md" --json --max-bytes 20480Maintenance Commands
qmd update # Re-index changed files
qmd status # Check index health
qmd collection list # List all collectionsSearch Mode Selection
| Mode | Speed | Quality | Best For |
|------|-------|---------|----------|
| search | Fast | Good | Exact keywords, known terms |
| vsearch | Medium | Better | Conceptual queries, synonyms |
| query | Slow | Best | Complex questions, uncertain terms |
**Performance note:** `vsearch` and `query` have ~1 minute cold start latency for vector initialization. Prefer `search` for interactive use.
MCP Server
qmd can run as an MCP server for direct integration:
qmd mcpExposes tools: `qmd_search`, `qmd_vsearch`, `qmd_query`, `qmd_get`, `qmd_multi_get`, `qmd_status`
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...