ava-commit
is a command-line tool that uses ChatGPT to generate git commit messages automatically. It leverages the capabilities of AI to produce informative, human-like messages. This was created as a
fun pet project while I couldn't sleep and has proven to be really
useful in my day-to-day workflow. I hope you find it useful too!
Using AI to write your commit messages. It's like having an AI pair programmer assisting you with your commits!
npm install @sethwebster/ava-commit
ava-commit [options]
Command | Options | Explanation |
---|---|---|
update |
None | Checks for updates |
release-notes |
None | Generates release notes based on what's changed since the most recent tag |
configure |
None | Configures the tool |
generate |
-a, --all |
Generates a commit message for all commits, not just staged |
-v, --verbose |
Generates a commit message with verbose output | |
-l, --length |
Generates a commit message with a targeted max summary length. Default is 80 characters if not set. | |
--all |
Generates a commit message for all files, bypassing the check for staged files | |
--length |
Generates a commit message targeting a specific max summary of characters |
To update the tool:
ava-commit update
To generate release notes:
ava-commit release-notes
To configure the tool:
ava-commit configure
To generate a commit message with all defaults for staged files:
ava-commit generate
To generate a commit message for all commits, not just staged:
ava-commit generate --all
To generate a verbose commit message:
ava-commit generate --verbose
To generate a commit message with a targeted max summary length:
ava-commit generate --length 150
To configure ava-commit, you can use the configure
command. This will guide you through a series of prompts to customize the tool's settings according to your needs. This flow will run automatically the first time you run the ava-commit
.
- Alias - Personally, I use an alias in my
.zshrc
ofac
to streamline. It works well with my workflow to set thegenerate --all
option on my alias as I generally don't do half-commits. Hopefully you don't miss the "Active Time Accounting (ac)" tool too much. 🤪 - Workflow - This is a general workflow suggestion but working in smaller changes leads to better results. While Ava can figure out larger commit sets it gets harder the larger the set is.
Please be aware that ava-commit, like any AI, may not always generate perfect commit messages. It is intended to be a tool to aid with your development process, but should not be relied upon for mission-critical applications without human review.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
MIT