ast-index CLI

CLI на Rust строит локальный индекс символов кода, и агент ищет по структуре вместо grep, тратя на 40–50% меньше токенов.

  • 589 ★ репозитория
  • Последний коммит
  • MIT
CLI

Минимальный доступ

Почему такой уровень

  • CLI читает исходники проекта и пишет локальный индекс SQLite, к сети не обращается.
Все причины и проверки

defendend/claude-ast-index-search

Установка

Работает в

Ручная установка

brew tap defendend/ast-index
brew install ast-index

Команды из README для macOS и Linux. Для Windows есть winget, для остальных cargo install ast-index --locked.

Доступ и проверки

Как мы проверяем

Минимальный доступИнструмент ничего не запускает и не ходит в сеть.

  • CLI читает исходники проекта и пишет локальный индекс SQLite, к сети не обращается.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

`ast-index` строит локальный индекс SQLite по символам, ссылкам, импортам, модулям, зависимостям и наследованию, после чего агент и человек переходят по коду по точной структуре, а не по текстовым совпадениям. Команда `ast-index rebuild` создает индекс один раз, `ast-index update` держит его актуальным после правок, а в монорепозитории помогает ключ `--walk-up`. Запросы идут от общего к точному. `explore` отвечает на вопрос по теме, например «payment flow», а `symbol`, `class`, `outline`, `refs`, `usages`, `implementations` и `deps` дают определение, вызовы, реализации и пути зависимостей. Необязательные данные не строятся при пересборке: `hotspots --collect` ранжирует файлы по частоте правок, исправлений и числу авторов, `graph build` строит граф зависимостей между символами, после чего `graph dependents` показывает, кто пострадает от изменения. Поддержано более тридцати языков и форматов: Kotlin, Java, Swift, TypeScript, JavaScript, Rust, Python, Go, C и C++, C#, PHP, Ruby, BSL для 1С, SQL и другие. Автор приводит замеры на проекте Android (около 29 тысяч файлов и 300 тысяч символов): `class` выполняется за 1 мс против 90 мс у `grep`, а `search` за 11 мс против 280. Для Claude Code, Codex и Cursor есть плагины со скиллом, а Claude Code получает команду `/initialize` для первоначальной настройки.

Для кого. Разработчикам на больших и многоязычных репозиториях, где агент тратит токены на чтение целых файлов и промахивается по `grep`, особенно в Android, iOS и монорепозиториях.

Подходит, если

  • Агент ищет, кто вызывает метод базового класса, и `grep` возвращает сотни лишних совпадений.
  • Перед изменением сервиса нужно узнать, какие символы от него зависят.
  • Надо понять устройство незнакомого модуля по структуре и зависимостям, не читая файлы целиком.
  • В репозитории Kotlin, Swift и Python рядом, и поиск должен понимать все три.
  • Нужно быстро найти файлы с самой частой правкой и исправлениями, чтобы разобраться, где живут проблемы.

Не подходит, если

  • Репозиторий маленький: индекс и обновления добавляют лишний шаг, а обычного поиска хватает.
  • Нужен семантический поиск по смыслу текста и комментариев: инструмент ищет по структуре кода.
  • Язык проекта вне поддерживаемого списка: тогда останется текстовый поиск.

Пример запроса к агенту

Построй индекс командой `ast-index` `rebuild` и покажи, кто использует класс PaymentRepository и что сломается при смене его интерфейса.

Ограничения

Индекс нужно обновлять командой `ast-index update` после правок и смены веток, иначе результаты отстают. Для частых правок автор советует фоновое обновление `ast-index update --background --debounce-ms 500` из хука.

Данные по истории Git и граф символов не строятся при пересборке и включаются отдельными командами.

Сборка из исходников требует Rust, итоговый бинарник занимает около 50 МБ. Замеры скорости автор снимал на большом Android-проекте, на вашем проекте цифры будут другими.

Как отключить. Выполните `claude plugin uninstall ast-index` и удалите бинарник командой `brew uninstall ast-index` или `cargo uninstall ast-index`. Индекс лежит в проекте и удаляется вместе с его папкой.

Частые вопросы

Как установить `ast-index`?

Через Homebrew: `brew tap defendend/ast-index` и `brew install ast-index`. Есть также `cargo install ast-index --locked`, `winget install --id defendend.ast-index` и сборка из исходников.

Как подключить к Claude Code?

Выполните `claude plugin marketplace add defendend/Claude-ast-index-search` и `claude plugin install ast-index`. Плагин добавляет команду `/initialize`. Есть и команда `ast-index install-claude-plugin`.

Как использовать с Codex и Cursor?

Для Codex свяжите `plugin/skills/ast-index` с `~/.codex/skills/ast-index` или подключите репозиторий как маркетплейс. Для Cursor свяжите папку с `~/.cursor/skills/ast-index` или `~/.cursor/plugins/local/ast-index`.

Сколько токенов экономится?

Автор называет 40–50% на больших репозиториях за счет возврата структурных фрагментов вместо целых файлов. Цифра зависит от проекта.

Как быть с монорепозиторием?

Если в подпапках есть свои маркеры системы контроля версий, добавьте `--walk-up` или переменную `AST_INDEX_WALK_UP=1`, чтобы использовать корневой индекс.

Обсуждение

Вопросов и отзывов пока нет.

Локальный поиск по коду для Claude Code и Codex: шесть быстрых инструментов вместо grep и Read, индекс обновляется сам.

CLIРасширенный доступ120Звезды репозитория

Быстрый локальный индексный поиск по коду на Rust для ИИ-ассистентов: подключается к Claude Code, OpenCode и Codex.

CLIМинимальный доступ64Звезды репозитория

Структурный поиск, линт и замена кода по синтаксическому дереву: шаблоны пишутся как обычный код

CLIРасширенный доступ16,6 тыс.Звезды репозитория

Навигатор по коду на tree-sitter: локальный индекс SQLite отвечает агенту о символах, вызовах и влиянии правок за миллисекунды

CLIМинимальный доступ377Звезды репозитория

codesearch ищет по коду сразу в нескольких репозиториях гибридным поиском и работает офлайн, без GPU и Docker.

MCP-серверМинимальный доступ103Звезды репозитория

CLI строит индекс кодовой базы и карту на 250 токенов, чтобы агент не читал сотни файлов в поисках нужного.

CLIРасширенный доступ131Звезды репозитория

Коротко о README

README перечисляет возможности и языки, дает быстрый пример с установкой и командами, таблицу замеров скорости против `grep` и четыре способа установки. Дальше разделы о работе в монорепозитории и подключении к Claude Code, Codex и Cursor.

Бейдж для README

Сообщить о проблеме