cpplint
Check C++ files configurably against Google's style guide
Decision gist · record as of 2026-08-14
Yes. Cpplint is actively maintained, has no dependencies, installs easily, and is well-suited for teams adopting Google's C++ style guide. The permissive BSD license and broad Python version support (3.9–3.13) make it a low-risk addition to development workflows. Install via pipx to keep it isolated from project dependencies.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; typically installed via pipx rather than pip to avoid polluting the project environment.
- Low install friction with no runtime dependencies.
- Actively maintained with recent commits and a stable release cadence; supports Python 3.9 through 3.13.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause is permissive and poses no restrictions on commercial or private use; you can use and modify cpplint freely.
last release 2025-04-08 (493 days) · last repo commit 2026-08-14 · 1,842 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 624,130 downloads/mo, #5,702 on PyPI
Alternatives
Verify before relying
pipx install cpplint
cpplint myfile.cpp
# Or as a pre-commit hook in .pre-commit-config.yaml:
# - repo: https://github.com/cpplint/cpplint
# rev: 2.0.0
# hooks:
# - id: cpplint- Whether the fork's feature additions (recursive discovery, custom extensions, JUnit output) are stable and well-tested in production workflows.
- How actively the current maintainers (@aaronliu0130, @jayvdb) respond to issues and pull requests relative to the original Google version.
What it is and what it does
Cpplint is a Python-based linter that enforces Google's C++ style guide on source files. It originated as Google's internal tool but has been maintained as a community fork since Google stopped updating the public version. The tool runs as a command-line utility and can be integrated into pre-commit hooks or CI pipelines to catch style violations early.
The fork modernizes the original tool with Python 3 compatibility, recursive file discovery, customizable file extensions, JUnit XML output, and support for modern C++ features like `#pragma once`. It has no runtime dependencies and installs cleanly on Python 3.9 through 3.13, making it lightweight to add to development workflows.
Use it for
- Enforce consistent C++ code style across a team or project by running cpplint in CI/CD pipelines to reject non-compliant pull requests.
- Integrate cpplint as a pre-commit hook to catch style violations before code is committed, reducing review friction.
- Scan large codebases recursively with custom file extensions to identify style issues across multiple directories and file types.
- Generate JUnit XML reports from cpplint output for integration with test dashboards and quality gates in build systems.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Cpplint is actively maintained, has no dependencies, installs easily, and is well-suited for teams adopting Google's C++ style guide. The permissive BSD license and broad Python version support (3.9–3.13) make it a low-risk addition to development workflows. Install via pipx to keep it isolated from project dependencies.
Install
cpplint on PyPI
Before you install
Low install friction with no runtime dependencies. Actively maintained with recent commits and a stable release cadence; supports Python 3.9 through 3.13.
Requires Python 3.9 or later; typically installed via pipx rather than pip to avoid polluting the project environment.
License in practice
BSD-3-Clause is permissive and poses no restrictions on commercial or private use; you can use and modify cpplint freely.
Quickstart
pipx install cpplint
cpplint myfile.cpp
# Or as a pre-commit hook in .pre-commit-config.yaml:
# - repo: https://github.com/cpplint/cpplint
# rev: 2.0.0
# hooks:
# - id: cpplint
Verify before relying
- Whether the fork's feature additions (recursive discovery, custom extensions, JUnit output) are stable and well-tested in production workflows.
- How actively the current maintainers (@aaronliu0130, @jayvdb) respond to issues and pull requests relative to the original Google version.
Package facts
| License | BSD-3-Clause permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 493 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 624,130 / month, #5,702 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: End Users/DesktopLicense :: Freely DistributableLicense :: OSI Approved :: BSD LicenseNatural Language :: EnglishProgramming Language :: C++Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Software Development :: Quality Assurance |
Evidence: cpplint-2.0.2-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 › “Google C++ style linter”
- cpplintCpplint is a command-line static code checker that scans C/C++ files…
- pydoclintPydoclint is a Python docstring linter that validates whether…
- darglintDarglint is a docstring linter that checks whether function and…
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 tclint · cmakelint · mr-proper · rstcheck · sphinx-lint · flawfinder · gitlint-core · shellcheck-py · yamllint · hadolint-coatl