Install
$ agentstack add skill-outlinedriven-odin-codex-plugin-ast-grep ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
ast-grep (sg)
ast-grep is a fast and polyglot tool for code searching, linting, and rewriting based on Abstract Syntax Trees (AST). It excels at structural search and replace where regex fails.
When to use
- Structural Search: Finding code based on structure (e.g., "all function calls to
foowith 2 arguments") regardless of whitespace. - Refactoring: Renaming variables, changing function signatures, or transforming code patterns safely.
- Linting: Creating custom rules to enforce code style or best practices.
- Code Analysis: Extracting information from codebases.
Quick Start
CLI Basics
# Search (pattern must be in single quotes)
ast-grep -p '$A + $B' --lang ts
# Rewrite (dry run)
ast-grep -p '$A != null' --rewrite '$A' --lang ts
# Interactive Rewrite
ast-grep -p 'var $A = $B' --rewrite 'const $A = $B' --interactive
Pattern Syntax
- Meta-variables:
$VARmatches any single node. - Multi-meta-variables:
$$$ARGSmatches zero or more nodes (list of items). - Wildcard:
$_matches any node (non-capturing). - Anonymous:
$$matches any list of nodes (non-capturing).
See [Pattern Syntax](references/pattern-syntax.md) for details.
Core Concepts
Understanding Named vs Unnamed nodes and Matching Strictness is crucial for precise patterns.
- Named Nodes:
identifier,function_definition(matched by$VAR). - Unnamed Nodes:
(,),;(skipped by default insmartmode). - Strictness: Control matching precision (
smart,cst,ast,relaxed,signature).
See [Core Concepts](references/core-concepts.md) for details.
Rule Configuration (YAML)
For complex tasks, use YAML configuration files.
id: no-console-log
language: TypeScript
rule:
pattern: console.log($$$ARGS)
inside:
kind: function_declaration
stopBy: end
fix: '' # Remove the log
See [Rule Configuration](references/rule-config.md) for details.
Advanced Rewriting
ast-grep supports complex transformations (regex replace, case conversion) and rewriters for sub-node transformation.
See [Rewriting & Transformations](references/rewriting.md) for details.
Project Setup & Testing
For larger projects, organize rules and tests using sgconfig.yml.
- Scaffold:
ast-grep new project - Config:
sgconfig.ymldefines rule and test directories. - Testing: Define
validandinvalidcases to ensure rule accuracy.
See [Project Setup & Testing](references/project-setup.md) for details.
Utility Rules
Reuse logic with local or global utility rules. Enables recursive matching.
utils:
is-literal:
any: [{kind: string}, {kind: number}]
rule:
matches: is-literal
See [Utility Rules](references/utility-rules.md) for details.
Configuration Reference
Full reference for YAML fields (id, severity, files, ignores) and supported languages.
See [Configuration Reference](references/yaml-reference.md) for details.
CLI Reference
Common commands: scan, run, new, test, lsp.
See [CLI Reference](references/cli.md) for details.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: OutlineDriven
- Source: OutlineDriven/odin-codex-plugin
- License: Apache-2.0
- Homepage: https://outlinedriven.github.io
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.