ast-grep-find▌
parcadei/continuous-claude-v3 · updated Apr 8, 2026
Structural code search that understands syntax. Find patterns like function calls, imports, class definitions - not just text.
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.
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.7★★★★★63 reviews- ★★★★★Arjun Garcia· Dec 28, 2024
ast-grep-find reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Arjun Martinez· Dec 24, 2024
Keeps context tight: ast-grep-find is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Ava Chawla· Dec 24, 2024
Solid pick for teams standardizing on skills: ast-grep-find is focused, and the summary matches what you get after install.
- ★★★★★Daniel Menon· Dec 20, 2024
I recommend ast-grep-find for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Anaya Anderson· Dec 8, 2024
I recommend ast-grep-find for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Hiroshi Liu· Dec 4, 2024
Useful defaults in ast-grep-find — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★William Jackson· Dec 4, 2024
Registry listing for ast-grep-find matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Ren Harris· Nov 23, 2024
Keeps context tight: ast-grep-find is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Diego Yang· Nov 19, 2024
ast-grep-find is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★James Taylor· Nov 15, 2024
Registry listing for ast-grep-find matched our evaluation — installs cleanly and behaves as described in the markdown.
showing 1-10 of 63