gitzy🪄
Interactive conventional commits cli, inspired by git-cz with the ability to leverage commitlint configuration, configuration validation, versatile configuration 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 v18.
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 but provides various configuration methods and options
You can use a gitzy
object in your package.json
, or the following files: .gitzyrc
, .gitzyrc.json
, .gitzyrc.yaml
, .gitzyrc.yml
, .gitzyrc.js
, .gitzyrc.cjs
, gitzy.config.js
, or gitzy.config.cjs
,
- all the files can also live under a
.config/
directory
Options
breakingChangeEmoji
feat: ✨ dope new feature
BREAKING CHANGE: 💥 breaks stuff
breakingChangeEmoji: '💥'
closedIssueEmoji
fix: 🐛 resolved nasty bug
🏁 Closes: #123
closedIssueEmoji: '🏁'
issuesHint
Allows you to customize the issues
prompt hint
issuesHint:
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 |