Release Notes
Released on 2026-08-27.
Highlights
Choose where hook toolchains come from
language_version now accepts a source preference alongside the version
request, letting you control where prek looks for a compatible toolchain when
it creates a hook environment. Use managed (the default) or system to choose
which source prek tries first while still allowing fallback and downloads. Use
only-managed or only-system to require one source.
For example, this local Ruff hook requires a Python 3.12 toolchain managed by
prek:
repos:
- repo: local
hooks:
- id: ruff
name: ruff
language: python
entry: ruff check
additional_dependencies: [ruff]
language_version:
request: "3.12"
preference: only-managedWith only-managed, prek reuses a compatible toolchain from its managed store
or downloads one when needed. It never falls back to Python from PATH, an OS
package manager, or a version manager, so toolchain selection does not depend on
the developer or CI machine's external environment.
Existing scalar values such as language_version: "3.12" continue to work. See
toolchain management and language_version
for the full source-selection behavior. (#2613)
Breaking changes
The breaking changes in this release are mostly small cleanups, and most users should not be affected.
- Group names can no longer start with
@. This prefix is now reserved for special group selectors such as the new@ungroupedselector. (#2617) PREK_MAX_CONCURRENCYhas been removed. UsePREK_CONCURRENT_HOOKSandPREK_CONCURRENT_BATCHESto control hook and per-hook batch concurrency separately. (#2620)- The top-level
prek init-template-dircommand has been removed. Useprek util init-template-dir, orprek init-templatedirfor drop-in compatibility withpre-commit. (#2623) prek auto-updatehas been removed. Useprek update, orprek autoupdatefor drop-in compatibility withpre-commit. (#2619)
Enhancements
- Add configurable toolchain source preferences (#2613)
- Allow explicit
language: pythonto opt out of fast-path hooks (#2608) - Group
runandupdateoptions in CLI help (#2629) - Preserve terminal theme contrast for status labels (#2592)
- Add
@ungroupedgroup selector (#2617) - Retry uv installation with static musl binary (#2600)
- Support
{hook_repo}placeholder in hookentry(#2602)
Bug fixes
- Expose the git work tree to hooks running outside the git root (#2579)
- Isolate local hook environment installation (#2615)
- Preserve hook config deserialization error locations (#2573)
- Resolve hook log files from their config directory (#2580)
- Track explicit config paths as absolute paths (#2574)
Documentation
Contributors
Install prek 0.5.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.5.0/prek-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.5.0/prek-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install prekDownload prek 0.5.0
| File | Platform | Checksum |
|---|---|---|
| prek-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| prek-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| prek-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| prek-i686-pc-windows-msvc.zip | x86 Windows | checksum |
| prek-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| prek-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| prek-i686-unknown-linux-gnu.tar.gz | x86 Linux | checksum |
| prek-riscv64gc-unknown-linux-gnu.tar.gz | RISCV Linux | checksum |
| prek-s390x-unknown-linux-gnu.tar.gz | S390x Linux | checksum |
| prek-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| prek-armv7-unknown-linux-gnueabihf.tar.gz | ARMv7 Linux | checksum |
| prek-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| prek-i686-unknown-linux-musl.tar.gz | x86 MUSL Linux | checksum |
| prek-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
| prek-arm-unknown-linux-musleabihf.tar.gz | ARMv6 MUSL Linux (Hardfloat) | checksum |
| prek-armv7-unknown-linux-musleabihf.tar.gz | ARMv7 MUSL Linux | checksum |
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:
gh attestation verify <file-path of downloaded artifact> --repo j178/prekYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>