TGViewer
Гриненко про ИИ, бизнес и образование Гриненко про ИИ, бизнес и образование @devspotting · 3.12K subscribers
Post #70 692
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 ищет естественные точки разрыва (заголовки, блоки кода), а не режет посреди предложения.
* Контексты — можно навесить описание на коллекцию, и агент будет понимать, что где лежит.

Вот бы такое же, только быстрое :)

@devspotting
  • 👍 12
  • ❤ 2
  • 🔥 1
More from @devspotting
  1. Sep 23, 2026В OpenCode в рамках OpenCode Zen на неделю появилась новая бесплатная мультимодальная стел…
  2. Sep 22, 2026Обсуждаем Jev в седьмом выпуске «ИИ — не новостей» с Сергеем @veged_and_code Бережным Кром…
  3. Sep 17, 2026#ГриненкоПро №25 с Анастасией Бианко, руководителем отдела подбора персонала в Циан https:…
  4. Sep 17, 2026Аркадий, а что мы ускорили? Помните Аркадия, которого мы просили убрать руки с клавиатуры?…
  5. Sep 16, 2026На OpenRouter очередная бесплатная стелс-модель — Union Alpha. UPD: лавочка закрылась, мод…
  6. Sep 15, 2026Шестой выпуск «ИИ — не новостей» уже на Ютубе (или на ваших любимых стримингах). На этот р…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →