brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
| Match multiple nodes (arguments, statements) |\n| `$_` | Match any single node (wildcard) |\n\n## Examples\n\n```bash\n# Find all function definitions\nuv run python -m runtime.harness scripts/ast_grep_find.py \\\n --pattern \"def \\$FUNC(\\$\\$\\$):\" --language python\n\n# Find console.log calls\nuv run python -m runtime.harness scripts/ast_grep_find.py \\\n --pattern \"console.log(\\$\\$\\$)\" --language javascript\n\n# Replace print with logging\nuv run python -m runtime.harness scripts/ast_grep_find.py \\\n --pattern \"print(\\$X)\" --replace \"logging.info(\\$X)\" \\\n --language python --dry-run\n```\n\n## vs morph/warpgrep\n\n| Tool | Best For |\n|------|----------|\n| **ast-grep** | Structural patterns (understands code syntax) |\n| **warpgrep** | Fast text/regex search (20x faster grep) |\n\nUse ast-grep when you need syntax-aware matching. Use warpgrep for raw speed.\n\n## MCP Server Required\n\nRequires `ast-grep` server in mcp_config.json.\n","licenseDocuments":[]}}
ast-grep-findAST-based code search and refactoring via ast-grep MCP
Independent GitHub snapshot · Automated classification · Original documentation governs
Structural code search that understands syntax. Find patterns like function calls, imports, class definitions - not just text.
uv run python -m runtime.harness scripts/ast_grep_find.py \
--pattern "import asyncio" --language python
uv run python -m runtime.harness scripts/ast_grep_find.py \
--pattern "async def \$FUNC(\$\$\$)" --language python --path "./src"
uv run python -m runtime.harness scripts/ast_grep_find.py \
--pattern "console.log(\$MSG)" --replace "logger.info(\$MSG)" \
--language javascript
uv run python -m runtime.harness scripts/ast_grep_find.py \
--pattern "print(\$X)" --replace "logger.info(\$X)" \
--language python --dry-run
| 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) |
| Syntax | Meaning |
|---|---|
$NAME | Match single node (variable, expression) |
$$ | Match multiple nodes (arguments, statements) |
$_ | Match any single node (wildcard) |
# 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
| 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.
Requires ast-grep server in mcp_config.json.