prek provides multiple installation methods to suit different needs and environments.
The standalone installer automatically downloads and installs the correct binary for your platform:
=== "macOS and Linux"
Use `curl` to download the script and execute it with `sh`:
--8<-- "README.md:linux-standalone-install"
=== "Windows"
Use `irm` to download the script and execute it with `iex`:
--8<-- "README.md:windows-standalone-install"
Changing the [execution policy](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies) allows running a script from the internet.
!!! tip
The installation script may be inspected before use. Alternatively, binaries can be downloaded directly from [GitHub Releases](#github-releases).
--8<-- "README.md:pypi-install"
--8<-- "README.md:homebrew-install"
--8<-- "README.md:mise-install"
prek is published as a Node.js package and can be installed with any npm-compatible package manager:
# npm
npm install -g @j178/prek
# pnpm
pnpm add -g @j178/prek
# bun
bun install -g @j178/prekOr as a project dependency:
npm add -D @j178/prek--8<-- "README.md:nix-install"
--8<-- "README.md:conda-forge-install"
--8<-- "README.md:scoop-install"
--8<-- "README.md:macports-install"
--8<-- "README.md:cargo-binstall"
--8<-- "README.md:asdf-install"
prek provides a Docker image at
ghcr.io/j178/prek.
See the guide on using prek in Docker for more details.
--8<-- "README.md:pre-built-binaries"
--8<-- "README.md:cargo-install"
--8<-- "README.md:self-update"
For other installation methods, follow the same installation steps again.
!!! tip
Run `echo $SHELL` to determine your shell.
To enable shell autocompletion for prek commands, run one of the following:
=== "Bash"
```bash
echo 'eval "$(COMPLETE=bash prek)"' >> ~/.bashrc
```
=== "Zsh"
```bash
echo 'eval "$(COMPLETE=zsh prek)"' >> ~/.zshrc
```
=== "Fish"
```bash
echo 'COMPLETE=fish prek | source' >> ~/.config/fish/config.fish
```
=== "PowerShell"
```powershell
Add-Content -Path $PROFILE -Value '$env:COMPLETE = "powershell"; prek | Out-String | Invoke-Expression; Remove-Item Env:\COMPLETE'
```
Then restart your shell or source the config file.
Release artifacts are signed with GitHub Attestations to provide cryptographic proof of their origin. Verify downloads using the GitHub CLI:
$ gh attestation verify prek-x86_64-unknown-linux-gnu.tar.gz --repo j178/prek
Loaded digest sha256:xxxx... for file://prek-x86_64-unknown-linux-gnu.tar.gz
Loaded 1 attestation from GitHub API
✓ Verification succeeded!
- Attestation #1
- Build repo:..... j178/prek
- Build workflow:. .github/workflows/release.yml@refs/tags/vX.Y.ZThis confirms the artifact was built by the official release workflow.