Introduction

About¶
Commitizen is a powerful release management tool that helps teams maintain consistent and meaningful commit messages while automating version management.
What Commitizen Does¶
By enforcing standardized commit conventions (defaulting to Conventional Commits), Commitizen helps teams:
- Write clear, structured commit messages
- Automatically manage version numbers using semantic versioning
- Generate and maintain changelogs
- Streamline the release process
Key Benefits¶
With just a simple cz bump command, Commitizen handles:
- Version Management: Automatically bumps version numbers and updates version files based on your commit history
- Changelog Generation: Creates and updates changelogs following the Keep a changelog format
- Commit Standardization: Enforces consistent commit message formats across your team
This standardization makes your commit history more readable and meaningful, while the automation reduces manual work and potential errors in the release process.
Features¶
- Interactive CLI for standardized commits with default Conventional Commits support
- Intelligent version bumping using Semantic Versioning
- Automatic keep a changelog generation
- Built-in commit validation with pre-commit hooks
- Customizable commit rules and templates
- Multi-format version file support
- Custom rules and plugins via pip
Getting Started¶
Requirements¶
Before installing Commitizen, ensure you have:
Installation¶
Global Installation (Recommended)¶
The recommended way to install Commitizen is using pipx or uv, which ensures a clean, isolated installation:
Using pipx:
# Install Commitizen
pipx install commitizen
# Keep it updated
pipx upgrade commitizen
Using uv:
# Install commitizen
uv tool install commitizen
# Keep it updated
uv tool upgrade commitizen
(For macOS users) Using Homebrew:
brew install commitizen
Project-Specific Installation¶
You can add Commitizen to your Python project using any of these package managers:
Using pip:
pip install -U commitizen
Using conda:
conda install -c conda-forge commitizen
Using Poetry:
# For Poetry >= 1.2.0
poetry add commitizen --group dev
# For Poetry < 1.2.0
poetry add commitizen --dev
Using uv:
uv add --dev commitizen
Using pdm:
pdm add