Skip to content

init

The cz init command helps you set up Commitizen in your project by creating a configuration file with your preferred settings.

Usage

cz init --help

Command

cz init

Interactive Configuration

When you run cz init, Commitizen will guide you through an interactive setup process:

init

Configuration File

The initialization process will create a configuration file in your project root.

See Configuration File for more details.

Configuration Options

During the initialization process, you'll be prompted to configure the following settings:

  1. Convention Rules: Select the commit message convention to follow (e.g., conventional commits)
  2. Version Provider: Choose how to manage versioning in your project. Commitizen supports multiple version management systems:
    • commitizen: Uses Commitizen's built-in version management system
    • npm: Manages version in package.json for Node.js projects
    • cargo: Manages version in Cargo.toml for Rust projects
    • composer: Manages version in composer.json for PHP projects
    • pep621: Uses pyproject.toml with PEP 621 standard
    • poetry: Uses pyproject.toml with Poetry configuration
    • uv: Uses pyproject.toml and uv.lock for Python projects
    • scm: Reads version directly from git tags without modifying files
  3. Project Version: The current version of your project will be detected automatically
  4. Tag Format: The format used for version tags in your repository
  5. Version Type: Choose between:
    • semver or semver2: Semantic Versioning (MAJOR.MINOR.PATCH)
    • pep440: Python Package Versioning
  6. Changelog Generation: Configure whether to automatically generate changelog during version bumps
  7. Alpha Versioning: Option to keep major version at 0 for alpha/beta software
  8. Pre-commit Hooks: Set up Git hooks for automated commit message validation. If neither pre-commit nor prek is on PATH, the hook question is skipped. If you choose to install hooks, Commitizen uses whichever of those tools is available. If both are installed, you are asked which one to use.

See Configuration Options for more details.

Example

# Start the initialization process
cz init

# Follow the interactive prompts to configure your project

Next Steps

After initialization, you can:

  1. Start using cz commit to create conventional commits
  2. Use cz bump to manage versioning
  3. Configure additional settings in your project's configuration_file