Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Code Ast Grep

ASecurity

Use ast-grep (sg) for semantic, syntax-aware code searching. Prefer over Grep for code pattern searches that depend on structure rather than text matching. Use when searching for function calls, class definitions, import statements, or any pattern where syntax context matters.

8 stars
0 votes
0 copies
0 views
Added 9/20/2026
developmentjavascripttypescriptpythonrustgojavakotlinbashnodeexpress

Security Analysis

A100/100

Scanned 9/20/2026

Install to Claude Code

$npx -y skills add tstapler/dotfiles --skill code-ast-grep --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Code Ast Grep?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Code Ast Grep
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tstapler-code-ast-grep/badge)](https://www.skillsdirectory.com/skills/tstapler-code-ast-grep)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: code-ast-grep
description: Use ast-grep (sg) for semantic, syntax-aware code searching. Prefer over Grep for code pattern searches that depend on structure rather than text matching. Use when searching for function calls, class definitions, import statements, or any pattern where syntax context matters.
---

# ast-grep: Semantic Code Search

Use `ast-grep` (command: `sg`) for structure-aware code searching. Unlike `Grep` (text search), ast-grep understands syntax and finds patterns by their role in the code, not their textual form.

## When to Use ast-grep vs Grep

| Use `ast-grep` | Use `Grep` |
|----------------|------------|
| Find all calls to a function | Find a string in any file |
| Find class definitions | Search logs or text files |
| Find import statements for a module | Find TODO comments |
| Find all uses of a decorator | Search non-code files (YAML, MD) |
| Find arrow functions vs regular functions | Quick text pattern in known file |
| Search within specific code constructs | Simple identifier search |

## Installation

```bash
brew install ast-grep
```

Verify: `ast-grep --version` or `sg --version`

## Core Usage

### Basic Pattern Search

```bash
# Find pattern in current directory
sg --pattern '<pattern>' --lang <language>

# Search specific directory
sg --pattern '<pattern>' --lang <language> <path>

# Show context lines
sg --pattern '<pattern>' --lang <language> -A 2 -B 2
```

### Language Flag Reference

| Language | Flag |
|----------|------|
| Python | `--lang python` |
| JavaScript | `--lang javascript` |
| TypeScript | `--lang typescript` |
| Java | `--lang java` |
| Kotlin | `--lang kotlin` |
| Rust | `--lang rust` |
| Go | `--lang go` |

## Pattern Syntax

### Metavariables

- `$NAME` — matches any single node (expression, identifier, etc.)
- `$$$NAME` — matches zero or more nodes (variadic)
- `$_` — matches any single node (unnamed/throwaway)

### Examples by Language

**Python — find all calls to a function:**
```bash
sg --pattern 'requests.get($$$)' --lang python
sg --pattern 'print($$$)' --lang python .
```

**Python — find class definitions:**
```bash
sg --pattern 'class $NAME($$$):' --lang python
```

**Python — find decorator usage:**
```bash
sg --pattern '@pytest.mark.parametrize($$$)' --lang python
```

**JavaScript/TypeScript — find async functions:**
```bash
sg --pattern 'async function $NAME($$$) { $$$ }' --lang typescript
```

**JavaScript — find all await expressions:**
```bash
sg --pattern 'await $EXPR' --lang javascript
```

**Java — find method calls:**
```bash
sg --pattern '$OBJ.getLogger($$$)' --lang java
sg --pattern 'log.error($$$)' --lang java
```

**Java — find annotation usage:**
```bash
sg --pattern '@SpringBootTest($$$)' --lang java
```

**General — find TODO comments (any language):**
```bash
sg --pattern '// TODO: $$$' --lang javascript
```

## Common Workflows

### Find All Callers of a Function

```bash
# Python
sg --pattern 'my_function($$$)' --lang python src/

# Java
sg --pattern '$_.myMethod($$$)' --lang java src/
```

### Find All Import/Require Statements

```bash
# Python imports
sg --pattern 'import $MODULE' --lang python
sg --pattern 'from $MODULE import $$$' --lang python

# JS/TS imports
sg --pattern 'import { $$$ } from "$MODULE"' --lang typescript
sg --pattern "require('$MODULE')" --lang javascript
```

### Understand Unfamiliar Codebase

```bash
# What functions are defined?
sg --pattern 'def $NAME($$$):' --lang python src/

# What classes exist?
sg --pattern 'class $NAME:' --lang python src/

# What's being logged?
sg --pattern 'logger.$LEVEL($$$)' --lang python src/
```

### Find Error Handling Patterns

```bash
# Python try/except
sg --pattern 'try: $$$ except $EXC: $$$' --lang python

# Java catch blocks
sg --pattern 'catch ($EXC $VAR) { $$$ }' --lang java
```

## Output Modes

```bash
# Default: show matching lines with file/line
sg --pattern '<pat>' --lang python

# JSON output for scripting
sg --pattern '<pat>' --lang python --json

# Count matches per file
sg --pattern '<pat>' --lang python --stats
```

## Integration with Other Skills

- **Before refactoring**: use `ast-grep` to find all affected sites first
- **Pair with `gritql`**: use ast-grep to search, gritql to transform
- **Replace Grep for code**: whenever the search is about code structure, prefer `sg` over `Grep`

---

## Related Skills

| Skill | When to apply |
|-------|--------------|
| `code-gritql` | Transform code after finding affected sites with ast-grep |
| `code-refactoring` | Orchestrate multi-file renames using ast-grep for scope discovery |
| `code-archaeology` | Understand unfamiliar codebases by searching structure and patterns |

Attribution

tstaplertstapler
View sourceMore from tstapler →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

281612 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2132 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →