macOS
brew install pre-commitlocal Homebrew formula metadata
sudo port install pre-commitMacPorts ports tree · python/pre-commit/Portfile · source: api.github.com
brew / rank 368
Framework for managing multi-language pre-commit hooks. Version 4.6.2 via Homebrew; verified 2026-09-11. Also installable with debian: sudo apt install pre-commit.
install
brew install pre-commitlocal Homebrew formula metadata
sudo port install pre-commitMacPorts ports tree · python/pre-commit/Portfile · source: api.github.com
sudo apk add pre-commitAlpine Linux edge package indexes · pre-commit · source: dl-cdn.alpinelinux.org
sudo apt install pre-commitDebian stable package indexes · pre-commit · source: deb.debian.org
sudo dnf install pre-commitFedora Rawhide package metadata · pre-commit · source: dl.fedoraproject.org
nix profile install nixpkgs#pre-commitnixpkgs package indexes · pkgs/by-name/pr/pre-commit/package.nix · source: api.github.com
sudo pacman -S pre-commitArch Linux sync databases · pre-commit · source: geo.mirror.pkgbuild.com
overview
Framework for managing multi-language pre-commit hooks
history
pre-commit is a framework and multi-language package manager for installing and running reusable Git hooks.
pre-commit began in 2014 to replace copied, project-specific Git-hook scripts with reusable hooks that could be shared across repositories and implemented in different languages. Anthony Sottile has been the principal maintainer.
Version 1.0.0 in 2017 formalized semantic versioning and introduced the modern top-level-map configuration format. The project continued broadening language support and refining isolated toolchain installation, reaching the 4.x series in 2024.
pre-commit became broadly distributed across Linux and macOS package managers in addition to its native Python installation routes. Its language adapters let repositories consume hooks implemented in ecosystems such as Python, Node, Ruby, Go, Rust, Docker, and others without requiring every toolchain to be managed directly by each project.
The framework's configuration convention and reusable hook repositories made it a common integration point for formatters, linters, security checks, and repository-policy tools. It is also routinely run in CI against all files, complementing its local Git-hook role.
A project places .pre-commit-config.yaml at its repository root, listing hook repositories, pinned revisions, and selected hooks. Running pre-commit install writes the Git hook, after which configured checks run during commits or other selected Git stages.
pre-commit run --all-files is commonly used for initial adoption and CI. pre-commit autoupdate refreshes configured hook revisions, while the framework caches isolated hook environments for reuse.
pre-commit describes itself as a multi-language package manager for hooks. That framing is important to package enthusiasts: it resolves hook repositories and revisions, creates isolated environments, bootstraps supported runtimes where possible, and reuses cached installations.
Its ecosystem separates the orchestration framework, hook-provider repositories, and project-local YAML policy. This makes heterogeneous developer tooling reproducible without forcing an application's primary dependency manager to own every linter or formatter.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
local files
These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.
Config paths the tool may read or write during local use.
.pre-commit-config.yamlexecutables
| Command | Kind | Exposure | Note |
|---|---|---|---|
pre-commit | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
install metadata
| Package key | brew:pre-commit |
|---|---|
| Version | 4.6.2 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/pre-commit |
| Homepage | https://pre-commit.com/ |
| Repository | https://github.com/pre-commit/pre-commit |
| Upstream docs | https://pre-commit.com/ |
| License | MIT |
| Source archive | https://files.pythonhosted.org/packages/74/89/1f3e8e1fc3e97de0fa963495832f581f025f29471602a309e48808244292/pre_commit-4.6.2.tar.gz |
| Last updated | 2026-09-11T23:11:18Z |
| Pulse | updated |
| Dependencies | libyaml, python@3.14 |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | pre-commit |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
pre-commit 4.2.0-2
Git pre-commit hook framework
sudo apt install pre-commitpre-commit
nix profile install nixpkgs#pre-commitpre-commit 3.6.2-1
Git pre-commit hook framework
sudo apt install pre-commitpre-commit 4.6.2-r0
framework for managing and maintaining multi-language pre-commit hooks
sudo apk add pre-commitpre-commit-pyc 4.6.2-r0
Precompiled Python bytecode for pre-commit
sudo apk add pre-commit-pycpre-commit 4.6.2-1.fc45
Framework for managing and maintaining multi-language pre-commit hooks
sudo dnf install pre-commitpre-commit 4.6.2-1
A framework for managing and maintaining multi-language pre-commit hooks
https://github.com/pre-commit/pre-commit
sudo pacman -S pre-commitpre-commit
sudo port install pre-commitsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.