ast-grep CLI

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

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

Расширенный доступ

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

  • При замене переписывает файлы проекта массово
Все причины и проверки

ast-grep/ast-grep

Установка

В терминале, через 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?

Совпадение идет по структуре кода, поэтому пробелы, переносы и форматирование не мешают, а строки и комментарии не цепляются случайно.

Можно ли попробовать без установки?

Да, на сайте проекта есть онлайн-песочница.

Обсуждение

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

Официальный

Скиллы ast-grep для Claude Code: агент пишет и проверяет правила структурного поиска по AST и строит компактную карту кодовой базы

СкиллРасширенный доступ899Звезды репозитория

Jevgrep

jevgrep

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

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

Rust-бинарник для агентов и терминала: через tree-sitter находит определение символа, его вызовы и зависимости файла

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

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

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

CLI и плагин для ревью кода агентом: читает git diff и пишет замечания по строкам с учетом контекста

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

CLI на Rust для TypeScript и JavaScript: мертвый код, дубликаты, циклы, сложность и границы архитектуры по одному графу, есть MCP-сервер и скиллы

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

Коротко о README

README объясняет идею поиска по синтаксическому дереву и синтаксис метапеременных. Установка возможна через npm, pip, cargo, Homebrew, scoop, MacPorts, Nix и mise. Приведены примеры замен для TypeScript и перечислены основные возможности: шаблоны в виде кода, API для обхода дерева и правила в YAML. Лицензия MIT.

Бейдж для README

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

Foxx AIast-grep
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.