ast-grep-find
This tool uses abstract syntax trees to search and refactor code structures like function calls and classes accurately.
Install
mkdir -p .claude/skills/ast-grep-find && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/1084" && unzip -o skill.zip -d .claude/skills/ast-grep-find && rm skill.zipInstalls to .claude/skills/ast-grep-find
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
AST-based code search and refactoring via ast-grep MCPKey capabilities
- →Find code patterns that ignore strings and comments
- →Search for function calls, class definitions, or imports
- →Refactor code using AST precision
- →Rename variables or functions across a codebase
- →Preview changes before applying them
How it works
This skill uses abstract syntax trees to understand code structure and perform searches or refactoring based on syntax rather than plain text. It can match single nodes, multiple nodes, or any single node using specific syntax.
Inputs & outputs
When to use ast-grep-find
- →Find specific function call patterns
- →Refactor code logic with structural precision
- →Rename variables across a project
- →Verify code patterns before applying changes
About this skill
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.
When not to use it
- →When only text or regex search is needed
- →When raw search speed is the primary concern
Prerequisites
Limitations
- →Requires an ast-grep server to be configured
How it compares
This skill performs structural code searches that understand syntax, unlike generic text or regex searches that do not interpret code structure.
Compared to similar skills
ast-grep-find side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| ast-grep-find (this skill) | 3 | 7mo | Review | Intermediate |
| naming-analyzer | 2 | 6mo | Review | Beginner |
| dead-code | 1 | 7mo | Review | Intermediate |
| lsp-extract-function | 0 | 3mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by parcadei
View all by parcadei →You might also like
naming-analyzer
davila7
Suggest better variable, function, and class names based on context and conventions.
dead-code
parcadei
Find unused functions and dead code in the codebase
lsp-extract-function
blackwell-systems
Extract a selected code block into a named function. Primary path uses the language server's extract-function code action; falls back to manual extraction when no code action is available. Validates captured variables, scope shadowing, and compilation after extraction.
clean-code
RepairYourTech
Applies battle-tested clean code principles to writing, reviewing, and refactoring code. Covers naming, functions, comments, error handling, class design, and the critical difference between clever code and clear code.
checking-changes
streamlit
Validates all code changes before committing by running format, lint, type, and unit test checks. Use after making backend (Python) or frontend (TypeScript) changes, before committing or finishing a work session.
codex-code-review
tyrchen
Perform comprehensive code reviews using OpenAI Codex CLI. This skill should be used when users request code reviews, want to analyze diffs/PRs, need security audits, performance analysis, or want automated code quality feedback. Supports reviewing staged changes, specific files, entire directories, or git diffs.