ast-grep-find
Provides AST-based code search and refactoring using ast-grep. Finds syntax patterns like function calls and imports while ignoring strings/comments. Supports multiple languages and includes dry-run previews for safe refactoring.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install parcadei-continuous-claude-v2-ast-grep-find
Repository
Skill path: .claude/skills/ast-grep-find
Provides AST-based code search and refactoring using ast-grep. Finds syntax patterns like function calls and imports while ignoring strings/comments. Supports multiple languages and includes dry-run previews for safe refactoring.
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: Developers working on codebase refactoring, code analysis, or maintaining large projects who need syntax-aware search beyond regex..
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: parcadei.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install ast-grep-find into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/parcadei/Continuous-Claude-v2 before adding ast-grep-find to shared team environments
- Use ast-grep-find for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
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.