一键导入
qmd
Search markdown knowledge bases, notes, and documentation using QMD. Use when users ask to search notes, find documents, or look up information.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Search markdown knowledge bases, notes, and documentation using QMD. Use when users ask to search notes, find documents, or look up information.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Single-source or single-batch ingest skill for zot vaults. Use when the user asks to save, 整理, 归档, absorb, or integrate conversations, terminal findings, project brainstorming, blogs, podcasts, course material, or life observations into a zot Obsidian vault. Capture raw material under `kb/raw`, create the minimum durable notes under `kb/wiki`, update `kb/meta/log.md` and `kb/meta/index.md`, refresh QMD indexing when new files are added, and leave active-output prompts in `kb/human/active-output`. Not for review passes, broad restructures, or feedback triage.
Periodic review skill for zot vaults. Use when the user asks for weekly review, vault maintenance, linting, retrospective, meta-learning analysis, or to turn accumulated notes into clearer understanding and output drills. Include QMD refresh and search checks, and use the smoke test when local workflow wiring needs verification. Not for first-time ingest of new sources or large cross-operation wiki rewrites.
Search-only skill for zot vaults. Use when you need to locate the right notes quickly before reading or answering. Prefer the vault-local `scripts/kb-search`; it uses the vault's QMD collection when available and falls back to ripgrep when QMD is not installed or fails. Not for ingest, review, large restructuring, or feedback resolution.
Orchestrate multi-step zot vault maintenance as a compiled wiki. Use when a task spans two or more operations across `kb/raw`, `kb/wiki`, and `kb/meta`: promoting sources into durable notes, restructuring maps and concept notes, answering grounded questions from the vault, running lint passes, or resolving feedback notes.
| name | qmd |
| description | Search markdown knowledge bases, notes, and documentation using QMD. Use when users ask to search notes, find documents, or look up information. |
| license | MIT |
| compatibility | Requires qmd CLI or MCP server. Install via `npm install -g @tobilu/qmd`. |
| metadata | {"author":"tobi","version":"2.0.0"} |
| allowed-tools | Bash(qmd:*), mcp__qmd__* |
Local search engine for markdown content.
!qmd status 2>/dev/null || echo "Not installed: npm install -g @tobilu/qmd"
query{
"searches": [
{ "type": "lex", "query": "CAP theorem consistency" },
{ "type": "vec", "query": "tradeoff between consistency and availability" }
],
"collections": ["docs"],
"limit": 10
}
| Type | Method | Input |
|---|---|---|
lex | BM25 | Keywords - exact terms, names, code |
vec | Vector | Question - natural language |
hyde | Vector | Answer - hypothetical result (50-100 words) |
lex (keyword)
"connection pool" (quoted)performance -sports (minus prefix)handleError asyncvec (semantic)
"how does the rate limiter handle burst traffic""in the payment service, how are refunds processed"hyde (hypothetical document)
expand (auto-expand)
expand: question on its own lineexpand: with other typed lines - it's either a standalone expand query or a full query documentWhen a query term is ambiguous, add intent to steer results:
{
"searches": [
{ "type": "lex", "query": "performance" }
],
"intent": "web page load times and Core Web Vitals"
}
Intent affects expansion, reranking, chunk selection, and snippet extraction. It does not search on its own - it's a steering signal that disambiguates queries like "performance" (web-perf vs team health vs fitness).
| Goal | Approach |
|---|---|
| Know exact terms | lex only |
| Don't know vocabulary | Use a single-line query (implicit expand:) or vec |
| Best recall | lex + vec |
| Complex topic | lex + vec + hyde |
| Ambiguous query | Add intent to any combination above |
First query gets 2x weight in fusion - put your best guess first.
| Syntax | Meaning | Example |
|---|---|---|
term | Prefix match | perf matches "performance" |
"phrase" | Exact phrase | "rate limiter" |
-term | Exclude | performance -sports |
Note: -term only works in lex queries, not vec/hyde.
{ "collections": ["docs"] } // Single
{ "collections": ["docs", "notes"] } // Multiple (OR)
Omit to search all collections.
| Tool | Use |
|---|---|
get | Retrieve doc by path or #docid |
multi_get | Retrieve multiple by glob/list |
status | Collections and health |
qmd query "question" # Auto-expand + rerank
qmd query $'lex: X\nvec: Y' # Structured
qmd query $'expand: question' # Explicit expand
qmd query --json --explain "q" # Show score traces (RRF + rerank blend)
qmd search "keywords" # BM25 only (no LLM)
qmd get "#abc123" # By docid
qmd multi-get "journals/2026-*.md" -l 40 # Batch pull snippets by glob
qmd multi-get notes/foo.md,notes/bar.md # Comma-separated list, preserves order
curl -X POST http://localhost:8181/query \
-H "Content-Type: application/json" \
-d '{"searches": [{"type": "lex", "query": "test"}]}'
npm install -g @tobilu/qmd
qmd collection add ~/path/to/markdown --name myknowledge
qmd embed