Flex: поиск по сессиям Claude Code, которого не существовало
Разработчик создал flex-claudecode — инструмент для полнотекстового и векторного поиска по всей истории сессий Claude Code через MCP и SQLite.
Проблема, которую все игнорировали
Если вы активно используете Claude Code, то наверняка сталкивались с этим сценарием: вы точно помните, что три недели назад разбирали с Claude какую-то хитрую проблему с Redis — но найти ту сессию невозможно. Встроенный поиск Claude Code ищет только по заголовкам. Листать сотни сессий вручную — не вариант.
Встроенная команда /resume в Claude Code ищет только по заголовкам сессий — это нормально, пока не нужно найти что-то из разговора трёхнедельной давности. Разработчики, работающие с Claude Code ежедневно, наталкивались на эту стену снова и снова.
«Где я дебажил тот Kubernetes OOM? В какой сессии был тот SQL-запрос для когортного анализа?» — именно так звучат запросы, которые стандартный поиск просто не может обработать.
Именно эту проблему и решил Дамиан Делмас, создав flex-claudecode — инструмент, который превращает всю историю ваших сессий Claude Code в полноценную, мгновенно доступную базу знаний.
Почему стандартные инструменты не справлялись
Claude Code хранит все разговоры локально в виде JSONL-файлов в директории ~/.claude/projects/. Каждый проект получает свою папку, каждая сессия — свой файл. Данные физически присутствуют на машине. Но без нормального инструмента они мертвы.
Попытки решить проблему предпринимались разные:
- Простые grep-скрипты — ищут по тексту, но не понимают контекст и структуру диалога.
cc-conversation-search— инструмент для поиска и возобновления прошлых сессий Claude Code с умной гибридной индексацией и JIT-индексированием. Неплохо, но не видит полную картину.claude-history— результаты ранжируются по релевантности с учётом полей: совпадения в заголовке, имени проекта и резюме весят больше, чем совпадения в теле. Среди одинаково релевантных результатов первыми идут свежие разговоры. Полезно, но нет глубокой семантики.search-sessionsна Hacker News — без базы данных, без шага индексации, без зависимостей; поддерживает два режима: index search (~18 мс) для нахождения нужной сессии и deep search (~280 мс с ripgrep). Быстро, но поверхностно.
Ни один из этих инструментов не давал того, что реально нужно разработчику: семантического понимания всей истории работы с учётом файлов, команд и связей между проектами.
Как работает Flex: архитектура изнутри
Весь массив сессий Claude Code компилируется в единый SQLite-файл, доступный для запросов. Это ключевое архитектурное решение: вместо того чтобы искать по разрозненным JSONL-файлам в реальном времени, Flex создаёт единый структурированный источник истины.
graph TD
A[JSONL-файлы ~/.claude/projects/] --> B[Компилятор Flex]
B --> C[SQLite: claude_code.db]
C --> D[MCP-сервер]
D --> E[Claude Code Agent]
E --> F{Запрос}
F --> G[Векторный поиск]
F --> H[SQL-запрос]
F --> I[Граф связей]
G --> J[Результат]
H --> J
I --> J
Что именно индексирует Flex
Агент подключается через MCP, обнаруживает схему в runtime и пишет SQL против истории — полностью доступная поверхность включает вызовы инструментов, правки файлов, делегирования агентов и атрибуцию проектов.
Конкретно Flex отслеживает четыре слоя данных:
- Диалог целиком — каждый промпт, каждый ответ — полный разговор, а не только итог.
- Файловые операции — каждое обращение к файлу логируется: Edit, Write, Bash — с привязкой к сессии, которая его выполнила.
- Агентские делегирования — каждая делегация отслеживается: какой агент что запускал, в каком порядке и с каким результатом.
- Постоянные ID файлов — каждый файл получает постоянный ID, который сохраняется при переименовании, перемещении и миграции репозитория.
Ранжирование по важности
Одна из самых интересных особенностей Flex — умное взвешивание результатов поиска:
Claude знает, какие сессии и файлы важнее всего: какие сессии связывают больше всего идей, какие файлы трогают чаще всего — всё это предвычислено, чтобы каждый запрос уже был взвешен по важности.
Философия: не факты, а весь контекст
Другие инструменты извлекают факты. Flex сохраняет всё — и позволяет Claude решать, что релевантно в момент запроса. Это принципиальное отличие от подходов, которые пытаются заранее «сжать» историю в резюме или выжимки.
Установка и первые шаги
Install — буквально одна команда:
curl -sSL https://getflex.dev/install.sh | bash -s -- claude-code
Инструмент работает ретроспективно — каждая прошлая сессия становится доступной для поиска сразу после установки. Не нужно ждать накопления новых данных.
После компиляции вся история живёт в одном файле:
# Посмотреть базу знаний
$ ls ~/.flex/cells/
claude_code.db
# Узнать количество сессий
$ sqlite3 claude_code.db "SELECT COUNT(*) FROM sessions"
4547
# Сделать бэкап
$ rsync -av ~/.flex/cells/ backup:~/
Поиск по проектам
Сессии автоматически группируются по проектам. Можно искать по одному репозиторию или по всем сразу.
Пример запроса через Claude Code после установки Flex:
# В чате с Claude Code:
"Почему мы убрали слой кэша Redis?"
"Какой SQL-запрос мы использовали для когортного анализа в проекте analytics?"
"Покажи все сессии, где редактировался файл auth/middleware.py"
Claude автоматически обратится к MCP-серверу Flex, сформирует SQL-запрос против вашей истории и вернёт точный ответ с привязкой к конкретной сессии.
Сравнение инструментов для поиска по сессиям Claude Code
| Инструмент | Тип поиска | Граф связей | MCP | Облако | Ретроспектива |
|---|---|---|---|---|---|
| flex-claudecode | Векторный + гибридный SQL | ✅ Авто | ✅ | ❌ (локально) | ✅ |
| claude-history | Полнотекстовый, fuzzy | ❌ | ❌ | ❌ | ✅ |
| cc-conversation-search | Гибридный, JIT | ❌ | ❌ | ❌ | ✅ (7 дней) |
| search-sessions | Индекс + ripgrep | ❌ | ❌ | ❌ | ✅ |
| claude-mem | Семантические резюме | ❌ | ✅ | ❌ | ❌ |
Почему именно такой подход выигрывает
Граф знаний вместо поиска по строкам
Графы знаний строятся автоматически из данных. Это означает, что Flex понимает не только «в каком файле было упомянуто слово X», но и как разные сессии, файлы и решения связаны между собой.
Например, если вы рефакторили аутентификацию в трёх разных сессиях, Flex видит эту связь и при запросе «как мы делали auth» покажет все три сессии в контексте их взаимозависимости.
Нет утечки данных
Одна команда, никакого облака, никакого API-ключа. Для многих разработчиков, работающих с конфиденциальными проектами, это не просто удобство, а требование безопасности.
Agent-first дизайн
Ключевое отличие от утилит командной строки — Flex спроектирован как инфраструктура для агента, а не для человека:
- Агент сам формирует SQL-запросы, опираясь на схему
- Результаты уже взвешены по важности
- Контекст подаётся именно в том объёме, который нужен для ответа
Согласно данным Cognition, агенты программирования тратят 60% времени на поиск кода. Claude Code сжигает контекстные токены на каждый поиск. Flex решает эту проблему применительно к истории сессий: вместо того чтобы Claude «вспоминал» из контекста, он получает точный ответ из базы.
Экосистема инструментов вокруг Claude Code: большая картина
Появление Flex — симптом зрелости экосистемы Claude Code. Рекомендуется называть сессии с помощью /rename и относиться к ним как к веткам: каждый поток работы получает свой постоянный контекст. Claude Code сохраняет разговоры локально, поэтому при задаче на несколько сессий не нужно заново объяснять контекст.
Но даже следуя этим рекомендациям, накопленная история становится труднодоступной. Инструменты вроде Flex закрывают именно этот разрыв между «данные есть» и «данные используются».
- Называйте сессии осмысленно через
/renameсразу при старте - Фиксируйте ключевые решения в CLAUDE.md — это помогает и Flex, и будущему вам
- Используйте Flex для поиска, а не для просмотра — формулируйте конкретные запросы
- Регулярно делайте бэкап
claude_code.db— это ваша база знаний по проектам
Заключение
flex-claudecode — это не просто утилита поиска. Это инструмент, который превращает хаос накопленных сессий в структурированную базу знаний, доступную прямо из Claude Code через MCP.
Автор проекта точно определил узкое место: когда работаешь с Claude Code каждый день, история сессий становится бесценным активом — но только если к ней есть нормальный доступ. Все сессии Claude Code компилируются в единый SQLite-файл. Поиск, граф, родословная — всё готово, когда Claude спрашивает. Одна команда, никакого облака, никакого API-ключа.
Для разработчиков, которые используют Claude Code интенсивно — это уже не опциональный инструмент, а часть рабочего окружения. Попробуйте установить Flex и через неделю вы поймёте, как вообще работали без него.
Установка:
curl -sSL https://getflex.dev/install.sh | bash -s -- claude-code
Репозиторий: github.com/damiandelmas/flex-claudecode
Сайт: getflex.dev