An interactive CLI for creating conventional commits, built on cocogitto and inspired by cz-cli.
- Create conventional commits with ease
- Use alongside cocogitto for automatic versioning, changelog generation, and more
- Use emoji
- Autocomplete for commit scope
- Run as a git hook
- Custom commit types
curl -sS https://webinstall.dev/koji | bash
cargo install --locked koji
Be sure to have git installed first.
The basic way to use koji is as a replacement for
enforcing the conventional commit
standard by writing your commit through an interactive prompt.
# Do some work cd dev/koji git add README.md # Commit your work koji
koji --help for more options.
Using as a git hook
An alternative way to use koji is as a git hook,
running it any time you run
.git/hooks/prepare-commit-msg with the following code:
#!/bin/bash exec < /dev/tty && koji --hook || true
npx husky add .husky/prepare-commit-msg "exec < /dev/tty && koji --hook || true
Add this to your
prepare-commit-msg = "exec < /dev/tty && koji --hook || true"
Similar should work for any hook runner, just make sure you're using
it with the
When using it as a hook, any message passed to
git commit -m will be used
for the commit summary. Writing your commit as a conventional commit,
git commit -m "feat(space): delete some stars", will bypass
Config files are prioritized in the following order:
- Passed in via
.koji.tomlin the working directory
- The default config
- Description: Prepend the commit summary with relevant emoji based on commit type.
emoji = true
- Description: Enables auto-complete for scope prompt via scanning commit history.
autocomplete = true
- Description: A list of commit types to use instead of the default.
[[commit_types]] name = "feat" emoji = "✨" description = "A new feature"