The minimum supported version of Node.js is the latest v14. Check your Node.js version with
node --version
.
-
Install aicommits:
npm install -g aicommits
-
Retrieve your API key from OpenAI
Note: If you haven't already, you'll have to create an account and set up billing.
-
Set the key so aicommits can use it:
aicommits config set OPENAI_KEY=<your token>
This will create a
.aicommits
file in your home directory.
Check the installed version with:
aicommits --version
If it's not the latest version, run:
npm update -g aicommits
You can call aicommits
directly to generate a commit message for your staged changes:
git add <files...>
aicommits
aicommits
passes down unknown flags to git commit
, so you can pass in commit
flags (with some exceptions (e.g. --all
):
aicommits --dry-run
๐ย Tip: Use the
aic
alias ifaicommits
is too long for you.
You can also integrate aicommits with Git via the prepare-commit-msg
hook. This lets you use Git like you normally would, and edit the commit message before committing.
In the Git repository you want to install the hook in:
aicommits hook install
In the Git repository you want to uninstall the hook from:
aicommits hook uninstall
-
Stage your files and commit:
git add <files...> git commit # Only generates a message when it's not passed in
If you ever want to write your own message instead of generating one, you can simply pass one in:
git commit -m "My message"
-
Aicommits will generate the commit message for you and pass it back to Git. Git will open it with the configured editor for you to review/edit it.
-
Save and close the editor to commit!
This CLI tool runs git diff
to grab all your latest code changes, sends them to OpenAI's GPT-3, then returns the AI generated commit message.
Video coming soon where I rebuild it from scratch to show you how to easily build your own CLI tools powered by AI.
- Add support for conventional commits as a flag that users can enable
- Migrate to chatGPT instead of GPT-3
- Add support for diffs greater than 200 lines by grabbing the diff per file, optional flag
- Add ability to specify a commit message from inside aicommit if user doesn't like generated one
- Play around with prompt to produce optimal result
- Add an alias called
aic
that does "git add . && aicommits && git push" - Add opt-in emoji flag to preface commits with an emoji, use this as a guide
- Add opt-in languages flag where it returns the commit in different languages
- Build landing page for the 2.0 launch
-
Hassan El Mghari: @Nutlope
-
Hiroki Osame: @privatenumber
If you want to help fix a bug or implement a feature in Issues, checkout the Contribution Guide to learn how to setup and test the project.