ast-grep-find
AST-based code search and refactoring via ast-grep MCP
适合你,如果需要在大型代码库中精准查找和修改代码模式
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
~/.claude/skills/(项目级 .claude/skills/)~/.codex/skills/npx oh-my-skill add parcadei/continuous-claude-v3/ast-grep-findcurl -fsSL https://oh-my-skill.com/install.sh | bash -s -- parcadei/continuous-claude-v3/ast-grep-findnpx oh-my-skill verify parcadei/continuous-claude-v3/ast-grep-find怎么用
商店整理自技能原文 · 版本 d07ff4b · 表述以原文为准安装后,Claude 能根据代码语法结构(而非纯文本)搜索函数调用、类定义、导入语句等模式,并支持批量替换和预览。
当你需要查找或重构特定代码模式(如函数调用、类定义),且希望忽略注释和字符串时触发。
技能原文 SKILL.md
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
uv run python -m runtime.harness scripts/ast_grep_find.py \
--pattern "import asyncio" --language python
Search in specific directory
uv run python -m runtime.harness scripts/ast_grep_find.py \
--pattern "async def \$FUNC(\$\$\$)" --language python --path "./src"
Refactor/replace pattern
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)
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
# 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.