A curated collection of pre-commit and prek hooks, organized by language and framework.
Auto-generated by pc-init presets β to add or update a hook, open a PR there rather than editing this file directly.
- Common
- Languages
- π© C / C++ (
cpp) - π¨ CSS / SCSS / Sass (
css) - π³ Docker (
docker) - πΉ Go (
go) - πΌοΈ Images (
img) - π¨ JavaScript (
js) - π£ Kotlin (
kt) - π οΈ Makefiles (
make) - π Markdown (
md) - π Jupyter Notebooks (
nb) - π¦ Protocol Buffers (
proto) - π Python (
py) - π R (
r) - π Ruby (
rb) - π¦ Rust (
ru) - π Shell / Bash (
sh) - ποΈ SQL (
sql) - π¦ Swift (
swift) - ποΈ Terraform (
tf) - π§ TOML (
toml) - π· TypeScript (
ts) - π YAML (
yaml)
- π© C / C++ (
- Frameworks
- codespell β check code for common misspellings
- detect-secrets β An enterprise friendly way of detecting and preventing secrets in code.
- gitleaks β Find secrets with Gitleaks π
- jscpd β Copy/paste detector for programming source code, supports 223 formats. AI-ready with token-efficient reporter, skill and MCP server.
- lychee β β‘ Fast, async, stream-based link checker written in Rust. Finds broken URLs and mail addresses inside Markdown, HTML, reStructuredText, websites and more!
- pre-commit-hooks β Some out-of-the-box hooks for pre-commit
- pre-commit-sort β Sort .pre-commit-config.yaml & .pre-commit-hooks.yaml
- semgrep β Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
- talisman β Using a pre-commit hook, Talisman validates the outgoing changeset for things that look suspicious β such as tokens, passwords, and private keys.
- truffleHog β Find, verify, and analyze leaked credentials
- typos β Source code spell checker
- vale β π A markup-aware linter for prose built with speed and extensibility in mind.
- vercheck β Check if a version number is PEP-440 compliant and optionally compare it against a version specified in a python file or the pyproject/cargo.toml
- pre-commit-hooks β C/C++ hooks to integrate with pre-commit
- pre-commit-stylelint β Mirrors all Stylelint releases for the pre-commit hooks framework.
- checkov β Prevent cloud misconfigurations and find vulnerabilities during build-time in infrastructure as code, container images and open source packages with Checkov by Bridgecrew.
- hadolint β Dockerfile linter, validate inline bash, written in Haskell
- pre-commit-golang β Pre-commit hooks for Golang with support for monorepos, the ability to pass arguments and environment variables to all hooks, and the ability to invoke custom go tools.
- oxipng β Multithreaded PNG optimizer written in Rust
- mirrors-oxlint
- mirrors-prettier β mirror of the
prettiernpm package for pre-commit - pre-commit β Biome's pre-commit hooks.
- language-formatters-pre-commit-hooks β Collection of custom pre-commit hooks.
- checkmake β Linter/analyzer for Makefiles
- doctoc β π Generates table of contents for markdown files inside local git repository. Links are compatible with anchors generated by github or other sites.
- markdownlint-cli2 β A fast, flexible, configuration-based command-line interface for linting Markdown/CommonMark files with the markdownlint library
- proselint β A linter for prose.
- rumdl-pre-commit β Pre-commit hook for rumdl, a rust-based Markdown linter.
- nbQA β Run ruff, isort, pyupgrade, mypy, pylint, flake8, and more on Jupyter Notebooks
- nbstripout β strip output from Jupyter and IPython notebooks
- buf β The best way of working with Protocol Buffers.
- absolufy-imports β Automatically convert relative imports to absolute
- bandit β Bandit is a tool designed to find common security issues in Python code.
- blacken-docs β Run
blackon python code blocks in documentation files - complexipy-pre-commit β A pre-commit hook for complexipy.
- deptry.git
- docformatter β Formats docstrings to follow PEP 257
- interrogate β Explain yourself! Interrogate a codebase for docstring coverage.
- mirrors-mypy β Mirror of mypy for pre-commit
- numpydoc β Numpy's Sphinx extensions
- pyprojectsort
- pyrefly-pre-commit β A pre-commit hook for Pyrefly.
- pyupgrade β A tool (and pre-commit hook) to automatically upgrade syntax for newer versions of the language.
- removestar β Tool to automatically replace 'import *' in Python files with explicit imports
- ruff-pre-commit β A pre-commit hook for Ruff.
- ty-pre-commit β A pre-commit hook for ty.
- uv-pre-commit
- validate-pyproject β Validation library for simple check on
pyproject.toml
- precommit β pre-commit hooks for R projects
- rubocop β A Ruby static code analyzer and formatter, based on the community Ruby style guide.
- pre-commit-rust β Rust hooks for pre-commit
- bashate β Code style enforcement for bash programs. Mirror of code maintained at opendev.org.
- pre-commit-shfmt β shfmt hook for prek and pre-commit, with auto install
- shellcheck-py β python3/pip3 wrapper for installing shellcheck
- sqlfluff β A modular SQL linter and auto-formatter with support for multiple dialects and templated code.
- SwiftFormat β A command-line tool and Xcode Extension for formatting Swift code
- SwiftLint β A tool to enforce Swift style and conventions.
- checkov β Prevent cloud misconfigurations and find vulnerabilities during build-time in infrastructure as code, container images and open source packages with Checkov by Bridgecrew.
- pre-commit-terraform β pre-commit git hooks to take care of Terraform configurations πΊπ¦
- taplo-pre-commit β A pre-commit hook for Taplo, a TOML formatter written in Rust
- tombi-pre-commit β A pre-commit hook for Tombi.
- mirrors-eslint β Mirror of eslint node package for pre-commit.
- mirrors-prettier β mirror of the
prettiernpm package for pre-commit - pre-commit β Biome's pre-commit hooks.
- ryl-pre-commit β Pre-commit hook for ryl
- yamlfmt β An extensible command line tool or library to format yaml files.
Recommended language(s): yaml.
- ansible-lint β ansible-lint checks playbooks for practices and behavior that could potentially be improved and can fix some of the most common ones for you
Recommended language(s): py.
- django-codemod β A tool to automatically fix Django deprecations.
- django-upgrade β Automatically upgrade your Django projects.
- django-urlconfchecks β A package for type-checking the URLs and associated views for Django
- djLint β β¨ HTML Template Linter and Formatter. Django - Jinja - Nunjucks - Handlebars - GoLang
- pre-commit-hooks-django β Some useful hooks for Django development
- pytest-mrt β Catch database migration rollback failures before they reach production
- actionlint β
Static checker for GitHub Actions workflow files - check-jsonschema β A CLI and set of pre-commit hooks for jsonschema validation with built-in support for GitHub Workflows, Renovate, Azure Pipelines, and more!
- commit-check β Commit Check enforces commit metadata standards β commit messages, branch naming, committer info, signoff, and more.
- commitizen β Create committing rules for projects π auto bump versions β¬οΈ and auto changelog generation π
- gitlint β Linting for your git commit messages
- zizmor-pre-commit β A pre-commit hook for zizmor.
Recommended language(s): docker, tf.
- kube-linter β KubeLinter is a static analysis tool that checks Kubernetes YAML files and Helm charts to ensure the applications represented in them adhere to best practices.
- kubeconform-helm β Tools to test Helm chats with "kubeconform".
- pre-commit β A collection of pre-commit hooks used by Gruntwork tools
Recommended language(s): js, ts, css.
- local
- rstcheck β Checks syntax of reStructuredText and code blocks nested within it
- rstfmt β A formatter for reStructuredText
- sphinx-lint β Check for stylistic and formal issues in .rst and .py files included in the documentation