Vibecosystem ast-grep-find
AST-based code search and refactoring via ast-grep MCP
install
source · Clone the upstream repo
git clone https://github.com/vibeeval/vibecosystem
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/vibeeval/vibecosystem "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ast-grep-find" ~/.claude/skills/vibeeval-vibecosystem-ast-grep-find && rm -rf "$T"
manifest:
skills/ast-grep-find/SKILL.mdsource content
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 |
|---|---|
| AST pattern to search (required) |
| Language: , , , , etc. |
| Directory to search (default: ) |
| File glob pattern (e.g., ) |
| Replacement pattern for refactoring |
| Preview changes without applying |
| Lines of context (default: 2) |
Pattern Syntax
| Syntax | Meaning |
|---|---|
| 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.