pyclang
A python clang-tidy runner
Decision gist · record as of 2026-08-14
Yes, if you need to run clang-tidy from Python or automate it in a build pipeline. Low install friction, permissive license, no known vulnerabilities, and active maintenance make it a safe choice. Verify that clang-tidy itself is available on your system and that esp-pylib meets your environment requirements.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires clang-tidy to be installed and available on the system PATH; typically part of LLVM/Clang toolchain.
- Low install friction; pure Python wheel with only two runtime dependencies (esp-pylib and rich).
- Active maintenance with a release 32 days ago.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute this package freely provided you include the license notice.
last release 2026-07-13 (32 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 489,584 downloads/mo, #6,375 on PyPI
Alternatives
Verify before relying
pip install pyclang
import os
from pyclang import Runner
runner = Runner(['/path/to/code'])
runner.idf_reconfigure().normalize()
runner()- Whether clang-tidy version compatibility is documented or constrained
- Whether esp-pylib and rich are optional or always required at runtime
- Performance characteristics when analyzing large codebases
What it is and what it does
Pyclang is a Python wrapper around clang-tidy, the LLVM static analysis tool for C and C++. It provides a chainable API to orchestrate clang-tidy runs across directories, allowing you to compose analysis workflows programmatically—configure the build environment, filter files, run the analysis, and normalize results—without writing shell scripts. The package includes a built-in command-line script (idf_clang_tidy) for ESP-IDF projects that chains common steps automatically.
The core design centers on the Runner class: you instantiate it with a list of directories, chain method calls to define your analysis pipeline, then invoke the instance to execute all steps. You can also subclass Runner and use the @chain decorator to add custom analysis steps. It depends on esp-pylib for environment handling and rich for terminal output formatting.
Use it for
- Automate clang-tidy analysis in CI/CD pipelines for C/C++ projects without writing shell wrappers
- Run static analysis on ESP-IDF projects using the predefined idf_clang_tidy script with standard workflow steps
- Build custom analysis workflows by chaining Runner methods to configure, filter, and normalize code quality checks
- Integrate clang-tidy into Python-based build systems or project management tools that need programmatic control
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to run clang-tidy from Python or automate it in a build pipeline.
Low install friction, permissive license, no known vulnerabilities, and active maintenance make it a safe choice. Verify that clang-tidy itself is available on your system and that esp-pylib meets your environment requirements.
Install
pyclang on PyPI
Before you install
Low install friction; pure Python wheel with only two runtime dependencies (esp-pylib and rich). Active maintenance with a release 32 days ago.
Requires clang-tidy to be installed and available on the system PATH; typically part of LLVM/Clang toolchain.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute this package freely provided you include the license notice.
Quickstart
pip install pyclang
import os
from pyclang import Runner
runner = Runner(['/path/to/code'])
runner.idf_reconfigure().normalize()
runner()
Verify before relying
- Whether clang-tidy version compatibility is documented or constrained
- Whether esp-pylib and rich are optional or always required at runtime
- Performance characteristics when analyzing large codebases
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesesp-pylibrich |
| Maintenance | Actively maintained 32 days since the last release |
| First released | |
| Downloads | 489,584 / month, #6,375 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: pyclang-0.7.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “clang-tidy runner python”
- pyclangPyclang wraps clang-tidy to run static analysis checks on C/C++ code…
- clang-tidyPackages the clang-tidy C++ linter and related LLVM tools as a…
- clangd-tidyclangd-tidy wraps clangd to provide faster static analysis of C++…
Give your agent the search over MCP, or paste the wish link into any chat.
More Quality Assurance packages
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
Ruff is a Python linter and code formatter written in Rust that combines linting, formatting, and code fixing into a single tool, replacing Flake8, Black, isort, and related utilities.
Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.
Black reformats Python source code to a consistent style by parsing entire files and rewriting them according to an opinionated, deterministic set of rules, eliminating manual formatting decisions.
pytest-xdist distributes pytest tests across multiple CPU cores or machines to speed up test execution, with the simplest usage being `pytest -n auto` to spawn workers equal to available CPUs.
Install it if your test suite takes long enough that parallelization would save meaningful time.
Validates AWS CloudFormation templates in YAML or JSON format against resource provider schemas and best practices, checking property values and configuration correctness.
Install it if you work with CloudFormation templates.
See also clang-tidy · clangd-tidy · bash · lit · robotcode-runner · libclang · undecorated · style · cdk-gitlab-runner · just-bin