NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2366 most downloaded on PyPI
Structural Search and Rewrite code at large scale using precise AST pattern.
Last release 1 months ago
31 Aug 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
121 releases · first in 2023
One column per quarter.
chore(deps): update dependency dprint to v0.57.0 #2916
#2916#2917#2913#2912#2908#2906#2720#2909bb74529c6b32d7chore(deps): update astral-sh/setup-uv action to v10 #2892
#2892#2905#2903#2904#2901#2882#2878#2896#2897#2876#2880#2887#2883#2888#2893#28934dc0d3661f1b98912da32fix: match root metavariables against comments #2868
#2868#2861#2864#2865#2833#2839#2848#2854#2849#2860#2850#2851#2852#2855#2853std::io::IsTerminal over atty #2857#28442ac18cafeat: deprecate the sg command #2843
#2843#2842#2834#2838#2810#2829#2837#2831#2790#2795#2819#2801#2802#2817#2809#2808#2789#2793#2794#2791#2821#2803b24ca854f75c2182eb291chore(deps): update rust crate napi to v3.10.3 #2786
#2786#2785#2780#2781#2783#2784#2787#2782#2764#2779#2778#2776#2667#2696#2768#2774#2777#2775#2767#2771#276507778fb1713e86Breaking change: fix: remove fix from SerializableCore #2717
#2763#2762#2761#2727#2677#2758#2759#2757#2756#2755#2754#2753#2751#2750not rule #2676#2749#2748#2747#2746#2745#2744#2678#2731#2743#2739#2738#2737#2729#2726#2724#2723#2722#2721#2719#2718#2717#2716#2715#2714#2713#2711#2712#2710#2709#2701#2704#2708#2703#2702#2700#2693#2692#2694#2698#2699#2695#2672#2680#2691#2690#2686#2689#2682#2683#2688#2687#2684#2674#2673#2670#2671#2666#2665#2664b488bd36f89a3d202d8b8feat: support nth-last-child esquery #2631
#2631#2645#2635#2642#2641#2643#26304021ae0chore(deps): update rust crate tokio to v1.52.3 #2620
#2620#2623#2627#2624#2619#2621#2595#2600#2613#2615#2614#2610#2611#2604#2608#2609#2606#2607#2589#2605#2587#2602#2601#2591#2588#2599#2598#2593#2597#2596#2592#2594#2510#2568#2583#2580#2581#2582#2584#2585#2586#2579fbc5b9b6f09a5b945328achore(deps): update dependency oxlint to v1.58.0 #2569
#2534#2569#2571#2574#2578#2570#2572#2573#2566#2561#2556#2562#2552#2563#2560#2554#2564#2559#2549#2557#2558#2555#2548#2575#25537fa0e3fa017fd5ef7fc1achore(deps): update dependency dprint to v0.53.0 #2547
#2547#2541#2540#2518#2506#2538#2536#2533#2539#2537#2527#2529#2531#2528#2526#2524#2546#2545#2544#2543#25223d903722d69a34c77e38dfix: lsp on change encounter deadlock `#2511`
#2511#2512#2497#2498#2502#2499rule & inline-rules flags #2505#2507#2501#2500#2508#2495#2494#2525a86b2abd23e3340b92e94chore(deps): update pyo3/maturin-action action to v1.50.0 `#2465`
#2465#2491#2469#2492#2486#2484#2483#2489#2488#2482#2481#2475#2474#2476#2470#2479#2467#2471#2472#2468#2466#2473#2458#2438#2457#2455#2462#2463#2459#2461#2454#2452#2447#2437#2446#2442#2445781ec81e645fdf0b2acb9fix: fix error code returning 1 for non-result related error `#2403`
#2403#24324fca101622da371a021bafeat: support --files-with-matches to list all files like ripgrep `#2371`
chore(deps): update dependency @types/node to v24.10.4 `6a429db`
chore: add a link to the badges `#2370`
fix: recognize yaml extension for sgconfig file `#2340`
fix: do not output matched highlight when --update-all `#2317`
feat: LSP quick fix should support expandStart / expandEnd `#2301`
chore(deps): update dependency @napi-rs/cli to v3.2.0 `4fc74cd`
Allowing LSP clients without publish diagnostics data support to support code fixes `#2209`
#2209#2211#2216#22224be82523187d397405f99Improve error messages for ast-grep test failures based on failure type `#2174`
#2174#21528ef8ed6531aac3683f20eadd some tests for hcl `756499e`
fix(deps): update rust crate tokio to v1.47.0 `#2124`
fix: remove json format `90369a4`
feat: support esquery in kind `#2007`
20 July 2025
#2007#2101#2097#1890#2086d815af274e22e261ab759refactor: remove biome configuration and update linting tool to oxlint `ed3e5b1`
feat: support file level suppression `#1541`
feat: support object style libraryPath `#2013`
Breaking change: feat: remove tree-sitter-facade-sg `1e8a38d`
chore(deps): update dependency @ast-grep/napi to v0.38.0 `227bab3`
feat: use newer tower_lsp crate `#1975`
#1975#1969#1956#1967c9b450d8265edb6d5e4e4fix: use docker image instead `#1930`
fix: transformation indent `#1405`
fix: report-style short should not print out diff `#1884`
fix: fix globs not working with lang `#1861`
Breaking change: fix: bump min msrv `846be66`
#1837#1849#1848#1854#1850#1842#143#143#1819846be66083a5f9b9bedf4Breaking change: feat: use php-only-language for php `#900`
#1802#1802#1791#900d91b5c5a7ca599bf5b3a4fix(deps): update dependency @swc/core to v1.10.12 `3eea108`
fix: fix binary command again `2c9034c`
2c9034cfix: fix binary name for npm `#1773`
fix: fix windows error `4e48c9f`
4e48c9fBreaking change: feat: reduce napi binary size `#1759`
cargo binstall #1744#1755#1768#1759#1757#574#1743e5a0a55d7622575944dbffeat: Support passing rule config to SgNode match methods (matches, has, inside, follows, precedes) `#1730`
Breaking change: refactor: move pyo3 registration to CustomLang `4ddb08f`
feat: print fixed rules count `#1708`
#1708#1624#804#1691#16885e3835a8b735cf9a7f3ccfeat: distinguish manual type annotation `4558c48`
fix(deps): update rust crate clap_complete to v4.5.39 `6ad3c7b`
Breaking change: fix: rename range rule's row to line `#1663`
feat: update tree-sitter dependency to 0.24.4 `91a2b46`
Breaking change: feat: support character based column number `#1594`
#1635#1631#1594b87dad72b30f564fb2c52Breaking change: feat: semi-structured tracing output `#1574`
#1574#1585#1575#1570105945eed05be4cd25a62893df63b8803ceBreaking change: feat: support --config in sg new `cfe472f`
#1556#1557#1557#1553#1553#1549#1061cfe472ffb4ac07c11fd89feat: report unused suppression `#1346`
feat: TypeScript types for Rules in NAPI `#1038`
feat: add prettified pattern debug `70d33b5`
feat: add follow symbolic links option to CLI `#1461`
fix: create .gitkeep file in new dirs `#1273`
Your coding agent can read these notes before it upgrades. Set up the MCP server →