qmd

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

Updated May 3, 2026
One-click install
npx skills add https://github.com/80portisfound/vibe-learning --skill qmd-80portisfound
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: qmd
Source: https://github.com/80portisfound/vibe-learning/tree/main/packages/hermes/optional-skills/research/qmd
Command: npx skills add https://github.com/80portisfound/vibe-learning --skill qmd-80portisfound

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 combines keyword matching, semantic vector search, 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 with query expansion and reranking for best quality. - Collection Management: Add directories as named collections, attach context descriptions to improve retrieval, and generate embeddings with a single command. - MCP Integration: Expose search tools directly to the agent via stdio or a persistent HTTP daemon that keeps models warm for fast repeated queries. - Use Case: A user with hundreds of markdown meeting notes asks "what decisions were made about the database migration" and gets reranked, contextually relevant excerpts in seconds. ## Quick Start Install qmd with npm, add my notes folder as a collection, run embedding, then search my notes for everything about the API redesign decisions.

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-only search that runs in about 0.2 seconds with no models loaded. qmd vsearch uses the embedding model for semantic matching, and qmd query combines query expansion, parallel BM25 and vector retrieval, and LLM reranking for the highest quality results.

Does qmd work offline without cloud services?▼

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

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

The first query takes around 19 seconds because the models must load into memory. Run qmd mcp --http --daemon to keep models warm in a persistent daemon, or use qmd search for BM25-only queries that need no models.

Can qmd integrate with AI agents through MCP?▼

Yes, qmd exposes an MCP server via qmd mcp in stdio mode or qmd mcp --http --daemon for HTTP. Once configured in the agent's config file, tools like mcp_qmd_search, mcp_qmd_vsearch, and mcp_qmd_deep_search become available natively.

Why does qmd fail to load SQLite extensions on macOS?▼

The macOS system SQLite lacks extension loading support. Install SQLite via Homebrew with brew install sqlite and ensure it appears on PATH before the system version.