3.7 KiB
Setup
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
.aicommitsfile in your home directory.
Usage
CLI mode
You can call aicommits directly to generate a commit message for your staged changes:
git add <files...>
aicommits
Git hook
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.
Install
In the Git repository you want to install the hook in:
aicommits hook install
Uninstall
In the Git repository you want to uninstall the hook from:
aicommits hook uninstall
Usage
-
Stage your files and commit:
git add <files...> git commit # Only generates a message when it's not passed inIf 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!
How it works
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.
Future tasks
- Add support for conventional commits as a flag that users can enable
- 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
- Solve latency issue (use a githook to asynchronously run gpt3 call on every git add, store the result in a temp file or in the .git folder). Put behind a flag
- Use gpt-3-tokenizer instead of hard limit on characters as a more accurate model
- Play around with prompt to produce optimal result
- 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
- Add automated github releases using this action
- Build landing page for the 2.0 launch
Maintainers
-
Hassan El Mghari: @Nutlope
-
Hiroki Osame: @privatenumber
