UNPKG

auto-commit-ai

Version:

AI-powered tool to automatically generate your git commit messages

224 lines (135 loc) 5.34 kB
## Setup > The minimum supported version of Node.js is the latest v14. Check your Node.js version with `node --version`. 1. Install _autoCommit_: ```sh npm install -g auto-commit-ai ``` 2. Retrieve your API key from [AutoCommit](https://autocommit.top/dashboard) 3. Set the key so autoCommit can use it: ```sh autoCommit config set authtoken=<your authtoken token> ``` This will create a `.autoCommit` file in your home directory. ### Upgrading Check the installed version with: ```sh npm update -g auto-commit-ai ``` ## Usage ### CLI mode You can call `autoCommit` directly to generate a commit message for your staged changes: ```sh git add <files...> autoCommit ``` `autoCommit` passes down unknown flags to `git commit`, so you can pass in [`commit` flags](https://git-scm.com/docs/git-commit). For example, you can stage all changes in tracked files with as you commit: ```sh autoCommit --all # or -a ``` > 👉 **Tip:** Use the `aca` alias if `autoCommit` is 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: ```sh autoCommit --generate <i> # or -g <i> ``` > Warning: this uses more tokens, meaning it costs more. #### Generating Conventional Commits If you'd like to generate [Conventional Commits](https://conventionalcommits.org/), you can use the `--type` flag followed by `conventional`. This will prompt `autoCommit` to format the commit message according to the Conventional Commits specification: ```sh autoCommit --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. ### Git hook You can also integrate _autoCommit_ with Git via the [`prepare-commit-msg`](https://git-scm.com/docs/githooks#_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: ```sh autoCommit hook install ``` #### Uninstall In the Git repository you want to uninstall the hook from: ```sh autoCommit hook uninstall ``` #### Usage 1. Stage your files and commit: ```sh 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"` 2. autoCommit will generate the commit message for you and pass it back to Git. Git will open it with the [configured editor](https://docs.github.com/en/get-started/getting-started-with-git/associating-text-editors-with-git) for you to review/edit it. 3. Save and close the editor to commit! ## Configuration ### Reading a configuration value To retrieve a configuration option, use the command: ```sh autoCommit config get <key> ``` For example, to retrieve the API key, you can use: ```sh autoCommit config get authtoken ``` You can also retrieve multiple configuration options at once by separating them with spaces: ```sh autoCommit config get authtoken generate ``` ### Setting a configuration value To set a configuration option, use the command: ```sh autoCommit config set <key>=<value> ``` For example, to set the API key, you can use: ```sh autoCommit config set authtoken=<your-api-key> ``` You can also set multiple configuration options at once by separating them with spaces, like ```sh autoCommit config set authtoken=<your-api-key> generate=3 locale=en ``` ### Options #### authtoken Required The AutoCommit API key. You can retrieve it from [AutoCommit API Keys page](https://www.autocommit.top/). #### 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. #### timeout The timeout for network requests to the OpenAI API in milliseconds. Default: `10000` (10 seconds) ```sh autoCommit config set timeout=20000 # 20s ``` #### max-length The maximum character length of the generated commit message. Default: `50` ```sh autoCommit config set max-length=100 ``` #### model Default: `deepseek-v3` The AI model to use for generating commit messages. Supported models: - `deepseek-v3` - DeepSeek V3 model - `deepseek-r1` - DeepSeek R1 model - `gemini-2.0` - Google Gemini 2.0 model - `gpt-3.5-turbo` - OpenAI GPT-3.5 Turbo model ```sh autoCommit config set model=deepseek-v3 ``` #### type Default: `""` (Empty string) The type of commit message to generate. Set this to "conventional" to generate commit messages that follow the Conventional Commits specification: ```sh autoCommit config set type=conventional ``` You can clear this option by setting it to an empty string: ```sh autoCommit config set type= ``` ## 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.