Lightweight SOTA local search engine for AI agents in Rust — BM25 full-text search, vector semantic search, hybrid search with query expansion and reranking, plus an MCP server for AI tool integration.
| Crate | Description | |
|---|---|---|
qmd |
Core library — indexing, BM25, vector search, hybrid search, embeddings | |
qmd-cli |
CLI tool — collection management, search, RAG question answering | |
qmd-mcp |
MCP server — expose qmd as an AI agent tool |
Shell (macOS / Linux):
curl -fsSL https://sh.qntx.fun/qmd | shPowerShell (Windows):
irm https://sh.qntx.fun/qmd/ps | iexOr via Cargo:
cargo install qmd-cli# Add a collection of markdown files
qmd collection add ./docs --name my-docs --mask "**/*.md"
# List collections
qmd ls
# BM25 full-text search
qmd search "query expansion" -n 5
# Vector semantic search (requires embedding model)
qmd models pull # download default models
qmd embed # generate embeddings
qmd vsearch "how does reranking work" -n 5
# Hybrid search (BM25 + vector + query expansion + reranking)
qmd qsearch "local search engine for AI"
# Ask a question (RAG)
qmd ask "What search algorithms does qmd support?"
# Get a specific document
qmd get qmd://my-docs/README.md
# Re-index all collections
qmd updateLicensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project shall be dual-licensed as above, without any additional terms or conditions.