При работе с ИИ-агентами вроде Claude Code, Cursor или Codex на крупном проекте часто возникает проблема: агент выполняет поиск по коду с помощью grep, сопоставляя строки запроса с текстом файлов. Если функция называется validateUserSession, а запрос сформулирован как «найди авторизацию», grep не найдёт её, поскольку ищет буквальное совпадение, а не смысл. Агент перебирает десятки файлов, расходует токены и часто не находит нужного фрагмента.
Инструмент cocoindex-code (CLI-команда ccc) предлагает альтернативу — семантический поиск по коду. Он Apache-2.0, набрал 1,7 тыс. звёзд на GitHub и построен поверх Rust-движка CocoIndex. Установка проста: сначала pipx install 'cocoindex-code[full]', затем npx skills add cocoindex-io/cocoindex-code. После этого агент сам научится запускать демон, индексировать базу и использовать семантический поиск. Для ручного режима есть команды ccc init, ccc index и ccc search.
Ключевое техническое решение — AST-чанкинг. Вместо нарезки файлов на куски фиксированного размера (например, по 50 строк) cocoindex парсит код через Tree-sitter в синтаксическое дерево и режет строго по границам функций, классов и методов. Каждый чанк — законченная смысловая единица, чей эмбеддинг точно описывает её логику. Это повышает качество поиска: запрос «обработка платежей» сопоставляется с цельной функцией, а не с оборванным фрагментом.
Использует AST-чанкинг на базе Tree-sitter, нарезая код по границам функций и классов.
Заявленная экономия токенов — до 70% — достигается тем, что агент вместо чтения целых файлов получает несколько релевантных чанков. В тесте на Python-бэкенде из 400 файлов первичная индексация заняла пару минут, а watcher досинхронизирует только изменения. cocoindex-code выгодно отличается от аналогов: SocratiCode требует поднимать Qdrant в Docker, а CodeGraph строит граф символов, но не даёт векторного поиска из коробки. cocoindex же работает локально с минимальной конфигурацией, что делает его привлекательным для разработчиков, желающих улучшить работу coding-агентов без лишних хлопот.



