---
name: AST-Grep Find
slug: ast-grep-find
category: Quality
description: AST-Grep Find performs syntax-aware code search and refactoring using ast-grep patterns. Use it to find function calls, imports, and class definitions, or rename and replace code across a codebase.
github: "https://github.com/parcadei/Continuous-Claude-v3/tree/main/.claude/skills/ast-grep-find"
language: Python
stars: 3902
forks: 296
install: "npx degit https://github.com/parcadei/Continuous-Claude-v3/tree/main/.claude/skills/ast-grep-find ~/.claude/skills/ast-grep-find"
installs_to: ~/.claude/skills/ast-grep-find
source_path: .claude/skills/ast-grep-find/SKILL.md
collection_size: 25
category_size: 1354
collection_url: "https://dirskills.com/collections/parcadei/Continuous-Claude-v3"
added: 2026-08-16T07:01:43.011Z
last_synced: 2026-08-16T07:01:43.011Z
canonical_url: "https://dirskills.com/skills/ast-grep-find"
---

# AST-Grep Find

AST-Grep Find performs syntax-aware code search and refactoring using ast-grep patterns. Use it to find function calls, imports, and class definitions, or rename and replace code across a codebase.

**Install:**

```bash
npx degit https://github.com/parcadei/Continuous-Claude-v3/tree/main/.claude/skills/ast-grep-find ~/.claude/skills/ast-grep-find
```

## README

# 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.
