Как перестать искать и начать находить свои заметки с помощью QMD

18 Feb, 2026

Знакомая ситуация: вы точно помните, что записывали решение этой странной ошибки в Docker или тезисы с того важного созвона три месяца назад. Но где? В Obsidian? В папке с проектом? В хаосе Markdown-файлов в ~/Documents? Стандартный grep не понимает контекста, а встроенный поиск в редакторах часто пасует перед сложными запросами.

Сегодня мы разберем QMD (Query Markup Documents) — инструмент, который превращает ваши локальные текстовые файлы в полноценную базу знаний с умным поиском. Это не просто «еще один поисковик», а локальный движок, использующий современные SOTA-подходы (State-of-the-Art) прямо на вашем компьютере.

Что такое QMD и почему это не просто grep

QMD — это CLI-инструмент на Node.js/Bun, который индексирует ваши Markdown-заметки, документацию и транскрипты встреч. Его главная фишка в том, что он объединяет классический полнотекстовый поиск с векторным поиском и переранжированием с помощью LLM (Large Language Models).

Представьте, что у вас есть личный ассистент, который прочитал все ваши файлы и теперь готов ответить на вопрос: «Как мы планировали деплоить API в прошлом квартале?», даже если в тексте нет точного совпадения этих слов.

QMD Architecture

Три кита умного поиска

Разработчик проекта, Tobi, подошел к вопросу поиска серьезно. QMD использует гибридную схему, которая обычно встречается в дорогих корпоративных системах, но здесь она работает локально:

  1. BM25 (FTS5): Классика жанра. Быстрый поиск по ключевым словам. Если вы ищете конкретный термин вроде UUIDv7, BM25 найдет его мгновенно.
  2. Векторный поиск (Semantic Search): Использует модель embeddinggemma. Она переводит текст в математические векторы. Это позволяет находить документы по смыслу. Запрос «проблемы с авторизацией» найдет файл, где написано «ошибка при входе в систему».
  3. LLM Re-ranking: Это «секретный соус». После того как система нашла топ-30 подходящих документов, маленькая, но гордая модель qwen3-reranker перечитывает их и оценивает, насколько они реально отвечают на ваш запрос.

Быстрый старт: от установки до первого инсайта

Установка предельно проста, если у вас есть Node.js или Bun:

npm install -g @tobilu/qmd
# или
bun install -g @tobilu/qmd

После установки нужно «скормить» инструменту ваши папки. Например:

qmd collection add ~/notes --name personal
qmd collection add ~/work/docs --name work

Интересная особенность — контексты. Вы можете добавить описание к коллекции, чтобы поиск работал точнее:

qmd context add qmd://work "Документация по микросервисам и API"

Теперь запускаем индексацию:

qmd embed

На этом этапе QMD скачает необходимые GGUF-модели (они весят около 2 ГБ в сумме) и локально создаст векторные представления ваших файлов. Все данные хранятся в SQLite в вашей домашней директории — никакой отправки данных в облако.

Как пользоваться поиском

В QMD есть три уровня «глубины» поиска:

  1. qmd search "термин" — обычный поиск по словам. Очень быстро.
  2. qmd vsearch "суть вопроса" — векторный поиск. Понимает синонимы.
  3. qmd query "сложный запрос" — тяжелая артиллерия. Включает расширение запроса через LLM, гибридный поиск и переранжирование.

Результаты выглядят очень наглядно: вы видите путь к файлу, заголовок, контекст и оценку релевантности в процентах.

Смарт-чанкинг: почему это важно

Обычно поисковики режут текст на куски по количеству символов. QMD делает умнее. Он анализирует структуру Markdown и старается не разрывать логические блоки.

Например, заголовки имеют высший приоритет для разрыва, а блоки кода защищены — система постарается не разрезать ваш конфиг или функцию на две части. Это критично для того, чтобы LLM при поиске видела цельную картину, а не обрывки фраз.

Интеграция с AI-агентами и MCP

Если вы используете Claude Desktop или другие инструменты, поддерживающие MCP (Model Context Protocol), QMD станет для них идеальным «внешним мозгом».

Вы можете подключить QMD как сервер, и ваш AI-ассистент сможет сам искать информацию в ваших локальных заметках, чтобы ответить на вопрос. В конфиге Claude Desktop это выглядит так:

{
  "mcpServers": {
    "qmd": {
      "command": "qmd",
      "args": ["mcp"]
    }
  }
}

Для тех, кто не хочет каждый раз ждать загрузки моделей в память, предусмотрен режим демона: qmd mcp --http --daemon. Модели будут висеть в VRAM, обеспечивая мгновенный отклик.

Практические кейсы

  • Для разработчиков: Индексируйте папку с документацией проекта или RFC. Когда нужно вспомнить, почему было принято то или иное архитектурное решение, qmd query найдет нужный абзац быстрее, чем вы успеете открыть IDE.
  • Для менеджеров: Прогоните транскрипты встреч через QMD. Поиск по запросу «договоренности по бюджету» вытащит все релевантные куски из разных протоколов.
  • Для создания Second Brain: Если вы ведете Zettelkasten или просто кучу .md файлов, QMD свяжет их семантически без необходимости вручную проставлять тысячи тегов.

Итог: стоит ли пробовать?

QMD — это отличный пример того, как современные нейросетевые технологии можно упаковать в удобную локальную утилиту.

Плюсы:

  • Полная приватность (всё работает офлайн).
  • Высокое качество поиска благодаря переранжированию.
  • Поддержка MCP для интеграции с LLM-агентами.
  • Умная работа с Markdown-структурой.

Минусы:

  • Требует около 2 ГБ места под модели и немного оперативной памяти.
  • Первая индексация большой базы может занять время.

Если ваша база знаний растет быстрее, чем ваша память, QMD определенно заслуживает места в вашем терминале. Это тот редкий случай, когда «локальный ИИ» — это не хайповое словосочетание, а реально работающий инструмент для ежедневной продуктивности.