@xynogen/pix-astgrep

Pi extension — AST-aware structural search and symbol reads (ast-grep, opt-in)

Packages

Package details

extensionskill

Install @xynogen/pix-astgrep from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@xynogen/pix-astgrep
Package
@xynogen/pix-astgrep
Version
0.4.1
Published
Nov 13, 2026
Downloads
1,579/mo · 484/wk
Author
xynogen
License
MIT
Types
extension, skill
Size
42.5 KB
Dependencies
4 dependencies · 4 peers
Pi manifest JSON
{
  "skills": [
    "./skills"
  ],
  "extensions": [
    "src/extension.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pix-astgrep

AST-aware structural code search, symbol reads, and rewrites for Pi, built on ast-grep. Match code by its syntax tree with metavariables ($A, $$$ARGS) instead of text regex, read one named symbol without loading a whole file, and rank files by identifier.

Standalone and opt-in — not bundled by pix-core, so the ast tool schema is only present when you install it. Needs the @ast-grep/napi native addon (a dependency, installed with the package).

Tool

One deferred tool, ast, with six actions. The bundled pix-astgrep skill (read_skills(name="pix-astgrep", full=true)) shows the outline-then-symbol read pattern and safe rewrites.

Action Purpose
search Structural search by pattern, e.g. foo($A) or useState($$$).
replace AST-aware rewrite (pattern → rewrite). Preview (line diff) by default; apply:true writes atomically.
outline Syntax-only outline of a file or dir — declarations, imports, exports with line numbers.
symbol Exact source of one named symbol (function, class, type, enum, const).
enclosing Smallest named declaration that encloses a line — the reverse of symbol.
symbols Rank files by how often they contain the query identifiers (AND-matched).

Languages

Six grammars are bundled and always work: typescript, tsx, javascript, jsx, css, html.

Other languages (python, go, rust, java, c, cpp, and more) work in every tool. search and replace take them through lang; the file actions detect them from the file extension. The matching @ast-grep/lang-* grammar installs on demand into the pix cache prefix after your consent — it never touches a global path or this package's node_modules.

Install

pi install npm:@xynogen/pix-astgrep

Standalone and opt-in. @xynogen/pix-core does not bundle it. It needs the @ast-grep/napi native addon.

Full distro

This package is part of Pix. The installer sets up Pi and the full distro. See Install for the notes for each OS.

# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/xynogen/pix-mono/main/scripts/install.sh | sh
# Windows
irm https://raw.githubusercontent.com/xynogen/pix-mono/main/scripts/install.ps1 | iex

License

MIT