skillfed

commitizen

Python commitizen client tool

commitizen v4.17.0 3.6M downloads/30d#2,572 on PyPI3,497
Permissive license MIT Active released

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 commitizen

uv

uv add commitizen

poetry

poetry add commitizen

Installing 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

Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPython

Tags

semantic versioning automationconventional commits enforcementchangelog generationgit release managementcommit message standardizationversion bump automationrelease workflow tool
release-automationgit-workflowsemantic-versioning

More Build Tools packages

Further reading