CheckOps home

Tools directory

P

CheckOps

pre-commit

pre-commit is an MIT framework for managing multi-language Git pre-commit hooks, running linters, formatters and checks before code is committed and in CI.

Visit website

Latest public signals

Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.

Visit Website

Introduction

pre-commit is a framework for managing and maintaining multi-language pre-commit hooks. A .pre-commit-config.yaml file lists hook repositories and versions, and pre-commit installs each hook in its own isolated environment, whether it is written in Python, Node, Go, Rust, Ruby or runs in Docker.

Once installed with pre-commit install, hooks run on staged files at every commit, so formatting and lint errors are fixed before review. pre-commit run --all-files runs the same checks in CI, and pre-commit autoupdate bumps hook versions.

In the quality loop pre-commit pushes cheap checks to the earliest possible moment.

The source code is at pre-commit/pre-commit on GitHub under the MIT licence, with about 15,700 stars; the most recent commit was on 9 November 2026.

Features

  1. Multi-language hooks: Isolated environments per hook.
  2. Pinned versions: Reproducible hook versions in config.
  3. Staged-file runs: Checks only what you commit.
  4. CI mode: Run all hooks on all files.
  5. Large hook ecosystem: Hooks for most popular linters.
  6. Hosted service: pre-commit.ci can run and autofix in pull requests.

Pros

  1. Consistency: Everyone runs the same checks locally.
  2. Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
  3. Actively maintained: The repository had commits as recent as 9 November 2026.
  4. Community: About 15,700 GitHub stars.

Cons

  1. Can be bypassed: --no-verify skips hooks, so CI must enforce them too.
  2. First-run cost: Installing environments takes time.
  3. Slow hooks hurt: Heavy checks make commits sluggish.
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v6.0.0
    hooks: [ { id: trailing-whitespace }, { id: check-yaml } ]
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.17.4
    hooks: [ { id: ruff }, { id: ruff-format } ]
pre-commit install && pre-commit run --all-files

Resources:

Pricing

pre-commit is free and open source under the MIT licence.

  1. Any team that wants consistent local checks.
  2. Polyglot repositories needing many linters.

Conclusion

pre-commit is the simplest way to make linters and formatters run everywhere.

Keep hooks fast, and run the same config in CI.

On CheckOps, pre-commit is filed under the Release & CI gates stage. Related tools listed here include SonarQube, MegaLinter, Super-Linter, reviewdog, Qlty and Codacy. A short trial on a real project, with your own code, data and pipeline, is usually the fastest way to choose between them, because fit matters more than feature lists. Facts here come from the official site, documentation and repository, checked on 11 November 2026.

Alternatives

Other tools on CheckOps that cover similar ground. Open a page, or compare one with pre-commit side by side.