--- name: qmd description: Search markdown knowledge bases, notes, and documentation using the qmd CLI. Use when searching notes, finding documents, or looking up information in the knowledge base. license: MIT compatibility: Requires qmd CLI. Install via `npm install -g @tobilu/qmd`. metadata: author: tobi version: "2.0.0" allowed-tools: Bash(qmd:*) --- # QMD - Quick Markdown Search Local search engine for markdown content. Use via the `qmd` CLI (bash). ## Status !`qmd status 2>/dev/null || echo "Not installed: npm install -g @tobilu/qmd"` ## CLI Usage ```bash qmd query "question" # Auto-expand + rerank (recommended) qmd query $'lex: X\nvec: Y' # Structured query document qmd query $'expand: question' # Explicit expand qmd search "keywords" # BM25 only (no LLM) qmd get "path/to/file.md" # Retrieve a document by path qmd get "#abc123" # Retrieve by docid qmd get "path/to/file.md:100" -l 50 # Retrieve starting at line 100, 50 lines qmd multi-get "journals/2026-*.md" -l 40 # Batch fetch by glob qmd multi-get notes/foo.md,notes/bar.md # Comma-separated list ``` ## Query Types | Type | Method | Input | |------|--------|-------| | `lex` | BM25 | Keywords — exact terms, names, code | | `vec` | Vector | Question — natural language | | `hyde` | Vector | Answer — hypothetical result (50-100 words) | ## Writing Good Queries **lex (keyword)** - 2-5 terms, no filler words - Exact phrase: `"connection pool"` (quoted) - Exclude terms: `performance -sports` (minus prefix) - Code identifiers work: `handleError async` **vec (semantic)** - Full natural language question - Be specific: `"how does the rate limiter handle burst traffic"` **hyde (hypothetical document)** - Write 50-100 words of what the *answer* looks like - Use the vocabulary you expect in the result **expand (auto-expand)** - Single-line query (implicit) or `expand: question` - Lets a local LLM generate lex/vec/hyde variations - Do not mix with other typed lines ## Combining Types | Goal | Approach | |------|----------| | Know exact terms | `lex` only | | Don't know vocabulary | Single-line (implicit expand) or `vec` | | Best recall | `lex` + `vec` | | Complex topic | `lex` + `vec` + `hyde` | First query gets 2x weight — put your strongest signal first. ## Lex Syntax | Syntax | Meaning | Example | |--------|---------|---------| | `term` | Prefix match | `perf` matches "performance" | | `"phrase"` | Exact phrase | `"rate limiter"` | | `-term` | Exclude | `performance -sports` | ## Collection Filtering ```bash qmd query --collections docs "question" qmd query --collections docs,notes "question" ``` Omit to search all collections.