| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| shfmt_v3.13.0_darwin_amd64 | 2026-03-09 | 3.1 MB | |
| shfmt_v3.13.0_darwin_arm64 | 2026-03-09 | 3.0 MB | |
| shfmt_v3.13.0_linux_386 | 2026-03-09 | 2.9 MB | |
| shfmt_v3.13.0_linux_amd64 | 2026-03-09 | 3.1 MB | |
| shfmt_v3.13.0_linux_arm | 2026-03-09 | 3.1 MB | |
| shfmt_v3.13.0_linux_arm64 | 2026-03-09 | 3.0 MB | |
| shfmt_v3.13.0_windows_386.exe | 2026-03-09 | 3.1 MB | |
| shfmt_v3.13.0_windows_amd64.exe | 2026-03-09 | 3.3 MB | |
| README.md | 2026-03-09 | 2.1 kB | |
| v3.13.0 source code.tar.gz | 2026-03-09 | 253.5 kB | |
| v3.13.0 source code.zip | 2026-03-09 | 294.7 kB | |
| Totals: 11 Items | 25.2 MB | 4 | |
This release introduces support for Zsh in the parser and formatter, which was tracked in issue [#120] alongside the label https://github.com/mvdan/sh/labels/zsh. While support is not complete, it should be far enough for many use cases.
This release also drops support for Go 1.24 and includes many other enhancements:
- cmd/shfmt
- Exit with a non-zero status when
-lprints any filenames shfmt -versionis now derived from the git current tag, dropping the-ldflagsworkaround- syntax
- New nodes types and node fields are introduced alongside
LangZsh LangVariantis now a bitset, allowing the use of sets like "Bash-like"- Add
InteractiveSeqandStmtsSeqiterator methods forParser - Stop exposing the internal buffer in
Printervia struct embedding - Support the use of brace expansions like
declare {a,b}_c=value - Fix a bug where POSIX and Bash incorrectly allowed empty command lists
- interp
- Add support for
shopt -s dotglobandshopt -s extglob - Add support for simple uses of
!(expr)extended glob patterns - Support more builtin flags for
declare,type,read - Fix various bugs relating to nulls, errors, and arrays
- expand
- Add
Config.DotGlobandConfig.ExtGlobfor the interpreter - Add
Variable.Flagsto get the one-characterdeclareflags - Do not force env vars on Windows to be uppercase
- Fix various bugs relating to glob pattern matching
- pattern
- Add
GlobLeadingDotandExtendedOperatorsfor the interpreter - Add
NegExtGlobErrorto mark the use of!(expr)negation patterns
Consider becoming a sponsor if you benefit from the work that went into this release!
Binaries built on go version go1.26.1 linux/amd64 with:
CGO_ENABLED=0 go build -trimpath -ldflags="-w -s"
Note that this release no longer includes a sha256sums.txt asset; GitHub now provide digests natively.