Repolode
tobi

tobi/qmd

A local, on-device CLI search engine for markdown notes, meeting transcripts and docs, combining BM25, vector search and LLM reranking.

Stars
30,493
Forks
1,916
Open issues
231
Last commit
5 days ago

What is it?

QMD (Query Markup Documents) is an on-device search engine for personal and team knowledge: markdown notes, meeting transcripts, documentation and knowledge bases. You organize sources into named collections, and search them by keyword or natural language from the command line, a TypeScript SDK, or an MCP server.

QMD combines BM25 full-text search, vector semantic search and LLM re-ranking. Queries can be expanded into typed sub-queries (lexical, vector and HyDE), results are fused with Reciprocal Rank Fusion, and the top candidates are reranked by a local model. All models run locally through node-llama-cpp using GGUF files that are downloaded on first use.

QMD exposes JSON, CSV, Markdown and file-list output, an HTTP endpoint, and metadata filtering driven by frontmatter. Users can attach descriptive context to collections and paths, which is returned with matching results to help agents choose documents. Node.js 22+ or Bun is required.

Key features

  • 01Hybrid search combining BM25 keyword matching, vector similarity and LLM reranking
  • 02Runs fully locally using GGUF models through node-llama-cpp
  • 03Named collections with path-based context that is returned with results
  • 04MCP server, HTTP endpoints and a TypeScript SDK for integration
  • 05JSON and file-list output designed for agent workflows
  • 06Metadata filtering using typed YAML frontmatter, and optional AST-aware chunking for code files

Use cases

  • Searching a personal Obsidian-style notes folder by meaning rather than exact words
  • Looking up past meeting transcripts and decisions across a team's shared folders
  • Giving an AI agent a local retrieval tool over project documentation
  • Indexing a codebase's docs and source files for semantic search

Quick start

  1. 1

    Install globally with npm

    npm install -g @tobilu/qmd
  2. 2

    Add a collection of your notes

    qmd collection add ~/notes --name notes
  3. 3

    Generate embeddings for semantic search

    qmd embed
  4. 4

    Run a hybrid search with reranking

    qmd query "quarterly planning process"

Things to know

  • Semantic search and reranking rely on local GGUF models via node-llama-cpp, which need disk space and memory.
  • Setup requires adding collections, context and generating embeddings before search gives best results.

Topics

FAQ

What is qmd?
A local, on-device CLI search engine for markdown notes, meeting transcripts and docs, combining BM25, vector search and LLM reranking. QMD (Query Markup Documents) is an on-device search engine for personal and team knowledge: markdown notes, meeting transcripts, documentation and knowledge bases. You organize sources into named collections, and search them by keyword or natural language from the command line, a TypeScript SDK, or an MCP server.
Is qmd free to use? What license does it have?
qmd is open source under the MIT license. Check the license terms before using it in commercial products.
Is qmd still maintained?
Actively maintained. The last commit to qmd was on Oct 15, 2026.
What can I use qmd for?
Searching a personal Obsidian-style notes folder by meaning rather than exact words Looking up past meeting transcripts and decisions across a team's shared folders Giving an AI agent a local retrieval tool over project documentation Indexing a codebase's docs and source files for semantic search
How do I install qmd?
Install globally with npm: npm install -g @tobilu/qmd Add a collection of your notes: qmd collection add ~/notes --name notes Generate embeddings for semantic search: qmd embed Run a hybrid search with reranking: qmd query "quarterly planning process"
Where can I get qmd?
The source code and installation instructions are on GitHub: https://github.com/tobi/qmd

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects