Agent skill

Ast Grep

by poteto in poteto/noodle

Structural code search via ast-grep — use when code shape and element relationships matter, not just text.

MITAuto-check passedDevelopment

Install Ast Grep

skills CLI
$ npx skills add poteto/noodle --skill ast-grep -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install poteto/noodle ast-grep --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/poteto/noodle.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ast-grep .claude/skills/ast-grep && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ast-grep
GitHub stars
437
Token cost
~531 tokens
SKILL.md length
156 words
Files
2 (incl. references)
Skills in repo
26
Repo updated
First seen
Licence
MIT

At a glance

Structural code search via ast-grep — use when code shape and element relationships matter, not just text.

  • Works in 4 steps: Write a test snippet representing the… → Write the rule (start with pattern,… → Test with --stdin before searching the… → …
  • Code shape and element relationships matter
  • SKILL.md covers Workflow, Critical Gotchas, Testing with --stdin and Debugging with --debug-query, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Ast Grep is an agent skill from poteto/noodle. Structural code search via ast-grep — use when code shape and element relationships matter, not just text. E.g., "find async functions without error handling", "refactor foo(a, b) to foo({ a, b })". Use Grep for simple name lookups.

Its SKILL.md is about 530 tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/rule_reference.md`).

It sits in Development, covering Codebase onboarding. The repository describes itself as: Orchestrate agents using skills. The licence is MIT.

When your agent uses it

  • Code shape and element relationships matter
  • Tasks that involve Codebase onboarding

Example prompts

  • “find async functions without error handling”
  • “refactor foo(a, b) to foo({ a, b })”
  • “/ast-grep”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Write a test snippet representing the target code
  2. Write the rule (start with pattern, escalate to kind + has/inside if needed)
  3. Test with --stdin before searching the codebase
  4. Search the codebase once the rule matches

What it can do on your machine

Read from SKILL.md and the folder at commit 82d2921. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ast Grep loads about 531 tokens when it runs, and up to ~3.8k if it reads all its reference files. Until then it costs about 60 tokens; SKILL.md has 156 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~60
When it runs · the whole SKILL.md, loaded when a task matches
~531
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from poteto/noodle at commit 82d2921, republished under its MIT licence (© poteto). 156 words, ~531 tokens.

Download SKILL.mdSave it as .claude/skills/ast-grep/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
ast-grep
description
Structural code search via ast-grep — use when code shape and element relationships matter, not just text. E.g., "find async functions without error handling", "refactor foo(a, b) to foo({ a, b })". Use Grep for simple name lookups.

ast-grep

Workflow

  1. Write a test snippet representing the target code
  2. Write the rule (start with pattern, escalate to kind + has/inside if needed)
  3. Test with --stdin before searching the codebase
  4. Search the codebase once the rule matches

Critical Gotchas

Always use stopBy: end on relational rules

Without it, has/inside stop at the first non-matching node instead of traversing the full subtree:

yaml
# WRONG — will miss deeply nested matches
has:
  pattern: await $EXPR

# RIGHT
has:
  pattern: await $EXPR
  stopBy: end
Escape metavariables in shell

$VAR gets interpreted by the shell. Either escape or single-quote:

bash
# Double-quoted: escape with backslash
ast-grep scan --inline-rules "id: test
language: javascript
rule:
  pattern: await \$EXPR" .

# Single-quoted: no escaping needed
ast-grep scan --inline-rules 'id: test
language: javascript
rule:
  pattern: await $EXPR' .
Metavariables must be the sole content of an AST node

These don't work: obj.on$EVENT, "Hello $WORLD", a $OP b, $jq

Use $$OP for unnamed nodes (operators, punctuation). Use $$$ARGS for zero-or-more nodes.

Testing with --stdin

bash
echo "async function test() { await fetch(); }" | ast-grep scan --inline-rules 'id: test
language: javascript
rule:
  kind: function_declaration
  has:
    pattern: await $EXPR
    stopBy: end' --stdin

Debugging with --debug-query

When rules don't match, inspect the AST to find correct kind values:

bash
ast-grep run --pattern 'your code here' --lang javascript --debug-query=cst

Formats: cst (all nodes), ast (named only), pattern (how ast-grep sees your pattern).

Rule syntax

See references/rule_reference.md for the full rule reference (atomic, relational, composite rules, and metavariables).

© poteto, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in .agents/skills/ast-grep of poteto/noodle.

  • SKILL.md
  • references/rule_reference.md

Open the folder on GitHubat commit 82d2921

Compare with similar skills

Ast Grep next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ast Grep compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ast Grep this skillpoteto/noodle437—~531Automated safety check: PassMIT
Codebase Knowledge Graph Q&AEgonex-AI/Understand-Anything86k1 repos~1.2kAutomated safety check: PassMIT
Understand ExplainEgonex-AI/Understand-Anything86k1 repos~1.3kAutomated safety check: PassMIT
Repomix Codebase Exploreryamadashy/repomix29k1 repos~2.7kAutomated safety check: PassMIT
Code Graph Mermaid Diagramstrailofbits/skills7.4k1 repos~1.7kAutomated safety check: PassCC-BY-SA-4.0
Project Onboarding Guide from Knowledge GraphEgonex-AI/Understand-Anything86k—~1.2kAutomated safety check: PassMIT

Similar skills

  • Codebase Knowledge Graph Q&A

    Egonex-AI/Understand-Anything

    Answers questions about a codebase by searching a prebuilt knowledge graph of its files, functions, classes and dependencies, not by rereading every source file.

    86k GitHub starsUsed in 1 repo~1.2k tokens
    DevelopmentAuto-check passed
  • Understand Explain

    Egonex-AI/Understand-Anything

    Gives an in-depth explanation of one file, function or module by reading the project's knowledge graph and checking that the graph is still fresh.

    86k GitHub starsUsed in 1 repo~1.3k tokens
    DevelopmentAuto-check passed
  • Repomix Codebase Explorer

    yamadashy/repomix

    Packs a local or remote repository into a single AI-friendly file with the Repomix CLI, then reads and searches that output to explain structure, find patterns or report metrics.

    29k GitHub starsUsed in 1 repo~2.7k tokens
    DevelopmentAuto-check passed
  • Code Graph Mermaid Diagrams

    trailofbits/skills

    Official

    Generates Mermaid diagrams from Trailmark code graphs, including call graphs, class hierarchies, module dependency maps, complexity heatmaps and attack surface data flows.

    7.4k GitHub starsUsed in 1 repo~1.7k tokens
    DevelopmentAuto-check passed
  • Writes an onboarding guide for new team members from a project's existing knowledge graph, after checking that the graph still matches the current commit.

    86k GitHub stars~1.2k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • GitDiagram Repository Overview

    ahmedkhaleel2004/gitdiagram

    Explains the architecture of a public GitHub repository through GitDiagram: how the code is organized, the main components with paths, and a Mermaid diagram.

    18k GitHub stars~427 tokensUpdated today
    DevelopmentAuto-check passed

More from poteto/noodle

All 26 skills in this repo
  • Meditate

    poteto/noodle

    Audit and evolve the brain vault — prune outdated content, discover cross-cutting principles, review skills for structural encoding opportunities.

    437 GitHub stars~1.1k tokensUpdated 6 mo ago
    Auto-check passed
  • Ruminate

    poteto/noodle

    Mine past Claude Code and Codex conversations for uncaptured patterns, corrections, and knowledge.

    437 GitHub stars~1.4k tokensUpdated 6 mo ago
    Auto-check passed
  • Execute

    poteto/noodle

    Implementation methodology for executing tasks. An agent skill from poteto/noodle.

    437 GitHub stars~989 tokensUpdated 6 mo ago
    Auto-check passed
  • Noodle

    poteto/noodle

    Operate the Noodle CLI — explain commands, find flags, create/edit .noodle.toml config.

    437 GitHub stars~1.3k tokensUpdated 6 mo ago
    Auto-check passed
  • Plan

    poteto/noodle

    Systematic planning for medium-to-large tasks. An agent skill from poteto/noodle.

    437 GitHub stars~1.6k tokensUpdated 6 mo ago
    Auto-check passed
  • Quality

    poteto/noodle

    Post-cook quality gate. An agent skill from poteto/noodle.

    437 GitHub stars~774 tokensUpdated 6 mo ago
    Auto-check passed

Categories

Questions about Ast Grep

What does Ast Grep do?

Structural code search via ast-grep — use when code shape and element relationships matter, not just text. Ast Grep is an agent skill from poteto/noodle. Structural code search via ast-grep — use when code shape and element relationships matter, not just text.

When should I use Ast Grep?

Ast Grep fits situations like: code shape and element relationships matter; tasks that involve Codebase onboarding.

How do I install Ast Grep in Claude Code?

Run `npx skills add poteto/noodle --skill ast-grep -a claude-code`. Or copy the skill folder (.agents/skills/ast-grep in poteto/noodle) into .claude/skills/ast-grep in your project. Claude Code loads it when a task matches its description.

How do I install Ast Grep in Codex?

Run `npx skills add poteto/noodle --skill ast-grep -a codex`. Or copy the skill folder (.agents/skills/ast-grep in poteto/noodle) into .agents/skills/ast-grep in your project. Codex loads it when a task matches its description.

Can I use Ast Grep in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add poteto/noodle --skill ast-grep -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ast-grep, .gemini/skills/ast-grep, .github/skills/ast-grep and .opencode/skills/ast-grep in your project.

What does Ast Grep need to run?

SKILL.md names no scripts, command-line tools or credentials: Ast Grep is instructions for the agent only.

Does Ast Grep access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Ast Grep safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Ast Grep use?

Ast Grep is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ast Grep use?

About 531 tokens (SKILL.md is roughly 2.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.3k tokens, read only when the agent opens those files.

What are the alternatives to Ast Grep?

Skills that share tags, products or a category with Ast Grep: Codebase Knowledge Graph Q&A (Egonex-AI/Understand-Anything, 86k stars), Understand Explain (Egonex-AI/Understand-Anything, 86k stars), Repomix Codebase Explorer (yamadashy/repomix, 29k stars) and Code Graph Mermaid Diagrams (trailofbits/skills, 7.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ast Grep?

poteto (a GitHub user) maintains it in poteto/noodle, which has 437 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on March 19, 2026.

Source: poteto/noodle on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.