cymbal CLI
Навигатор по коду на tree-sitter: локальный индекс SQLite отвечает агенту о символах, вызовах и влиянии правок за миллисекунды
- 377 ★ репозитория
- Последний коммит
- MIT
Минимальный доступ
Почему такой уровень
- cymbal читает исходники и пишет только свой локальный индекс SQLite, а хуки меняют подсказки агенту.
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add cli/cymbalОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемМинимальный доступИнструмент ничего не запускает и не ходит в сеть.
- cymbal читает исходники и пишет только свой локальный индекс SQLite, а хуки меняют подсказки агенту.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
cymbal разбирает репозиторий в локальный индекс SQLite и отвечает на вопросы о коде из терминала или от агента. Индекс строится сам при первом запросе, а дальше переразбирает только измененные файлы. Три команды закрывают большую часть разбора. `cymbal investigate` за один вызов отдает исходник символа, его вызывающих и влияние или члены класса. `cymbal trace` показывает, от чего символ зависит, `cymbal impact` показывает, что сломается при его правке, с разделением на рабочий код и тесты. Команда `cymbal changed` переводит текущий `git diff` в список затронутых символов и их влияние. Команды `cymbal hook install claude-code` и `cymbal hook install opencode` подключают cymbal к агенту и мягко переводят его с текстового поиска на индекс. Поддержаны Go, Python, JavaScript, TypeScript, Rust, C и C++, C#, Java, Ruby, Swift, Kotlin, PHP и еще десяток языков.
Для кого. Разработчикам больших и незнакомых кодовых баз, у которых агент тратит много токенов на цепочки текстового поиска и чтение файлов целиком.
Подходит, если
- Агент гоняет поиск, показ и ссылки по кругу и теряет контекст на большом репозитории.
- Перед рефакторингом функции надо увидеть всех вызывающих отдельно в коде и в тестах.
- Пул-реквест затрагивает десяток файлов, и хочется понять, какие символы и модули он задевает.
- Новичку в проекте нужна карта зависимостей вокруг модуля в виде графа.
Не подходит, если
- Проект на языке без грамматики tree-sitter в cymbal, например Haskell или Zig.
- Нужен семантический поиск по смыслу кода через эмбеддинги.
- Репозиторий из пары файлов, где хватает обычного чтения.
Пример запроса к агенту
Через cymbal покажи, что сломается, если поменять сигнатуру handleAuth, отдельно для кода и для тестов.Ограничения
Индексируются только языки с грамматикой tree-sitter и разбором символов, импортов и ссылок. Haskell, Zig, Erlang, OCaml, R и Perl распознаются по типу файла, но не индексируются. Готовые установщики для хуков есть только у Claude Code и OpenCode, для остальных агентов в HOOKS.md лежат фрагменты для ручной настройки. Подталкивание от текстового поиска к cymbal в OpenCode не работает в оболочках Windows. Сам cymbal не обновляется автоматически и только подсказывает команду обновления.
Как отключить. Выполните `cymbal hook uninstall claude-code` или `cymbal hook uninstall opencode`, затем `brew uninstall cymbal`. Индексы лежат в каталоге данных cymbal, под Windows в `%LOCALAPPDATA%\cymbal\repos\`.
Частые вопросы
Как подключить cymbal к Claude Code?
Выполните `cymbal hook install claude-code`. Хук напоминает агенту начинать с `cymbal investigate` и переводит его с текстового поиска на индекс.
Нужно ли строить индекс вручную?
Нет, он строится сам при первом запросе и обновляется по измененным файлам. `cymbal index .` полезен только как предварительный прогрев.
Сколько токенов экономит cymbal?
По тестам автора на 11 репозиториях сфокусированный разбор тратит на 40–100% меньше токенов, чем цепочки текстового поиска. Большинство запросов выполняется за 10–40 мс.
Можно ли получить граф зависимостей?
Да, флаг `--graph` у `trace`, `impact`, `importers` и `impls` строит визуальную карту. Без флага вывод текстовый, с `--json` структурированный.
Как оценить влияние своих незакоммиченных правок?
Команда `cymbal changed` берет `git diff` рабочего дерева, `--staged` или `--base` и выдает затронутые символы с их влиянием.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыCLI на Rust строит локальный индекс символов кода, и агент ищет по структуре вместо grep, тратя на 40–50% меньше токенов.
Локальный семантический индекс кода: агент ищет по смыслу, затем идет к определениям, вызовам и путям зависимостей
Локальный MCP-сервер строит индекс кода на SQLite и tree-sitter, и агент ищет символы, вызовы и смысл одним запросом
MCP-сервер и CLI на Rust: граф вызовов и гибридный семантический поиск по коду для Claude Code и Codex
Локальный граф кода отвечает агентам на вопросы о символах и вызовах, и они реже перечитывают файлы целиком.
Локальный граф кода для агентов: MCP-сервер отдает точки входа, связи символов и радиус влияния изменений за один вызов
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| cymbal (эта карточка) | нет | 377 | ||
| Serena | нет | не нужна | 31 335 | MCP-сервер с семантическими инструментами через языковые серверы; здесь CLI с индексом tree-sitter и хуками без сервера |
| ast-grep | нет | 16 567 | поиск и замена по шаблонам синтаксического дерева; здесь вызывающие, зависимости и влияние правок по индексу |
Коротко о README
README перечисляет способы установки, быстрый старт и таблицу всех команд. Отдельные разделы показывают режим графа, результаты замеров на 11 репозиториях и правила для агентов, а полное руководство вынесено в MANUAL.md.