If you work on Python projects, you've probably used pre-commit — running black, ruff, mypy before every git commit, blocking anything that doesn't meet the standard. This workflow is well-established in the Python ecosystem.

For C/C++ projects, it's a different story.

The official mirrors-clang-format hook only handles formatting. If you want clang-tidy for static analysis, you're on your own. Features like compilation database auto-detection, version pinning, or auto-fix? Not even on the radar.

cpp-linter-hooks fills this gap. It provides both clang-format and clang-tidy hooks in a single pre-commit repo, along with the supporting capabilities that C/C++ projects actually need.

Why Not Just Use mirrors-clang-format?