v0.3.11
j178/prekv0.3.11Apr 27, 2026by github-actions[bot]
AI Summary
This release adds an explicit `shell` option for hook entries to specify which shell (sh, bash, pwsh, powershell, or cmd) should execute the snippet. It also enhances the `auto-update` command with new filtering options including `--include-tag`, `--exclude-tag`, `--exclude-repo`, and `--exit-code` to provide more control over version updates.
Key Highlights
- Added explicit `shell` hook option for entries that should run as shell source (sh, bash, pwsh, powershell, cmd)
- New `auto-update --include-tag` and `--exclude-tag` glob patterns to filter tag candidates
- Added `auto-update --exclude-repo` to skip specific repositories
- Added `auto-update --exit-code` to exit with non-zero when updates are performed
- Made `--hook-dir` optional for hook-impl
New Features
- Explicit `shell` option for hook entries (sh, bash, pwsh, powershell, cmd)
- auto-update --include-tag <pattern> to only consider matching tag names
- auto-update --exclude-tag <pattern> to skip matching tags (e.g., moving tags or prereleases)
- auto-update --exclude-repo <repo> to skip repositories
- auto-update --exit-code to exit with non-zero on updates
- --hook-dir is now optional for hook-impl
- Skip shim warning when --script-version is missing
Full Release Notes
## Release Notes Released on 2026-04-27. ### Highlights Hook entries now have an explicit `shell` option for shell snippets. Set `shell: sh`, `bash`, `pwsh`, `powershell`, or `cmd` when an entry should be evaluated by that shell; leaving it unset keeps prek's direct argv execution. `prek auto-update` can now filter tag candidates before choosing an update. Both options take glob patterns: use `--include-tag` to only consider matching tag names, and `--exclude-tag` to skip matching tags such as moving tags or prereleases. ### Enhancements - Add `auto-update --exclude-repo <repo>` to skip repos ([#1983](https://github.com/j178/prek/pull/1983)) - Add `auto-update --exit-code` to exit with non-zero on updates ([#2002](https://github.com/j178/prek/pull/2002)) - Add `auto-update --include-tag <pattern>`/`--exclude-tag <pattern>` to filter tags ([#1984](https://github.com/j178/prek/pull/1984)) - Adds an explicit `shell` hook option for entries that should run as shell source ([#2004](https://github.com/j178/prek/pull/2004)) - Make `--hook-dir` optional for hook-impl ([#1989](https://github.com/j178/prek/pull/1989)) - Skip shim warning when `--script-version` is missing ([#1990](https://github.com/j178/prek/pull/1990)) ### Bug fixes - Install Ruby executable in gem bin ([#2017](https://github.com/j178/prek/pull/2017)) - Use dedicated Android npm package ([#1982](https://github.com/j178/prek/pull/1982)) - Use stable repo keys without breaking cached clones ([#1995](https://github.com/j178/prek/pull/1995)) ### Documentation - Explain prek name ([#1980](https://github.com/j178/prek/pull/1980)) - Clarify `pass_filenames` concurrency docs ([#1999](https://github.com/j178/prek/pull/1999)) - Reorganize documentation references ([#2005](https://github.com/j178/prek/pull/2005)) - Clarify hook author manifest env docs ([#1991](https://github.com/j178/prek/pull/1991)) - docs: add Sentry to users list ([#1981](https://github.com/j178/prek/pull/1981)) ### Contributors - @j178 ## Install prek 0.3.11 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.3.11/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.3.11/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.3.11 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.3.11/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-aarch64-apple-darwin.tar.gz.sha256) | | [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.3.11/prek-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-x86_64-apple-darwin.tar.gz.sha256) | | [prek-aarch64-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.3.11/prek-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-aarch64-pc-windows-msvc.zip.sha256) | | [prek-i686-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.3.11/prek-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-i686-pc-windows-msvc.zip.sha256) | | [prek-x86_64-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.3.11/prek-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-x86_64-pc-windows-msvc.zip.sha256) | | [prek-aarch64-unknown-linux-gnu.tar.gz](https://github.com/j178/prek/releases/download/v0.3.11/prek-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [prek-i686-unknown-linux-gnu.tar.gz](https://github.com/j178/prek/releases/download/v0.3.11/prek-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-i686-unknown-linux-gnu.tar.gz.sha256) | | [prek-riscv64gc-unknown-linux-gnu.tar.gz](https://github.com/j178/prek/releases/download/v0.3.11/prek-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-riscv64gc-unknown-linux-gnu.tar.gz.sha256) | | [prek-s390x-unknown-linux-gnu.tar.gz](https://github.com/j178/prek/releases/download/v0.3.11/prek-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-s390x-unknown-linux-gnu.tar.gz.sha256) | | [prek-x86_64-unknown-linux-gnu.tar.gz](https://github.com/j178/prek/releases/download/v0.3.11/prek-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [prek-armv7-unknown-linux-gnueabihf.tar.gz](https://github.com/j178/prek/releases/download/v0.3.11/prek-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-armv7-unknown-linux-gnueabihf.tar.gz.sha256) | | [prek-aarch64-unknown-linux-musl.tar.gz](https://github.com/j178/prek/releases/download/v0.3.11/prek-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-aarch64-unknown-linux-musl.tar.gz.sha256) | | [prek-i686-unknown-linux-musl.tar.gz](https://github.com/j178/prek/releases/download/v0.3.11/prek-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-i686-unknown-linux-musl.tar.gz.sha256) | | [prek-x86_64-unknown-linux-musl.tar.gz](https://github.com/j178/prek/releases/download/v0.3.11/prek-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-x86_64-unknown-linux-musl.tar.gz.sha256) | | [prek-arm-unknown-linux-musleabihf.tar.gz](https://github.com/j178/prek/releases/download/v0.3.11/prek-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-arm-unknown-linux-musleabihf.tar.gz.sha256) | | [prek-armv7-unknown-linux-musleabihf.tar.gz](https://github.com/j178/prek/releases/download/v0.3.11/prek-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.11/prek-armv7-unknown-linux-musleabihf.tar.gz.sha256) | ## Verifying GitHub Artifact Attestations The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the [GitHub CLI](https://cli.github.com/manual/gh_attestation_verify): ```sh gh attestation verify <file-path of downloaded artifact> --repo j178/prek ``` You can also download the attestation from [GitHub](https://github.com/j178/prek/attestations) and verify against that directly: ```sh gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation> ```