1.0.6 • Published 3 months ago

@hirotomoyamada/ai-commit v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

AI Commit

NPM Minizip NPM Downloads GitHub Github Stars

AI generates git commit messages on your behalf.

Table of Contents

Setup

  1. Install

    pnpm add -g @hirotomoyamada/ai-commit
  2. Obtain your API key from OpenAI.

  3. 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 @hirotomoyamada/ai-commit --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:

  1. 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.
  2. 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.

Applying Conventional Commits

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
ItemDefaultDescription
apiKeyundefinedAPI key generated from OpenAI
generate1Number of commit messages to generate
localeenLocale used for generating commit messages
timeout10000Timeout for network requests to OpenAI (milliseconds)
typeundefinedType of commit message to generate
modelgpt-4OpenAI model used for generating commit messages
maxLength50Maximum 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