qmd

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

Updated Jun 5, 2026
One-click install
npx skills add https://github.com/xu1713/openhorse --skill qmd-xu1713
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: qmd
Source: https://github.com/xu1713/openhorse/tree/main/openhorse/openhorse/optional-skills/research/qmd
Command: npx skills add https://github.com/xu1713/openhorse --skill qmd-xu1713

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @tobilu/qmd.

What problem does it solve? Finding information across large collections of personal notes, meeting transcripts, and documentation is slow with plain grep and inaccurate with keyword-only search. This Skill sets up and operates qmd, a fully local search engine that indexes markdown and text files and retrieves answers using keyword matching, semantic vectors, and LLM reranking without any cloud dependency. ## Core Features & Use Cases - Three Search Modes: BM25 keyword search for exact terms, vector search for conceptual queries, and hybrid query mode combining query expansion, RRF fusion, and LLM reranking for best quality. - Collection Management: Add directories as named collections, attach context descriptions to improve retrieval accuracy, and generate embeddings with a single command. - MCP Integration: Expose search tools directly to the agent via stdio or an HTTP daemon that keeps models warm for fast repeated queries. - Use Case: A user with years of markdown meeting notes asks "what decisions were made about the database migration" and gets reranked, contextually relevant excerpts in seconds, all processed on-device. ## 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 vectors, then use qmd vsearch for semantic queries or qmd query for hybrid search with LLM reranking. Everything runs locally with no cloud services.

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

qmd search is BM25 keyword-only search that runs in about 0.2 seconds with no models loaded. qmd vsearch uses vector embeddings for conceptual queries, and qmd query combines query expansion, BM25, vector search, and LLM reranking for the highest quality results.

Does qmd work without an internet connection?

Yes, qmd runs entirely on-device after the initial setup. The first run downloads about 2GB of local GGUF models for embeddings, reranking, and query expansion, after which all indexing and search happen locally with no cloud dependencies.

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 on localhost:8181, then add the server to your agent's MCP configuration. This exposes tools like mcp_qmd_search, mcp_qmd_vsearch, and mcp_qmd_deep_search.

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

Cold start takes about 19 seconds because the three GGUF models must load into memory. Run qmd mcp --http --daemon to keep models warm for 2-3 second queries, or use qmd search for instant BM25-only lookups that need no models.

What are the system requirements for running qmd?

qmd requires Node.js version 22 or higher and runs on macOS and Linux. On macOS you also need Homebrew's SQLite because the system SQLite lacks extension loading support.