docs/quickstart.md
This page helps you get productive with prek in minutes, whether you are migrating from pre-commit or starting from scratch.
First follow the installation guide to install prek on your system.
I already use pre-commit{ .md-button .md-button--primary } I'm new to pre-commit-style tools{ .md-button } {: style="display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; margin:1.5rem 0;" }
Great news - prek is designed as a drop-in replacement, you only need two tweaks:
Replace every pre-commit command in your scripts or documentation with prek. Your existing .pre-commit-config.yaml continues to work unchanged.
$ prek run
trim trailing whitespace.................................................Passed
fix end of files.........................................................Passed
typos....................................................................Passed
cargo fmt................................................................Passed
cargo clippy.............................................................Passed
Reinstall the Git shims once via prek install -f (run this if you previously executed pre-commit install).
From here you can explore what prek adds on top of pre-commit:
Follow this short example to experience how prek automates linting and formatting tasks.
In the root of your repository, add a prek.toml:
[[repos]]
repo = "https://github.com/pre-commit/pre-commit-hooks"
rev = "v6.0.0"
hooks = [
{ id = "check-yaml" },
{ id = "end-of-file-fixer" },
]
This configuration uses the pre-commit-hooks repository and enables two hooks: check-yaml validates YAML files, and end-of-file-fixer ensures every file ends with a newline.
!!! note
`prek.toml` is the native configuration file for **prek**. If you already have a `.pre-commit-config.yaml`, prek can still read it today.
Once you’re happy with your setup, you can stage the config file with git add prek.toml.
Use prek run to execute all configured hooks on the files in your current git staging area:
prek run
Need to run a single hook? Pass its ID, for example prek run check-yaml. You can also target specific files with --files, or run against the entire repository with --all-files.
To run the hooks every time you commit, install prek’s Git shim integration:
prek install
Now every git commit will invoke prek run for the files included in the commit. If you ever want to undo this, run prek uninstall.
That’s it! You now have automated checks running locally with minimal setup. When you’re ready to dive deeper, the rest of the docs cover advanced workflows, language-specific installers, and more.