whatisgithub

What is cz-cli?

commitizen/cz-cli — explained in plain English

Analysis updated 2026-06-24

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

In one sentence

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

What do people build with it?

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.

What is it built with?

JavaScriptNode.jsnpm

How does it compare?

commitizen/cz-clifacebookarchive/fluxfoundry376/mailspring
Stars17,45917,46917,475
LanguageJavaScriptJavaScriptJavaScript
Setup difficultyeasyeasymoderate
Complexity2/53/54/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get 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.

So what is it?

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?

Frequently asked questions

What is cz-cli?

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.

What language is cz-cli written in?

Mainly JavaScript. The stack also includes JavaScript, Node.js, npm.

How hard is cz-cli to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is cz-cli for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.