aicommits-lxr-version v0.0.0-semantic-release
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 aicommitsRetrieve 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.
Upgrading
Check the installed version with:
aicommits --versionIf it's not the latest version, run:
npm update -g aicommitsUsage
CLI mode
You can call aicommits directly to generate a commit message for your staged changes:
git add <files...>
aicommitsaicommits 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 --all # or -a👉 Tip: Use the
aicalias ifaicommitsis 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.
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 installUninstall
In the Git repository you want to uninstall the hook from:
aicommits hook uninstallUsage
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!
Configuration
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_KEYYou can also retrieve multiple configuration options at once by separating them with spaces:
aicommits config get OPENAI_KEY generateSetting 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=enOptions
OPENAI_KEY
Required
The OpenAI API key. You can retrieve it from OpenAI API Keys page.
locale
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.
generate
Default: 1
The number of commit messages to generate to pick from.
Note, this will use more tokens as it generates more results.
proxy
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=model
Default: gpt-3.5-turbo
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.
timeout
The timeout for network requests to the OpenAI API in milliseconds.
Default: 10000 (10 seconds)
aicommits config set timeout=20000 # 20smax-length
The maximum character length of the generated commit message.
Default: 50
aicommits config set max-length=100How 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.
Maintainers
- Hassan El Mghari: @Nutlope
- Hiroki Osame: @privatenumber
Contributing
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.
2 years ago