explaingit

commitizen/cz-cli

17,459JavaScriptAudience · developerComplexity · 2/5Setup · easy

TLDR

Commitizen is a CLI tool that replaces 'git commit' with an interactive prompt that guides you through writing structured, consistent commit messages, ideal for teams using conventional commits or automated changelog and versioning tools.

Mindmap

mindmap
  root((Commitizen))
    What it does
      Interactive commits
      Structured messages
    How it works
      git cz command
      Adapter plugins
      package.json config
    Adapters
      cz-conventional-changelog
      Custom adapters
    Features
      Git hook integration
      Instant feedback
      Machine-parseable history
    Downstream tools
      semantic-release
      Changelog generators
    Stack
      JavaScript
      Node.js
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Enforce consistent conventional commit message formatting across a team so tools like semantic-release can auto-generate changelogs and version bumps.

USE CASE 2

Guide yourself through writing structured commit messages with interactive prompts instead of memorizing a commit format convention.

USE CASE 3

Wire Commitizen into a git prepare-commit-msg hook so that every plain 'git commit' triggers the interactive prompt automatically.

Tech stack

JavaScriptNode.jsnpm

Getting it running

Difficulty · easy Time to first run · 30min

Requires Node.js 12+ and choosing or configuring an adapter such as cz-conventional-changelog in package.json or a .czrc file.

In plain English

Commitizen is a command-line tool that helps you write consistent commit messages when you use git, the version control system most software teams use to track changes. Instead of typing a free-form commit message and hoping it matches your project's preferred style, you run a command that walks you through the required fields and formats the message for you. The README frames it as a way to get instant feedback at commit time rather than having a server-side hook reject your commit later, or having to dig through a CONTRIBUTING document to find the rules. In practice, once you install it, you commit by typing git cz (or just cz) instead of git commit. If the project has been set up to be Commitizen-friendly, you get an interactive prompt asking for things like the type of change, scope, and a short description, and the message is assembled in the project's required shape. The shape is decided by an adapter chosen by the project. The README walks through setting up the cz-conventional-changelog adapter as the example, which follows the AngularJS commit message convention, the adapter and a small config block are stored in package.json or a .czrc file. You can also wire Commitizen into a git prepare-commit-msg hook so that plain git commit triggers the same interactive flow. Someone would use this when they want clean, machine-parseable commit history, which downstream tools such as semantic-release can use to generate changelogs and version bumps automatically. The tech stack is JavaScript, installed via npm, and tested against Node.js 12, 14, and 16. The full README is longer than what was provided.

Copy-paste prompts

Prompt 1
Set up Commitizen with the cz-conventional-changelog adapter in my Node.js project. Show me the package.json config and how to commit using 'git cz'.
Prompt 2
I want every developer on my team to use Commitizen automatically when they run 'git commit', without typing 'git cz'. How do I configure the prepare-commit-msg hook?
Prompt 3
My project uses Commitizen with cz-conventional-changelog. Show me how to combine it with semantic-release so version numbers and CHANGELOG.md update automatically on merge to main.
Prompt 4
How do I create a custom Commitizen adapter that asks for a ticket number, a change type, and a short description formatted for my team's specific convention?
Open on GitHub → Explain another repo

← commitizen on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.