qmd

Search local markdown notes and documents using hybrid BM25, vector, and LLM reranking retrieval.

14|5|Updated Apr 9, 2026
One-click install
npx skills add https://github.com/MLT-OSS/hermes-agent-go --skill qmd-mlt-oss
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: qmd
Source: https://github.com/MLT-OSS/hermes-agent-go/tree/main/optional-skills/research/qmd
Command: npx skills add https://github.com/MLT-OSS/hermes-agent-go --skill qmd-mlt-oss

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @tobilu/qmd.

What problem does it solve? Finding information across large personal collections of markdown notes, meeting transcripts, and documentation is slow with plain grep and keyword search misses conceptual matches. This Skill sets up and operates qmd, a fully local search engine that combines keyword matching, semantic vector search, and LLM reranking without any cloud dependencies. ## Core Features & Use Cases - Three Search Modes: BM25 keyword search (~0.2s, no models), semantic vector search, and hybrid search with query expansion and LLM reranking for best quality. - Collection Management: Add directories as named collections, attach context descriptions to improve retrieval, and generate embeddings with qmd embed. - MCP Integration: Expose qmd as MCP tools (mcp_qmd_search, mcp_qmd_deep_search, etc.) to Hermes Agent via stdio or a persistent HTTP daemon that keeps models warm. - Use Case: A user asks "what decisions were made about the database migration" across months of meeting transcripts; the hybrid query mode retrieves and reranks the relevant chunks locally. ## Quick Start Ask the agent to search your notes with qmd, for example: "Use qmd to find notes about the API redesign decisions in my knowledge base."

Frequently Asked Questions about qmd

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I search my markdown notes locally with semantic search?

Install qmd via npm, add your notes directory with `qmd collection add`, run `qmd embed` to generate vector embeddings, then use `qmd vsearch` for semantic queries or `qmd query` for hybrid search with reranking. Everything runs locally with no cloud services.

What is the difference between qmd search, vsearch, and query?

`qmd search` is BM25 keyword search that runs in ~0.2s with no models loaded. `qmd vsearch` is semantic vector search using one embedding model. `qmd query` is hybrid search combining query expansion, parallel BM25 and vector retrieval, and LLM reranking for the best quality.

Does qmd work offline without cloud services?

Yes, qmd runs entirely on-device. It auto-downloads three local GGUF models (~2GB total) for embeddings, reranking, and query expansion on first run, and stores its index in a local SQLite database at ~/.cache/qmd/index.sqlite.

How do I integrate qmd with an AI agent via MCP?

Run `qmd mcp` for stdio mode or `qmd mcp --http --daemon` for a persistent HTTP server, then add the server to your agent's MCP configuration. This registers tools like mcp_qmd_search, mcp_qmd_deep_search, and mcp_qmd_get automatically.

Why is the first qmd query slow and how do I fix it?

Cold start takes ~19s because the GGUF models must load into memory. Use the HTTP daemon mode (`qmd mcp --http --daemon`) to keep models warm, or use `qmd search` for BM25-only queries that need no models.

What are the system requirements for running qmd?

qmd requires Node.js 22 or later and is supported on macOS and Linux. On macOS you must also install SQLite via Homebrew because the system SQLite lacks extension loading support.