NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1020 most downloaded on PyPI
A fast Git hook manager written in Rust, designed as a drop-in alternative to pre-commit, reimagined.
Last release 5 days ago
13 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 57 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
1 years old
84 releases · first in 2025
One column per month.
Implement check-symlinks as builtin hook
Released on 2025-10-16.
check-symlinks as builtin hook (#895)detect-private-key as builtin hook (#893)UV_MANAGED_PYTHON (#900)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.9/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.2.9/prek-installer.ps1 | iex"
brew install j178/tap/prek
npm install @j178/prek@0.2.9
*This is a re-release of 0.2.6 that fixes an issue where publishing to npmjs.com failed.*
Released on 2025-10-14.
This is a re-release of 0.2.6 that fixes an issue where publishing to npmjs.com failed.
.pre-commit-config.yaml (#871)--cd in the generated hook script (#868)rev rendering for "float-like" version numbers (#867)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.8/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.2.8/prek-installer.ps1 | iex"
brew install j178/tap/prek
npm install @j178/prek@0.2.8
Nothing published for this version
Nothing published for this version
Add fallback mechanism for prek executable in git hooks
Released on 2025-10-10.
prek try-repo (#797)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.5/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.2.5/prek-installer.ps1 | iex"
brew install j178/tap/prek
Add support for .prekignore to ignore directories from project discovery
Released on 2025-10-07.
.prekignore to ignore directories from project discovery (#826)prek auto-update --jobs default to 0 (which uses max available parallelism) (#833)prek run --files a b c d (#828)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.4/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.2.4/prek-installer.ps1 | iex"
brew install j178/tap/prek
Add a security policy for reporting vulnerabilities
Released on 2025-09-29.
--dry-run to prek auto-update (#806)--log-file flag to specify the log file path (#817)fail entry into output directly (#811)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.3/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.2.3/prek-installer.ps1 | iex"
brew install j178/tap/prek
Add prek cache dir, move prek gc and prek clean under prek cache
Released on 2025-09-26.
prek cache dir, move prek gc and prek clean under prek cache (#795)PREK_UV_SOURCE (#766)--init (#791)--allow-multiple-documents for check-yaml (#790)j178/prek-action in docs (#753)pre-commit-hooks in sample-config to v6.0.0 (#761)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.2/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.2.2/prek-installer.ps1 | iex"
brew install j178/tap/prek
auto-update: prefer tags that are most similar to the current version
git --no-pager diff command syntax upon failures (#746)git check-attr (#731)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.1/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.2.1/prek-installer.ps1 | iex"
brew install j178/tap/prek
This is a huge milestone release that introduces Workspace Mode — first‑class monorepo support.
This is a huge milestone release that introduces Workspace Mode — first‑class monorepo support.
prek now allows you to manage multiple projects with their own .pre-commit-config.yaml within a single repository.
It auto‑discovers nested projects, runs hooks in project scope, and provides flexible selectors to target specific projects and hooks.
This makes prek a powerful tool for managing pre-commit hooks in complex repository structures.
For more details, see Workspace Mode. If you encounter any issues, please report them at Issues.
Note: If you ran prek install in a repo before, you gonna need to run prek install again to replace the old git hook scripts for the workspace mode to work.
Special thanks to @potiuk and @hugovk for all the help and feedback in designing and testing this feature!
For detailed changes between 0.1.6 and 0.2.0, see 0.2.0-alpha.2, 0.2.0-alpha.3, 0.2.0-alpha.4, and 0.2.0-alpha.5.
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.0/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.2.0/prek-installer.ps1 | iex"
brew install j178/tap/prek
Add built in byte-order-marker fixer
trailing-whitespace & mixed-line-ending write file path (#708)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.0-alpha.5/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.2.0-alpha.5/prek-installer.ps1 | iex"
brew install j178/tap/prek
Bring back .pre-commit-config.yml support
.pre-commit-config.yml support (#676)prek install/install-hooks/hook-impl (#683)check_toml and check_yaml in workspace mode (#688)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.0-alpha.4/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.2.0-alpha.4/prek-installer.ps1 | iex"
brew install j178/tap/prek
Add a warning to hook-impl when the script needs reinstall
hook-impl when the script needs reinstall (#647)prek install when upgrading to 0.2.0 (#646)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.0-alpha.3/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.2.0-alpha.3/prek-installer.ps1 | iex"
brew install j178/tap/prek
*This is a re-release of 0.2.0-alpha.1, fixed an issue that prereleases are not published to PyPI.*
This is a re-release of 0.2.0-alpha.1, fixed an issue that prereleases are not published to PyPI.
This is a huge milestone release that introduces Workspace Mode — first‑class monorepo support.
prek now allows you to manage multiple projects with their own .pre-commit-config.yaml within a single repository. It auto‑discovers nested projects, runs hooks in project scope, and provides flexible selectors to target specific projects and hooks. This makes prek a powerful tool for managing pre-commit hooks in complex repository structures.
Note: If you ran prek install in a repo before, you gonna need to run prek install again to replace the old git hook scripts for the workspace mode to work.
For more details, see Workspace Mode. If you encounter any issues, please report them at Issues.
Special thanks to @potiuk for all the help and feedback in designing and testing this feature!
.pre-commit-config.yaml in a workspace (monorepo mode) (#583)prek run --cd <dir> to change directory before running (#581)prek list in workspace mode (#586)prek install|install-hooks|hook-impl|init-template-dir in workspace mode (#595)auto-update in workspace mode (#605)auto-update implementation (#608)--dry-run flag to prek run (#622)hook-impl allow missing config (#600)https://prek.j178.dev (#627)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.0-alpha.2/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.2.0-alpha.2/prek-installer.ps1 | iex"
brew install j178/tap/prek
Improve hook install concurrency
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.1.6/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.1.6/prek-installer.ps1 | iex"
brew install j178/tap/prek
Implement pre-commit-hooks:check_yaml as builtin hook
pre-push hook type (#598)pre-commit-hooks:check_yaml as builtin hook (#557)pre-commit-hooks:check-toml as builtin hook (#564)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.1.5/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.1.5/prek-installer.ps1 | iex"
brew install j178/tap/prek
Avoid unnecessary allocation in run_by_batch
trailing-whitespace cannot handle file contains invalid utf-8 data (#544)Who are using prek (#550)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.1.4/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.1.4/prek-installer.ps1 | iex"
brew install j178/tap/prek
Support PEP 723 scripts for Python hooks
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.1.3/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.1.3/prek-installer.ps1 | iex"
brew install j178/tap/prek
Add check for missing hooks in new revision
language: script entry join issue (#525)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.1.2/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.1.2/prek-installer.ps1 | iex"
brew install j178/tap/prek
Support local path as a repo url
.yml config file (#493)prek auto-update (#511)repo url (#513)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.1.1/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.1.1/prek-installer.ps1 | iex"
brew install j178/tap/prek
Nothing published for this version
Build wheels for more platforms
git commit -a does not pick up staged files correctly (#487)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.0.29/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.0.29/prek-installer.ps1 | iex"
brew install j178/tap/prek
Fix inde.lock file exists error when running git commit -p or git commit -a
inde.lock file exists error when running git commit -p or git commit -a (#482)init-templdate-dir and directory related bug (#484)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.0.28/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.0.28/prek-installer.ps1 | iex"
brew install j178/tap/prek
| File | Platform | Checksum |
|---|---|---|
| prek-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| prek-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| prek-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| prek-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
Clone repo temporarily into scratch directory
language_version: lts for node (#473)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.0.27/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.0.27/prek-installer.ps1 | iex"
brew install j178/tap/prek
| File | Platform | Checksum |
|---|---|---|
| prek-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| prek-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| prek-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| prek-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
Disable prek self update for package managers
prek self update for package managers (#468)uv alongside the prek binary (#466)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.0.26/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.0.26/prek-installer.ps1 | iex"
brew install j178/tap/prek
| File | Platform | Checksum |
|---|---|---|
| prek-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| prek-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| prek-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| prek-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
Add check for minimum_prek_version
minimum_prek_version (#437)--to-ref default to HEAD if --from-ref is specified (#426)$PREK_HOME/prek.log (#447)mixed_line_ending as builtin hook (#444)--output-format=json in prek list (#446)fix_trailing_whitespace (#411)liblzma (#445)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.0.25/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.0.25/prek-installer.ps1 | iex"
brew install j178/tap/prek
| File | Platform | Checksum |
|---|---|---|
| prek-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| prek-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| prek-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| prek-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
Add dynamic completion of hook ids
prek list to list available hooks (#424)pygrep language support (#383)prek run multiple hooks (#423)check_json as builtin hook (#416)fix_end_of_file and make it consistent with pre-commit-hooks (#399)GOROOT and GOPATH for system found go (#415)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.0.24/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.0.24/prek-installer.ps1 | iex"
brew install j178/tap/prek
| File | Platform | Checksum |
|---|---|---|
| prek-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| prek-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| prek-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| prek-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
In this release, we've renamed the project to prek from prefligit. It's shorter so easier to type, and it avoids typosquatting with preflight.
In this release, we've renamed the project to prek from prefligit. It's shorter so easier to type, and it avoids typosquatting with preflight.
This means that the command-line name is now prek, and the PyPI package is now listed as prek.
And the Homebrew will be updated to prek as well.
And previously, the cache directory was ~/.cache/prefligit, now it is ~/.cache/prek.
You'd have to delete the old cache directory manually, or run prefligit clean to clean it up.
Then uninstall the old prefligit and install the new prek from scratch.
Really sorry for the inconvenience!
prek from prefligit (#402)curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.0.23/prek-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.0.23/prek-installer.ps1 | iex"
brew install j178/tap/prek
| File | Platform | Checksum |
|---|---|---|
| prek-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| prek-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| prek-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| prek-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
Your coding agent can read these notes before it upgrades. Set up the MCP server →