# Installation prek provides multiple installation methods to suit different needs and environments. ## Standalone Installer 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). ## Package Managers ### PyPI --8<-- "README.md:pypi-install" ### Homebrew (macOS/Linux) --8<-- "README.md:homebrew-install" ### mise --8<-- "README.md:mise-install" ### npm prek is published as a [Node.js package](https://www.npmjs.com/package/@j178/prek) and can be installed with any npm-compatible package manager: ```bash # npm npm install -g @j178/prek # pnpm pnpm add -g @j178/prek # bun bun install -g @j178/prek ``` Or as a project dependency: ```bash npm add -D @j178/prek ``` ### Nix --8<-- "README.md:nix-install" ### Conda --8<-- "README.md:conda-forge-install" ### Scoop (Windows) --8<-- "README.md:scoop-install" ### Winget (Windows) --8<-- "README.md:winget-install" ### MacPorts --8<-- "README.md:macports-install" ### cargo-binstall --8<-- "README.md:cargo-binstall" ## Docker prek provides a Docker image at [`ghcr.io/j178/prek`](https://github.com/j178/prek/pkgs/container/prek). See the guide on [using prek in Docker](integrations.md#docker) for more details. ## GitHub Releases --8<-- "README.md:pre-built-binaries" ## Build from Source --8<-- "README.md:cargo-install" ## prek skill for agents --8<-- "README.md:gh-skill-install" ## Updating --8<-- "README.md:self-update" For other installation methods, follow the same installation steps again. ## Shell Completion !!! 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. ## Artifact Verification Release artifacts are signed with [GitHub Attestations](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations) to provide cryptographic proof of their origin. Verify downloads using the [GitHub CLI](https://cli.github.com/): ```console $ 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.Z ``` This confirms the artifact was built by the official release workflow.