Mirror of a less douchy and much faster git-cz with emojis
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
semantic-release-bot 298e69c2fb chore(release): 4.0.0 [skip ci] 1 day ago
bin perf: ⚡️ build cz prompter into one file for performace 1 year ago
build docs: ✏️ add config to README 1 year ago
docs docs: ✏️ add example 1 year ago
lib refactor: 💡 use `join` to concatenate paths 1 day ago
test test: 💍 add tests for formatMessage() function 1 day ago
.eslintrc.json chore: add travis building process 3 years ago
.git-cz.json fix: 🐛 don't add emoji to head only when "disableEmoji" is true 6 months ago
.gitignore feat: 🎸 build binaries 8 months ago
.npmignore docs: ✏️ add example 1 year ago
.travis.yml ci: 🎡 update semantic-release configuration 1 day ago
CHANGELOG.md chore(release): 4.0.0 [skip ci] 1 day ago
README.md feat: 🎸 added disableEmojis on config 7 months ago
index.js perf: ⚡️ build cz prompter into one file for performace 1 year ago
package.json ci: 🎡 remove NPM semantic-release plugin for on release 1 day ago
renovate.json chore: configure renovate 9 months ago
run.js refactor: move /src -> /lib and create run.js 1 year ago
yarn.lock chore: 🤖 update yarn.lock 1 day ago


Commitizen friendly



Without installation

npx git-cz

Install globally standalone

npm install -g git-cz

Install locally with Commitizen

npm install -g commitizen
npm install --save-dev git-cz


  "config": {
    "commitizen": {
      "path": "git-cz"


git cz

Install globally with Commitizen

npm install -g commitizen git-cz
commitizen init git-cz --save-dev --save-exact


git cz

Custom config

You can provide custom configuration in changelog.config.js file in your repo. Below is default config:

module.exports = {
  "disableEmoji": false,
  "list": [
  "maxMessageLength": 64,
  "minMessageLength": 3,
  "questions": [
  "scopes": [],
  "types": {
    "chore": {
      "description": "Build process or auxiliary tool changes",
      "emoji": "🤖",
      "value": "chore"
    "ci": {
      "description": "CI related changes",
      "emoji": "🎡",
      "value": "ci"
    "docs": {
      "description": "Documentation only changes",
      "emoji": "✏️",
      "value": "docs"
    "feat": {
      "description": "A new feature",
      "emoji": "🎸",
      "value": "feat"
    "fix": {
      "description": "A bug fix",
      "emoji": "🐛",
      "value": "fix"
    "perf": {
      "description": "A code change that improves performance",
      "emoji": "⚡️",
      "value": "perf"
    "refactor": {
      "description": "A code change that neither fixes a bug or adds a feature",
      "emoji": "💡",
      "value": "refactor"
    "release": {
      "description": "Create a release commit",
      "emoji": "🏹",
      "value": "release"
    "style": {
      "description": "Markup, white-space, formatting, missing semi-colons...",
      "emoji": "💄",
      "value": "style"
    "test": {
      "description": "Adding missing tests",
      "emoji": "💍",
      "value": "test"

Commit Message Format

  • A commit message consists of a header, body and footer.
  • The header has a type and a subject:
<type>[(<scope>)]: <emoji> <subject>
[breaking changes]

The header is the only mandatory part of the commit message.

The first line (type + subject) is limited to 50 characters [enforced]

Any other line should be limited to 72 character [automatic wrapping]

This allows the message to be easier to read on GitHub as well as in various git tools.


Must be one of the following:

  • test — Adding missing tests
  • feat — A new feature
  • fix — A bug fix
  • chore — Build process or auxiliary tool changes
  • docs — Documentation only changes
  • refactor — A code change that neither fixes a bug or adds a feature
  • style — Markup, white-space, formatting, missing semi-colons…
  • ci — CI related changes
  • perf — A code change that improves performance


The subject contains succinct description of the change:

  • Use the imperative, present tense: “change” not “changed” nor “changes”
  • No dot (.) at the end.


Just as in the subject, use the imperative, present tense: “change” not “changed” nor “changes”. The body should include the motivation for the change and contrast this with previous behavior.

Affects [only on lerna environments]

Select the packages the commit affected.

Breaking Changes

Breaking Changes must start with the words BREAKING CHANGE:.


The footer is the place to reference any tasks related to this commit.

Why this Fork?

npm i -g git-cz
added 1 package in 0.612s

Installs in 0.6s vs 31.1s.

npm i -g mol-conventional-changelog
added 345 packages in 31.076s