A CLI that writes your git commit messages for you with AI. Never write a commit message again.
The minimum supported version of Node.js is the latest v14. Check your Node.js version with
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.
Check the installed version with:
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 passes down unknown flags to
git commit, so you can pass in
For example, you can stage all changes in tracked files with as you commit:
aicommits --all # or -a
👉Tip: Use the
aicommitsis too long for you.
Generate multiple recommendations
Sometimes the recommended commit message isn't the best so you want it to generate a few to pick from. You can generate multiple commit messages at once by passing in the
--generate <i> flag, where 'i' is the number of generated messages:
aicommits --generate <i> # or -g <i>
Warning: this uses more tokens, meaning it costs more.
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!
Reading a configuration value
To retrieve a configuration option, use the command:
aicommits config get <key>
For example, to retrieve the API key, you can use:
aicommits config get OPENAI_KEY
You can also retrieve multiple configuration options at once by separating them with spaces:
aicommits config get OPENAI_KEY generate
Setting a configuration value
To set a configuration option, use the command:
aicommits config set <key>=<value>
For example, to set the API key, you can use:
aicommits config set OPENAI_KEY=<your-api-key>
You can also set multiple configuration options at once by separating them with spaces, like
aicommits config set OPENAI_KEY=<your-api-key> generate=3 locale=en
The OpenAI API key. You can retrieve it from OpenAI API Keys page.
The locale to use for the generated commit messages. Consult the list of codes in: https://wikipedia.org/wiki/List_of_ISO_639-1_codes.
The number of commit messages to generate to pick from.
Note, this will use more tokens as it generates more results.
Set a HTTP/HTTPS proxy to use for requests.
To clear the proxy option, you can use the command (note the empty value after the equals sign):
aicommits config set proxy=
The Chat Completions (
/v1/chat/completions) model to use. Consult the list of models available in the OpenAI Documentation.
Tip: If you have access, try upgrading to
gpt-4for next-level code analysis. It can handle double the input size, but comes at a higher cost. Check out OpenAI's website to learn more.
The timeout for network requests to the OpenAI API in milliseconds.
10000 (10 seconds)
aicommits config set timeout=20000 # 20s
The maximum character length of the generated commit message.
aicommits config set max-length=100
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.