cymbal CLI

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

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

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

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

  • cymbal читает исходники и пишет только свой локальный индекс SQLite, а хуки меняют подсказки агенту.
Все причины и проверки

1broseidon/cymbal

Установка

Работает в

В терминале, через 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 на Rust строит локальный индекс символов кода, и агент ищет по структуре вместо grep, тратя на 40–50% меньше токенов.

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

Локальный семантический индекс кода: агент ищет по смыслу, затем идет к определениям, вызовам и путям зависимостей

MCP-серверРасширенный доступ229Звезды репозитория
Официальный

Локальный MCP-сервер строит индекс кода на SQLite и tree-sitter, и агент ищет символы, вызовы и смысл одним запросом

MCP-серверРасширенный доступ59Звезды репозитория

MCP-сервер и CLI на Rust: граф вызовов и гибридный семантический поиск по коду для Claude Code и Codex

MCP-серверРасширенный доступ760Звезды репозитория

Локальный граф кода отвечает агентам на вопросы о символах и вызовах, и они реже перечитывают файлы целиком.

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

Локальный граф кода для агентов: MCP-сервер отдает точки входа, связи символов и радиус влияния изменений за один вызов

MCP-серверРасширенный доступ77,5 тыс.Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
cymbal (эта карточка)нет377
Serenaнетне нужна31 335MCP-сервер с семантическими инструментами через языковые серверы; здесь CLI с индексом tree-sitter и хуками без сервера
ast-grepнет16 567поиск и замена по шаблонам синтаксического дерева; здесь вызывающие, зависимости и влияние правок по индексу

Коротко о README

README перечисляет способы установки, быстрый старт и таблицу всех команд. Отдельные разделы показывают режим графа, результаты замеров на 11 репозиториях и правила для агентов, а полное руководство вынесено в MANUAL.md.

Бейдж для README

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