skills/qmd/SKILL.md
Local semantic search engine for markdown knowledge bases using qmd (tobi/qmd). Indexes markdown files with BM25 keyword search, vector embeddings for semantic search, and hybrid reranked queries. Auto-indexes on file edits via Claude Code hooks and refreshes embeddings overnight via launchd. Use when searching project docs, knowledge bases, meeting notes, or any indexed markdown collection.
npx skillsauth add changeflowhq/skills qmdInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Search indexed markdown collections using keyword, semantic, or hybrid search.
# Keyword search (fast, BM25)
qmd search "your query" --json -n 10
# Find related files
qmd search "topic" --files -n 20
# Semantic search (requires embeddings)
qmd vsearch "conceptual question" -n 10
# Hybrid search with reranking (best quality, slower)
qmd query "natural language question" --json -n 10
# Get full document content
qmd get "path/to/file.md" --full
| Mode | Command | Speed | Best For |
|------|---------|-------|----------|
| Keyword (BM25) | qmd search | Fast | Exact terms, known keywords |
| Semantic | qmd vsearch | Medium | Conceptual queries, synonyms |
| Hybrid | qmd query | Slow | Complex questions needing both |
| File list | qmd search --files | Fast | Finding all related files |
qmd search "relevant keywords" --json -n 10
Review results, then read specific files for full context.
qmd search "topic you changed" --files -n 20
Review all related files and update any that reference the changed topic.
qmd search "positioning voice tone" --json -n 10
qmd search "topic for content" --json -n 10
# Update text index (fast, ~1 sec)
qmd update
# Update embeddings (slow, ~3-4 min)
qmd embed
# Check index health
qmd status
# List collections
qmd collection list
If qmd is not installed or broken, run the doctor script:
bash ~/.claude/skills/qmd/scripts/doctor.sh
For full installation and automation setup, see setup/README.md.
For the complete command reference, see references/commands.md.
qmd search (BM25) is good enough for day-to-day usevsearch when keywords don't match concepts--files query to catch ripple effectsRead LEARNED.md before using this skill. It contains hard-won lessons about what works and what doesn't.
Update LEARNED.md when you discover:
search missed something vsearch found)Consolidation (keep LEARNED.md under 50 lines): Before adding a new entry, check the file length. If it's over 50 lines:
LEARNED-archive.md if worth preservingtools
Invisible Chrome automation for web scraping via CDP. Use when WebFetch fails or gets blocked (403, 429, Cloudflare, bot protection, JS-rendered pages). Launches your real Chrome install completely hidden, sends commands via Chrome DevTools Protocol. Sites see a normal browser with real extensions - no detectable automation. Learns which domains block and skips straight to stealth on future requests. Also handles form filling, clicking, screenshots, and scraping dynamic content.
development
Create, restructure, and validate Claude Code skills following best practices. Handles directory structure, YAML frontmatter, progressive disclosure, credential management, self-learning with consolidation, and script organization. Use when creating new skills, restructuring existing skills, reviewing skills for quality, or asking about skill structure, patterns, or best practices.
tools
Create short video animations from HTML/CSS/JS. Frame-by-frame capture at 30fps using Playwright + ffmpeg. Write CSS animations normally - the recorder pauses and steps them. Use for product demos, social clips, ad creative, feature announcements.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.