Table of Contents
Setup
-
Install
pnpm add -g @hirotomoyamada/ai-commit
-
Obtain your API key from OpenAI.
-
Set your API key in ai-commit
.
ai-commit config set apiKey=<your token>
Upgrading
To check the installed version, run the following:
ai-commit --version
To install the latest version, run the following:
pnpm up -g aicommit --latest
Usage
To generate a commit message, run the following:
ai-commit
[!TIP]
ai-commit
provides a shortened alias aic
.
When you run ai-commit
, two scenarios may occur:
-
If there are files staged:
- AI detects the differences in the staged files and generates a commit message.
- Once you review and approve the generated commit message, it will be committed.
-
If there are changed files not yet staged:
- A list of changed files will be displayed.
- You select the files to add to the stage from the list.
- AI detects the differences in the newly staged files and generates a commit message.
- Once you review and approve the generated commit message, it will be committed.
[!TIP]
To add all changed files not currently staged to the stage (with git add .
), set the --all
or -a
option.
Changing the Commit Message Suggestions
To change the commit message suggestions, set the --generate <i>
or -g <i>
option. The default is set to 1
.
ai-commit --generate 5
[!NOTE]
You can set up to a maximum of 5
suggestions.
Many projects have rules for commit messages based on Conventional Commits. If you want to apply these rules, set conventional
with the --type
or -t
option.
ai-commit --type conventional
[!NOTE]
By setting it in the configuration, you can always apply the Conventional Commits commit message rules.
Configuration
To get the configuration, run the following:
ai-commit config get
To get specific items only, run the following:
ai-commit config get generate locale
To set values in the configuration, run the following:
ai-commit config set generate=5 type=conventional
To reset the configuration values, run the following:
ai-commit config reset
Item | Default | Description |
---|
apiKey | undefined | API key generated from OpenAI |
generate | 1 | Number of commit messages to generate |
locale | en | Locale used for generating commit messages |
timeout | 10000 | Timeout for network requests to OpenAI (milliseconds) |
type | undefined | Type of commit message to generate |
model | gpt-4 | OpenAI model used for generating commit messages |
maxLength | 50 | Maximum character length of the generated commit message |
Prompt
To get the prompt, run the following:
ai-commit prompt get
The default prompt is as follows:
Generate a concise git commit message written in present tense for the following code diff with the given specifications below:
Message language: {{ locale }}
Commit message must be a maximum of {{ maxLength }} characters.
Exclude anything unnecessary such as translation. Your entire response will be passed directly into git commit.
{{ commitType }}
The output response must be in format:
{{ commitRule }}
[!NOTE]
{{ locale }}
and {{ maxLength }}
will be replaced with the values set in the configuration.
To update the prompt, run the following:
ai-commit prompt set
To reset the prompt, run the following:
ai-commit prompt reset
License
MIT © Hirotomo Yamada