QMD
Aktualisiert 2026-04-06
On-Device-Suchmaschine für alles, was man sich merken muss. Indexiert Markdown-Notizen, Meeting-Transkripte, Dokumentationen und Wissensdatenbanken. Suche per Keyword oder natürlicher Sprache. Von Tobi Lütke entwickelt.
Dieses Wiki läuft selbst auf QMD — der Agent nutzt es täglich via MCP.
Wie es funktioniert
QMD kombiniert drei Suchmethoden zu einem hybriden Ergebnis:
- BM25 (Keyword-Search, schnell, exakte Treffer)
- Vector Search (semantische Ähnlichkeit via Embeddings)
- LLM Re-Ranking (finale Sortierung nach Relevanz)
Alles läuft lokal via node-llama-cpp mit GGUF-Modellen — kein Cloud-Aufruf.
Version 2.1 (April 2026)
- Code-aware Splitting — AST-basiertes Chunking für Code-Dateien, verhindert dass Funktionen/Klassen mitten im Chunk abgeschnitten werden. Großer Gewinn für technisches RAG.
- Performance-Verbesserungen
- Offizielle Benchmarks
CLI-Kommandos
qmd search "project timeline" # BM25 Keyword-Suche (schnell)
qmd vsearch "how to deploy" # Semantische Suche
qmd query "quarterly planning process" # Hybrid + Re-Ranking (beste Qualität)
qmd get "meetings/2024-01-15.md" # Dokument abrufen
qmd get "#abc123" # Per DocID
qmd multi-get "journals/2025-05*.md" # Batch via Glob
qmd embed # Embeddings generieren
qmd update # Index aktualisieren
MCP-Integration
QMD hat einen MCP-Server für direkte Agenten-Integration:
{
"mcpServers": {
"qmd": {
"command": "qmd",
"args": ["mcp"]
}
}
}
Exponierte Tools: query, get, multi_get, status
Für mehrere Clients: HTTP-Transport via qmd mcp --http (Port 8181), lädt Modelle einmalig in VRAM.
Kontext-System
Kernfeature: Kontext-Metadata pro Sammlung verbessert die Relevanz für LLMs.
qmd context add qmd://notes "Personal notes and ideas"
qmd context add qmd://docs "Work documentation"
Sammlungen
qmd collection add ~/notes --name notes
qmd collection add ~/Documents/meetings --name meetings
Installation
npm install -g @tobilu/qmd
# oder
bun install -g @tobilu/qmd
Reaktionen aus der Community
“Code-aware splitting alone makes this worth it” — @ymlynsky
“shipping benchmarks with the release instead of ‘its fast trust me’ energy” — @PromptSlinger
“Code-Aware Splitting is a massive win for technical RAG. Naive chunking usually breaks function context or class logic” — @yashns1