15 марта 2026 г.
QMD — локальный поисковик по вашим заметкам от CEO Shopify

QMD — локальный поисковик по вашим заметкам от CEO Shopify
В комментариях к посту про экономию мыслетоплива Костя Мамаев спросил, как искать заметки, если они не структурированы. Так что я решил поделиться тулом, который написал Тоби Люке вместе с Claude Code (у Клода 138 коммитов, у Тоби — 252). Да-да, Тоби параллельно рулит компанией на $250B.
QMD — open source CLI-поисковик на TypeScript, который работает полностью локально и комбинирует сразу три подхода:
1. BM25 (классический полнотекстовый через SQLite FTS5) — когда помнишь ключевые слова.
2. Векторный поиск — когда помнишь суть, но не слова.
3. LLM-реранкинг (Qwen3-Reranker) — когда нужно, чтобы наверху оказалось именно то, что нужно.
Все три модели сами скачиваются при первом запуске и живут в ~/.cache/qmd/models/. Никаких API-ключей, никаких подписок.
Как это работает под капотом
Запрос проходит через пайплайн, в котором одна LLM генерирует вариации запроса (query expansion), затем каждый вариант ищется параллельно по BM25 и векторному индексу, результаты сливаются через Reciprocal Rank Fusion, а сверху проходит реранкер. И все это одной CLI-командой:
qmd query "как пропатчить KDE под FreeBSD"Ставится через npm (`npm i -g @tobilu/qmd`) и отлично ложится в связку с Logseq, Obsidian или любой другой системой на базе локальных markdown-файлов. Одна беда — работает ОЧЕНЬ медленно (пример из скрина к посту крутился больше 4 минут на моем ноуте).
Важно
Модели для эмбеддингов заточены под английский — для русского нужно переключиться на Qwen3-Embedding через переменную окружения и переиндексировать:
export QMD_EMBED_MODEL="hf:Qwen/Qwen3-Embedding-0.6B-GGUF/Qwen3-Embedding-0.6B-Q8_0.gguf"
qmd embed -fБонусы
* Есть MCP-сервер — можно подключить к Claude Code или любому другому MCP-клиенту и искать по заметкам прямо из агента.
* Умный чанкинг — при разбиении документов QMD ищет естественные точки разрыва (заголовки, блоки кода), а не режет посреди предложения.
* Контексты — можно навесить описание на коллекцию, и агент будет понимать, что где лежит.
Вот бы такое же, только быстрое :)