- Moteur de recherche CLI léger développé pour rechercher localement divers documents basés sur Markdown, comme des notes personnelles, de la documentation technique ou des comptes rendus de réunion
- Pipeline de recherche hybride combinant recherche plein texte BM25, recherche sémantique vectorielle et reclassement (re-ranking) par LLM
- Toutes les opérations sont effectuées en local, ce qui permet d’offrir une qualité de recherche de niveau IA sans fuite de données personnelles
- Prend en charge 3 modes de recherche
search : recherche par mots-clés basée sur BM25
vsearch : recherche sémantique basée sur les embeddings
query : mode de meilleure qualité combinant les deux approches avec un reclassement par LLM
- Serveur MCP (Model Context Protocol) intégré, permettant une intégration directe avec des workflows basés sur des LLM comme Claude
- Tous les modèles sont exécutés on-device via node-llama-cpp
- Télécharge et met automatiquement en cache des modèles au format GGUF tels que embeddinggemma-300M, qwen3-reranker-0.6B et Qwen3-1.7B
- Méthodes utilisées pour améliorer la qualité de recherche
- La requête de recherche de l’utilisateur est enrichie via une expansion de requête (Query Expansion) avec le modèle Qwen3-1.7B
- Recherche parallèle via SQLite FTS5 et sqlite-vec
- Fusion des résultats avec Reciprocal Rank Fusion (RRF)
- Réévaluation de la pertinence des documents avec Qwen3-Reranker
- Ajustement des poids selon le rang pour maintenir l’équilibre entre précision et similarité sémantique
- Écrit en TypeScript et basé sur le runtime Bun. L’index est stocké dans une base de données SQLite
- Licence MIT
- Open source de Tobi Lütke, fondateur et CEO de Shopify
Exemple d’utilisation
# Install globally
bun install -g https://github.com/tobi/qmd
# Create collections for your notes, docs, and meeting transcripts
qmd collection add ~/notes --name notes
qmd collection add ~/Documents/meetings --name meetings
qmd collection add ~/work/docs --name docs
# Add context to help with search results
qmd context add qmd://notes "Personal notes and ideas"
qmd context add qmd://meetings "Meeting transcripts and notes"
qmd context add qmd://docs "Work documentation"
# Generate embeddings for semantic search
qmd embed
# Search across everything
qmd search "project timeline" # Fast keyword search
qmd vsearch "how to deploy" # Semantic search
qmd query "quarterly planning process" # Hybrid + reranking (best quality)
# Get a specific document
qmd get "meetings/2024-01-15.md"
# Get a document by docid (shown in search results)
qmd get "#abc123"
# Get multiple documents by glob pattern
qmd multi-get "journals/2025-05*.md"
# Search within a specific collection
qmd search "API" -c notes
# Export all matches for an agent
qmd search "API" --all --files --min-score 0.3
3 commentaires
J’enregistre diverses informations dans Obsidian et je les consulte sur Windows, Mac et iPhone, et pour les infos que j’organise en lien avec GeekNews, je les consigne dans un dépôt Git. Avec ça, je peux désormais faire des recherches et les consulter facilement depuis un seul endroit.
Comment gérez-vous la synchronisation entre Windows + Mac + iPhone ?
De mon côté, j’utilise Git entre Windows et Mac, et iCloud entre Mac et iPhone, mais il y a pas mal de points frustrants. (Par exemple, même si je fais un commit avec Git depuis Windows, l’envoi automatique vers iCloud ne se fait pas.)
Je vous pose la question par curiosité !
J’utilise la synchronisation d’Obsidian via iCloud sur Windows, Mac et iPhone.
Sans utiliser Sync, qui est payant, ça me semble être actuellement la meilleure méthode.