A framework for managing and maintaining multi-language pre-commit hooks.
pre-commit is a framework for managing and maintaining multi-language pre-commit hooks. It allows developers to automatically run code quality checks, linters, formatters, and other automated tasks before code is committed to version control. The tool solves the problem of inconsistent or missing pre-commit checks across development environments and projects.
Development teams and individual developers working on projects using Git who want to enforce code quality standards and automate repetitive checks before commits.
Developers choose pre-commit because it provides a standardized, language-agnostic way to manage pre-commit hooks with automatic dependency management, parallel execution for speed, and a large ecosystem of community-maintained hooks.
A framework for managing and maintaining multi-language pre-commit hooks.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works with hooks written in any language, including Python, Node.js, Ruby, and shell scripts, allowing teams to use diverse tools without framework constraints.
Manages all hooks from a single .pre-commit-config.yaml file, simplifying setup, version control, and consistency across projects.
Automatically installs and isolates dependencies for each hook, ensuring consistent behavior across different development environments without manual intervention.
Runs hooks in parallel to improve performance, making checks fast enough to execute on every commit without disrupting developer workflow.
Designed exclusively for Git, so it cannot be used with other version control systems, restricting its use in mixed or non-Git environments.
First-time runs require installing dependencies for each hook, which can be slow and resource-intensive, especially for projects with many hooks.
Advanced use cases, such as conditional hooks or specific execution orders, can make the YAML configuration complex and prone to errors, requiring deeper expertise.