The minimum supported version of Node.js is the latest v14. Check your Node.js version with
node --version
.
-
Install aicommits:
npm install -g @lucavb/aicommits
-
Choose your provider:
For OpenAPI run:
aic config set baseUrl "https://api.openai.com/v1"
For any other provider replace the URL with yours. It needs to be compatible with the OpenAI API.
-
Retrieve your API key from your provider (if necessary) For OpenAI you can find your API Key here
Note: If you haven't already, you'll have to create an account and set up billing.
-
Set the key so @lucavb/aicommits can use it:
aicommits config set apiKey <your token>
This will create a
.aicommits
file in your home directory.
You can upgrade to the latest version by running:
npm update -g @lucavb/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.
For example, you can stage all changes in tracked files with as you commit:
aicommits --stage-all # or -a
๐ย Tip: Use the
aic
alias ifaicommits
is too long for you.
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.
If you'd like to generate Conventional Commits, you can use the --type
flag followed by conventional
. This will prompt aicommits
to format the commit message according to the Conventional Commits specification:
aicommits --type conventional # or -t conventional
This feature can be useful if your project follows the Conventional Commits standard or if you're using tools that rely on this commit format.
-
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!
To retrieve a configuration option, use the command:
aicommits config get <key>
For example, to retrieve the API key, you can use:
To set a configuration option, use the command:
aicommits config set <key>=<value>
For example, to set the API key, you can use:
Required
The API key needed for your provider.
Required
The base URL for the OpenAI API. You can use this to point to a different API endpoint, such as a local development server.
Default: en
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.
Default: 1
The number of commit messages to generate to pick from.
Note, this will use more tokens as it generates more results.
The Chat Completions (/v1/chat/completions
) model to use.
The maximum character length of the generated commit message.
Default: 50
aicommits config set maxLength 100
Default: ""
(Empty string)
The type of commit message to generate. Set this to "conventional" to generate commit messages that follow the Conventional Commits specification:
aicommits config set type conventional
You can clear this option by setting it to an empty string:
aicommits config set type ""
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.
-
Luca Becker: @lucavb
-
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