clang-tidier
A simple clang-tidy runner for C and C++ projects.
Installation
clang-tidier requires Python 3.8 or higher, as well as some version of clang-tidy visible on the system PATH.
pip3 install clang-tidier
Usage
clang-tidier is a command-line application
usage: clang-tidier [-h] [--version] [--include <regex> [<regex> ...]] [--exclude <regex> [<regex> ...]]
[--werror] [--threads <num>] [--batch num/denom] [--session | --no-session]
[--relative-paths | --no-relative-paths] [--fix | --no-fix]
[--plugins <path...> [<path...> ...]]
[compile_db_path]
clang-tidy runner for C and C++ projects.
positional arguments:
compile_db_path path to compile_commands.json, or a directory containing it (default: discover
automatically)
options:
-h, --help show this help message and exit
--version print the version and exit
--include <regex> [<regex> ...]
regular expression to select source files.
--exclude <regex> [<regex> ...]
regular expression to exclude source files.
--werror stop on the first file that emits warnings
--threads <num> number of threads to use.
--batch num/denom batch subdivisions.
--session, --no-session
saves run information so subsequent re-runs may avoid re-scanning files.
--relative-paths, --no-relative-paths
show paths as relative to CWD where possible.
--fix, --no-fix attempt to apply clang-tidy fixes where possible.
--plugins <path...> [<path...> ...]
one or more plugins to load.
v0.9.0 - github.com/marzer/clang-tidier
Clang-tidy plugins
Clang tidy plugins can be specified in two ways:
- directly using the argument
--plugins(--loadalso works for compatibility withclang-tidy) - indirectly using either environment variables
CLANG_TIDY_PLUGINSorCLANG_TIDIER_PLUGINS
Specifying multiple plugins via environment variable requires delimiting with semicolons. Regular unix-style colon delimiters are also supported on Unix.
Plugins specified on the command-line must exist; the program will exit with an error if they do not. Plugins specified via environment variable will be ignored with a warning if they are not found.
Exit codes
| Value | Meaning |
|---|---|
| 0 | No issues were found |
| 1 | Issues were found |
| -1 | A fatal error occurred |
Changelog
v0.11.2 - 2026/02/26
- Fixed various minor issues introduced by clang-tidy 22
v0.11.1 - 2025/10/22
- Fixed f-string
SyntaxErrorexception on some python versions
v0.11.0 - 2025/10/21
- Added
--pch,--no-pch
v0.10.2 - 2025/10/21
- Fixed
--allow-no-checksbeing passed toclang-tidy< 19.0 - Fixed plugin information being emitted in
--labelsmode - Fixed minor output formatting issues
v0.10.1 - 2025/04/12
- Fixed all errors being disabled being treated as an error
v0.10.0 - 2025/04/04
- Added
--external,--no-external
v0.9.1 - 2025/03/20
- Fixed issues with plugin symlink resolution
v0.9.0 - 2025/03/19
- Added support for reading plugins from environment
- Added diagnostics if a specified plugin does not exist
- Fixed plugin changes not trigging session restarts in some circumstances
v0.8.0 - 2025/03/16
- Added
--plugins
v0.7.2 - 2025/03/11
- Fixed some additional compiler flag-related breakages
v0.7.1 - 2025/02/26
- Fixed some additional compiler flag-related breakages
v0.7.0 - 2025/02/12
- Added
--fix - Fixed clang's
-ftime-tracecausing failures in some cases
v0.6.0 - 2025/02/10
- Added
--relative-pathsto enable relative paths in output - Fixed paths in output always being relative by default
v0.5.2 - 2025/01/30
- Fixed compiler argument slicing regression introduced in v0.5.1
v0.5.1 - 2025/01/29
- Fixed sanitizer and GCC flags breaking clang-tidy in some common cases
v0.5.0 - 2025/01/27
- Added
--batch x/yto enable distributed parallelism - Minor internal fixes
v0.4.1 - 2024/11/19
- Fixed precompiled headers breaking runs in some circumstances
- Improved wording of session restart message
v0.4.0 - 2024/09/07
- Fixed sessions not restarting if
.clang-tidyis modified - Added
--labels-only - Minor performance improvements
v0.3.0 - 2024/08/04
- Added
--no-session - Added use of sessions by default
v0.2.0 - 2024/08/03
- Added
--session
v0.1.2 - 2024/06/06
- Fixed build-generated translation causing 'did not exist or was not a file' errors
- Improved performance of TU enumeration step
v0.1.1 - 2024/05/16
- Fixed issues with older clang-tidy versions trying to use
--use-color
v0.1.0 - 2024/05/09
- First public release 🎉️
Metadata
Release files for clang-tidier 0.11.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| clang_tidier-0.11.2.tar.gz | 17.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| clang_tidier-0.11.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.0 kB
Release files / clang_tidier-0.11.2.tar.gz
| Download URL | clang_tidier-0.11.2.tar.gz |
|---|---|
| Size | 17.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
da560b95e4d7833f41d72ff7cf0581ddefce50285031f7d689fe808a1f0183b7
|
|
BLAKE2b-256 checksum How to use checksums |
1d11f6c0641ccf9dba865b2c831c6b1014e207efa0e32c483990e8724c752a13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / clang_tidier-0.11.2-py3-none-any.whl
| Download URL | clang_tidier-0.11.2-py3-none-any.whl |
|---|---|
| Size | 16.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
576b9373d00e12138e26ae839169b7029bdfddb36ca6169336c1495f5ca50f6e
|
|
BLAKE2b-256 checksum How to use checksums |
318db8fbf91ea80ad23f044eb7b4dfcb693bba25ff328dc4cd4c05d31032d6f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|