ast-grep-find — скилл для Claude Code: что делает и как установить
Ищет код по синтаксическому дереву и заменяет конструкции с учётом структуры языка. Пригодится для точечного рефакторинга функций, импортов и переменных без ложных срабатываний в строках.
npx skills add parcadei/Continuous-Claude-v3 --skill ast-grep-find -a claude-codeЧто делает ast-grep-find
Скилл запускает утилиту структурного поиска через скрипт scripts/ast_grep_find.py с помощью uv. В отличие от текстового поиска, инструмент разбирает синтаксическое дерево. Он находит вызовы функций, импорты или классы в python, javascript, typescript, go и других языках. Комментарии и строки отсекаются сразу.
Для шаблонов используются метапеременные: $NAME для одного узла, $$$ для группы аргументов и $_ для любого одиночного узла. Скилл поддерживает замену кода через параметр --replace. Флаг --dry-run показывает предварительные правки. По умолчанию контекст составляет 2 строки, а поиск идёт от текущей папки ..
Главное ограничение: для работы необходим сервер ast-grep, прописанный в mcp_config.json. Без него скрипт не выполнит структурный анализ.
Какие задачи решает
- находить вызовы функций и объявления классов с учётом синтаксиса
- рефакторить конструкции кода без изменения текста в комментариях
- переименовывать переменные и аргументы с помощью шаблонов AST
- проверять результат правки кода до записи с флагом
--dry-run
Примеры запросов агенту
- Найди все вызовы
console.log($$$)в проекте на JavaScript с помощью ast-grep-find - Замени вызовы
print($X)наlogger.info($X)во всех файлах Python через ast-grep-find с флагом--dry-run - Найди объявления
async def $FUNC($$$)в каталоге./srcчерез ast-grep-find
Как установить ast-grep-find
1Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill ast-grep-find -a claude-code2Вручную: положить файлы
~/.claude/skills/ast-grep-find/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/ast-grep-find/
1Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill ast-grep-find -a codex2Вручную: положить файлы
.agents/skills/ast-grep-find/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill ast-grep-find -a cursor2Вручную: положить файлы
.cursor/skills/ast-grep-find/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install parcadei/Continuous-Claude-v3 ast-grep-find2Вручную: положить файлы
.github/skills/ast-grep-find/SKILL.md1Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill ast-grep-find -a gemini-cli2Командой платформы
gemini skills install https://github.com/parcadei/Continuous-Claude-v3 --path .claude/skills/ast-grep-findВручную: положить файлы
.devin/skills/ast-grep-find/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill ast-grep-find -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о ast-grep-find
Как установить ast-grep-find в Claude Code?
Выполните команду npx skills add parcadei/Continuous-Claude-v3 --skill ast-grep-find -a claude-code.
Что делает скилл ast-grep-find?
Скилл выполняет структурный поиск и рефакторинг кода на основе синтаксического дерева (AST). Он анализирует структуру программы, игнорируя текст комментариев и строковых литералов.
Чем ast-grep-find отличается от warpgrep?
Инструмент warpgrep оптимизирован под максимальную скорость поиска по обычному тексту и регулярным выражениям. Скилл ast-grep-find работает с синтаксическим деревом и распознаёт языковые конструкции.
Исходный текст
SKILL.md · MIT
---
name: ast-grep-find
description: AST-based code search and refactoring via ast-grep MCP
allowed-tools: [Bash, Read]
---
# AST-Grep Find
Structural code search that understands syntax. Find patterns like function calls, imports, class definitions - not just text.
## When to Use
- Find code patterns (ignores strings/comments)
- Search for function calls, class definitions, imports
- Refactor code with AST precision
- Rename variables/functions across codebase
## Usage
### Search for a pattern
```bash
uv run python -m runtime.harness scripts/ast_grep_find.py \
--pattern "import asyncio" --language python
```
### Search in specific directory
```bash
uv run python -m runtime.harness scripts/ast_grep_find.py \
--pattern "async def \$FUNC(\$\$\$)" --language python --path "./src"
```
### Refactor/replace pattern
```bash
uv run python -m runtime.harness scripts/ast_grep_find.py \
--pattern "console.log(\$MSG)" --replace "logger.info(\$MSG)" \
--language javascript
```
### Dry run (preview changes)
```bash
uv run python -m runtime.harness scripts/ast_grep_find.py \
--pattern "print(\$X)" --replace "logger.info(\$X)" \
--language python --dry-run
```
## Parameters
| Parameter | Description |
|-----------|-------------|
| `--pattern` | AST pattern to search (required) |
| `--language` | Language: `python`, `javascript`, `typescript`, `go`, etc. |
| `--path` | Directory to search (default: `.`) |
| `--glob` | File glob pattern (e.g., `**/*.py`) |
| `--replace` | Replacement pattern for refactoring |
| `--dry-run` | Preview changes without applying |
| `--context` | Lines of context (default: 2) |
## Pattern Syntax
| Syntax | Meaning |
|--------|---------|
| `$NAME` | Match single node (variable, expression) |
| `$$$` | Match multiple nodes (arguments, statements) |
| `$_` | Match any single node (wildcard) |
## Examples
```bash
# Find all function definitions
uv run python -m runtime.harness scripts/ast_grep_find.py \
--pattern "def \$FUNC(\$\$\$):" --language python
# Find console.log calls
uv run python -m runtime.harness scripts/ast_grep_find.py \
--pattern "console.log(\$\$\$)" --language javascript
# Replace print with logging
uv run python -m runtime.harness scripts/ast_grep_find.py \
--pattern "print(\$X)" --replace "logging.info(\$X)" \
--language python --dry-run
```
## vs morph/warpgrep
| Tool | Best For |
|------|----------|
| **ast-grep** | Structural patterns (understands code syntax) |
| **warpgrep** | Fast text/regex search (20x faster grep) |
Use ast-grep when you need syntax-aware matching. Use warpgrep for raw speed.
## MCP Server Required
Requires `ast-grep` server in mcp_config.json.
© parcadei · MIT · parcadei/Continuous-Claude-v3