v0.3.8
j178/prekv0.3.8Mar 23, 2026by github-actions[bot]
AI Summary
This release adds experimental Deno language support and introduces multiple new builtin hooks for file validation, Windows compatibility checks, and VCS permalink verification.
Key Highlights
- Experimental `language: deno` support
- Six new builtin hooks: pretty-format-json, check-vcs-permalinks, check-illegal-windows-names, check-shebang-scripts-are-executable, destroyed-symlinks, file-contents-sorter
- Added `--all` flag to `prek uninstall`
- Validate uv binary after download
- Improved file pattern parse errors
New Features
- Experimental language: deno support
- pretty-format-json builtin hook
- check-vcs-permalinks builtin hook
- check-illegal-windows-names builtin hook
- check-shebang-scripts-are-executable builtin hook
- destroyed-symlinks builtin hook
- file-contents-sorter builtin hook
- --all flag for uninstall
- Validate uv binary after download
Full Release Notes
## Release Notes Released on 2026-03-23. ### Enhancements - Add experimental `language: deno` support ([#1516](https://github.com/j178/prek/pull/1516)) - Add `pretty-format-json` as builtin hook ([#915](https://github.com/j178/prek/pull/915)) - Add `check-vcs-permalinks` as builtin hook ([#1842](https://github.com/j178/prek/pull/1842)) - Add `check-illegal-windows-names` as builtin hook ([#1841](https://github.com/j178/prek/pull/1841)) - Add `check-shebang-scripts-are-executable` builtin hook ([#1847](https://github.com/j178/prek/pull/1847)) - Add `destroyed-symlinks` builtin hook ([#1851](https://github.com/j178/prek/pull/1851)) - Add `file-contents-sorter` as builtin hook ([#1846](https://github.com/j178/prek/pull/1846)) - Add `--all` flag to `prek uninstall` ([#1817](https://github.com/j178/prek/pull/1817)) - Improve file pattern parse errors ([#1829](https://github.com/j178/prek/pull/1829)) - Validate `uv` binary after download ([#1825](https://github.com/j178/prek/pull/1825)) ### Bug fixes - Fix workspace-relative added file paths ([#1852](https://github.com/j178/prek/pull/1852)) - Relax alias-anchor ratio check for check-yaml ([#1839](https://github.com/j178/prek/pull/1839)) ### Contributors - @j178 - @shaanmajid - @mvanhorn - @feliblo - @Tiryoh ## Install prek 0.3.8 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.3.8/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.8/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ### Install prebuilt binaries into your npm project ```sh npm install @j178/prek@0.3.8 ``` ## Download prek 0.3.8 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.3.8/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/prek-aarch64-apple-darwin.tar.gz.sha256) | | [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.3.8/prek-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/prek-x86_64-apple-darwin.tar.gz.sha256) | | [prek-aarch64-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.3.8/prek-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/prek-aarch64-pc-windows-msvc.zip.sha256) | | [prek-i686-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.3.8/prek-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/prek-i686-pc-windows-msvc.zip.sha256) | | [prek-x86_64-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.3.8/prek-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/prek-x86_64-pc-windows-msvc.zip.sha256) | | [prek-aarch64-unknown-linux-gnu.tar.gz](https://github.com/j178/prek/releases/download/v0.3.8/prek-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/prek-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [prek-i686-unknown-linux-gnu.tar.gz](https://github.com/j178/prek/releases/download/v0.3.8/prek-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/prek-i686-unknown-linux-gnu.tar.gz.sha256) | | [prek-riscv64gc-unknown-linux-gnu.tar.gz](https://github.com/j178/prek/releases/download/v0.3.8/prek-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/prek-riscv64gc-unknown-linux-gnu.tar.gz.sha256) | | [prek-s390x-unknown-linux-gnu.tar.gz](https://github.com/j178/prek/releases/download/v0.3.8/prek-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/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.8/prek-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/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.8/prek-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/prek-armv7-unknown-linux-gnueabihf.tar.gz.sha256) | | [prek-aarch64-unknown-linux-musl.tar.gz](https://github.com/j178/prek/releases/download/v0.3.8/prek-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/prek-aarch64-unknown-linux-musl.tar.gz.sha256) | | [prek-i686-unknown-linux-musl.tar.gz](https://github.com/j178/prek/releases/download/v0.3.8/prek-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/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.8/prek-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/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.8/prek-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/prek-arm-unknown-linux-musleabihf.tar.gz.sha256) | | [prek-armv7-unknown-linux-musleabihf.tar.gz](https://github.com/j178/prek/releases/download/v0.3.8/prek-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://github.com/j178/prek/releases/download/v0.3.8/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> ```