# What changed in @ast-grep/cli

> 33 changes in @ast-grep/cli 0.45 to 0.51 from its official release notes, upgrade guides and advisories: 6 breaking, 2 security, 10 new APIs and options. Each one cited. Sources checked 2026-11-11. HTML: https://unstale.sh/npm/@ast-grep/cli/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @ast-grep/cli 0.51

### Breaking changes

- The command fails when IDs are unmatched or when no tests run. (0.51.2) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.2)
- The convert transform no longer splits words at digits. (0.51.2) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.2)
- LSP columns are reported in UTF-16 code units. (0.51.2) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.2)
- Unknown top-level keys in rule config are rejected. (0.51.1) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.1)

### Security

- A memory corruption issue with web-tree-sitter 0.26 is fixed. (0.51.1) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.1)

### New APIs and options

- Project config now supports no-ignore. (0.51.1) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.1)

### Behavior and default changes

- The inspect entity output now reports skipped files and the reason each file was skipped. (0.51.1) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.1)

### Tooling

- CLI binaries are now distributed for musl Linux. (0.51.2) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.2)
- The project setup hint now uses the ast-grep name. (0.51.0) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.0)

### Fixes and other changes

- A dollar sign followed by a digit remains literal in fix templates. (0.51.1) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.1)
- Special characters in GitHub format output are escaped. (0.51.1) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.1)
- Matching for macOS universal2 wheels is fixed. (0.51.1) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.1)
- Only metavariable sigils are replaced with the expando character. (0.51.1) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.1)
- Utility directories are bound for rules supplied through --inline-rules and --rules. (0.51.1) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.1)
- The SARIF log version is set to 2.1.0. (0.51.1) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.1)
- File paths in SARIF URIs are percent-encoded. (0.51.1) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.1)
- Files are preserved when update-all writes fail. (0.51.0) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.51.0)

## @ast-grep/cli 0.50

### Breaking changes

- Custom language loading now uses a policy, and custom language libraries require opt-in. (0.50.0) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.50.0)
- Schema validation now rejects null relation fields. (0.50.0) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.50.0)

### Security

- The CLI can trust and revoke custom language policies. (0.50.0) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.50.0)

### New APIs and options

- Java outline rules were added for annotation types and elements. (0.50.0) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.50.0)
- An outline rule was added for Java enum members. (0.50.0) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.50.0)
- An outline rule was added for Java module declarations. (0.50.0) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.50.0)
- An outline rule was added for Java record declarations. (0.50.0) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.50.0)
- Outline rules were added for Java wildcard imports. (0.50.0) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.50.0)
- Zig support was added. (0.50.0) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.50.0)

### Fixes and other changes

- C/C++ declarator identifier names are now captured. (0.50.0) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.50.0)
- Java private and protected fields are now reported in the outline. (0.50.0) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.50.0)

## @ast-grep/cli 0.45

### New APIs and options

- Adds Markdown heading support to outline. (0.45.3) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.45.3)
- Adds a CLI option to set the minimum severity. (0.45.3) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.45.3)
- Adds namedChildren support to the napi API. (0.45.2) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.45.2)

### Fixes and other changes

- Fixes the ordering requirement for ast-grep-ignore to take effect. (0.45.3) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.45.3)
- Anchors fallback signatures to names. (0.45.3) — [release notes](https://github.com/ast-grep/ast-grep/releases/tag/0.45.3)
