sg

star 58

Search and rewrite code with ast-grep (sg) using AST patterns and $VAR meta-variables. Use when finding code patterns or refactoring at scale.

knoopx By knoopx schedule Updated 5/17/2026

name: sg description: "Search and rewrite code with ast-grep (sg) using AST patterns and $VAR meta-variables. Use when finding code patterns or refactoring at scale." token_cost: 130 related: [grit] keywords: ["ast-grep", "sg", "ast", "meta-variable", "rewrite"]

ast-grep (sg)

Searches code by AST structure, not text. Patterns must be valid parseable code with $VAR meta-variables for wildcards.

Basic Search

ast-grep run -l ts --pattern 'console.log($X)' src/
ast-grep run --pattern '$FUNC()' agent/extensions/   # Auto-detect language

Pattern Syntax

  • $VAR — matches a single AST node (uppercase only: $MOD, $_)
  • $$$VAR — matches zero or more nodes (function args, statements)
  • $_VAR — non-capturing (same name can match different content)
  • Patterns must be valid code: import { $X } from "$Y" works, bare from $X fails

Common Patterns

Find re-exports (barrel files):

ast-grep run -l ts --pattern 'export * from "$Y"' ./
ast-grep run -l ts --pattern 'export { $$$X } from "$Y"' ./

Find all imports from a module:

ast-grep run -l ts --pattern 'import { $$$X } from "$MOD"' ./

Find function calls with specific structure:

ast-grep run -l ts --pattern 'console.log($MSG)' ./
ast-grep run -l ts --pattern 'fetch($URL).then($H)' ./

Detect anti-patterns (await inside Promise.all):

ast-grep run -l ts --pattern 'await $X' ./ \
  --selector call_expression \
  --pattern 'Promise.all($$_)'

Rules

  • Patterns must be valid parseable code — test with --debug-query=ast
  • Use $VAR (uppercase) for meta-variables; $_VAR for non-capturing
  • Use --debug-query=ast when patterns fail silently
  • Validate complex patterns in the playground first
Install via CLI
npx skills add https://github.com/knoopx/pi --skill sg
Repository Details
star Stars 58
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator