gitzy🪄
Interactive conventional commits cli, inspired by git-cz with the ability to leverage commitlint configuration, configuration validation, versatile configuration through cosmiconfig and more.

Table of Contents
Usage
The current version of gitzy
is fully supported on active LTS versions of node, and requires at least node v14.
If you need node v12 support, use gitzy
version 2.x or if you need node v10 support, use gitzy
version 1.x
Quick start
$ npx gitzy
Getting Started
$ npm install -g gitzy
$ gitzy
$ gitzy -p -a
$ gitzy -m "added cool new feature" -t "feat" -s "amazing"
$ gitzy -lD --no-emoji
Configuration
By default gitzy
comes ready to run out of the box.
This supports cosmiconfig, so you can customize with either a gitzy
key in your package.json, or just create a .gitzyrc.json
, .gitzyrc.yml
, gitzy.config.js
, etc. in your project or .config/
directory.
Options
breakingChangeEmoji
feat: ✨ dope new feature
BREAKING CHANGE: 💥 breaks stuff
breakingChangeEmoji: '💥'
closedIssueEmoji
fix: 🐛 resolved nasty bug
🏁 Closes: #123
closedIssueEmoji: '🏁'
issuesPrefix
Allows you to choose the issuesPrefix
based on Github supported keywords.
issuesPrefix: closes
disableEmoji
Disable all emojis, overrides breakingChangeEmoji
, closedIssueEmoji
and emoji
options
disableEmoji: false
details
Allows you to further configure cli and git message output based on type
.
Default emojis follow standards set by gitmoji
details:
chore:
description: Other changes that don't modify src or test files
emoji: '🤖'
ci:
description: Changes to CI configuration files and scripts
emoji: '👷'
docs:
description: Add or update documentation.
emoji: '📝'
feat:
description: A new feature
emoji: '✨'
fix:
description: Fix a bug.
emoji: '🐛'
perf:
description: Improve performance.
emoji: '⚡️'
refactor:
description: Refactor code.
emoji: '♻️'
release:
description: Deploy stuff.
emoji: '🚀'
revert:
description: Revert changes.
emoji: '⏪'
style:
description: Improve structure / format of the code.
emoji: '🎨'
test:
description: Add or update tests.
emoji: '✅'
headerMaxLength: 64
headerMinLength: 3
questions
Allows you to toggle questions.
questions:
- type
- scope
- subject
- body
- breaking
- issues
scope
question will not be turned if there's no scopes
scopes
Allows you to provide list of scopes
to choose from.
scopes: []
Will enable scope
question if scopes are provided.
types
Allows you to provide list of types
to choose from. Can be further configured through Details
.
types:
- chore
- docs
- feat
- fix
- refactor
- test
- style
- ci
- perf
- revert
- release
useCommitlintConfig
Will leverage Commitlint's configuration instead for these options:
useCommitlintConfig: false
Flags
flag | alias | description |
---|
--breaking | -b | skip "breaking" question and provide your own "breaking" message |
--body | -d | skip "body" question and provide your own "body" message |
--help | -h | display help for command |
--issues | -i | skip "issues" question and provide your own "issue" message |
--subject | -m | skip "subject" question and provide your own "subject" message |
--passthrough | -p | subsequent command line args passed through to git |
--scope | -s | skip "scope" question and provide your own "scope" message |
--type | -t | skip "type" question and provide your own "type" message |
--dry-run | -D | output the git message but do not commit |
--version | -v | output the version number |
--commitlint | -l | leverage commitlint's configuration |
--skip | -S | skip questions |
--no-emoji | | disable all emojis |
--retry | -r | retries previous commit, skips all prompts |