commitizen
Python commitizen client tool
What it is and what it does
Commitizen is a CLI tool that standardizes commit messages across a team and automates the release workflow. It enforces Conventional Commits by default, validates commit format, and provides an interactive prompt to guide users through structured commit creation. The core workflow uses a single `cz bump` command to automatically increment version numbers based on commit history (semantic versioning), update version files, generate or update changelogs in Keep a Changelog format, and create git tags—eliminating manual version management and changelog maintenance.
The package integrates with pre-commit hooks for commit-message validation, supports custom commit rules and templates, and includes bash completion via argcomplete. It has 14 runtime dependencies covering interactive prompts (questionary, prompt-toolkit), terminal colors (colorama, termcolor), configuration parsing (tomlkit, pyyaml), templating (jinja2), and packaging metadata (packaging, importlib-metadata). Requires Python 3.10+ and Git 1.8.5.2+.
Use it for:
- Enforce consistent commit message format across a development team to improve git history readability.
- Automate version bumping and changelog generation in CI/CD pipelines to reduce manual release overhead.
- Validate incoming commits via pre-commit hooks to prevent non-standard messages from entering the repository.
- Generate release notes and changelogs automatically from commit history for stakeholder communication.
- Standardize semantic versioning across multiple projects using a shared commit convention.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Commitizen enforces standardized commit messages and automates version bumping, changelog generation, and release management using semantic versioning and Conventional Commits.
Yes. Commitizen is actively maintained (last commit 2026-08-10), has no known vulnerabilities, low install friction, and is widely adopted (top 5000 PyPI packages). It solves a real team workflow problem—standardizing commits and automating releases—with a permissive MIT license. Install it if your team or project needs consistent commit discipline and automated release management.
Install
commitizen on PyPI
pip
pip install commitizenuv
uv add commitizenpoetry
poetry add commitizenInstalling commitizen
Before you install
Low friction: pure Python wheel with 14 runtime dependencies, all common CLI/formatting libraries (questionary, prompt-toolkit, colorama, jinja2, pyyaml). Active maintenance—last commit 2026-08-10, 3497 stars, released 2026-07-29.
License in practice
MIT license (permissive): you can use, modify, and distribute freely in commercial and private projects with minimal restrictions.
Quickstart
pip install commitizen
cz init
cz commit
cz bump
Requires Python 3.10+ and Git 1.8.5.2+.
Verify before relying
- Whether pre-commit hook integration works reliably across all supported shells (Bash, Zsh, Fish, Tcsh).
- Performance impact when used on repositories with very large commit histories.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<4.0,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 14 — questionary, prompt-toolkit, decli, colorama, termcolor, packaging, tomlkit, jinja2, pyyaml, argcomplete, typing-extensions, charset-normalizer, deprecated, importlib-metadata |
| Maintenance | actively maintained — 16 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,578,324/month — #2,572 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: commitizen-4.17.0-py3-none-any.whl
Keywords: commitizen, conventional, commits, git
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
commitlintLints commit messages against the Conventional…
copyleft · top 15,000 on PyPI
gitmanGitman manages nested Git repositories as…
permissive · top 15,000 on PyPI
python-semantic-releaseAutomates semantic versioning and release…
permissive · top 5,000 on PyPI
to-requirements.txtAutomatically synchronizes your project's…
permissive · top 15,000 on PyPI
commit-checkValidates Git commit messages, branch names,…
permissive · top 15,000 on PyPI
conventional-pre-commitA pre-commit hook that validates git commit…
permissive · top 15,000 on PyPI
git-changelogGenerates changelogs automatically from git…
permissive · top 15,000 on PyPI
git-cliffgit-cliff generates changelog files from Git…
unclear · top 15,000 on PyPI
prekprek is a Git hook manager written in Rust that…
permissive · top 1,000 on PyPI
release-tagAutomatically creates and optionally pushes…
permissive · top 15,000 on PyPI