ast-grep CLI
Структурный поиск, линт и замена кода по синтаксическому дереву: шаблоны пишутся как обычный код
- 16 388 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- При замене переписывает файлы проекта массово
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add cli/ast-grepОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- При замене переписывает файлы проекта массово
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
ast-grep ищет в коде не текст, а синтаксические конструкции: шаблон записывается как фрагмент кода, а метапеременные вроде $A совпадают с любым узлом дерева. Найденное можно сразу переписать по шаблону замены. Правила линта и массовых правок описываются в YAML. Разбор идет через tree-sitter, инструмент написан на Rust и использует несколько ядер. Агенту это дает точные рефакторинги на весь проект вместо хрупких регулярных выражений.
Для кого. Для разработчиков и агентов, которым нужны массовые правки и поиск по коду с учетом синтаксиса.
Подходит, если
- Нужно заменить устаревший вызов API во всем проекте
- Нужно написать собственное правило линта для команды
- Регулярное выражение цепляет лишнее или пропускает многострочные конструкции
Не подходит, если
- Нужна замена в обычном тексте или конфигурации без синтаксиса языка
- Нужно переименование с учетом типов и импортов, для этого лучше языковой сервер
Пример запроса к агенту
С помощью ast-grep замени во всех TypeScript-файлах конструкции вида a && a() на a?.()Ограничения
Работает только с языками, для которых есть грамматика tree-sitter. Не знает о типах, поэтому одинаковые по форме, но разные по смыслу конструкции совпадут одинаково. Шаблоны и YAML-правила требуют привыкания.
Как отключить. Удалите пакет тем же менеджером, которым ставили: npm uninstall -g @ast-grep/cli, pip uninstall ast-grep-cli или brew uninstall ast-grep.
Частые вопросы
Чем это лучше grep или sed?
Совпадение идет по структуре кода, поэтому пробелы, переносы и форматирование не мешают, а строки и комментарии не цепляются случайно.
Можно ли попробовать без установки?
Да, на сайте проекта есть онлайн-песочница.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыСкиллы ast-grep для Claude Code: агент пишет и проверяет правила структурного поиска по AST и строит компактную карту кодовой базы
Jevgrep
jevgrep
CLI для кодовых агентов: ищет код по описанию задачи, а не по строке. Нужен ключ одного из провайдеров моделей
Rust-бинарник для агентов и терминала: через tree-sitter находит определение символа, его вызовы и зависимости файла
Локальный поиск zg по рабочему пространству: ripgrep, BM25 и векторный поиск в одном инструменте для человека и агента
CLI и плагин для ревью кода агентом: читает git diff и пишет замечания по строкам с учетом контекста
CLI на Rust для TypeScript и JavaScript: мертвый код, дубликаты, циклы, сложность и границы архитектуры по одному графу, есть MCP-сервер и скиллы
Коротко о README
README объясняет идею поиска по синтаксическому дереву и синтаксис метапеременных. Установка возможна через npm, pip, cargo, Homebrew, scoop, MacPorts, Nix и mise. Приведены примеры замен для TypeScript и перечислены основные возможности: шаблоны в виде кода, API для обхода дерева и правила в YAML. Лицензия MIT.