UNPKG

auto-commit-ai

Version:

AI-powered tool to automatically generate your git commit messages

178 lines (119 loc) 4.66 kB
## Setup > The minimum supported version of Node.js is the latest v14. Check your Node.js version with `node --version`. 1. Install `aca`: ```sh npm install -g auto-commit-ai ``` 2. Authenticate using browser: ```sh aca auth ``` Opens browser for authentication. For manual entry: ```sh aca auth --manual ``` 3. (Optional) Configure settings: ```sh aca config ``` Interactive interface to customize model, locale, commit type, etc. ### Upgrading Check the installed version with: ```sh aca --version ``` Upgrade to the latest version: ```sh npm update -g auto-commit-ai ``` ## Usage ### CLI mode You can call `aca` directly to generate a commit message for your staged changes: ```sh git add <files...> aca ``` `aca` passes down unknown flags to `git commit`, so you can pass in [`commit` flags](https://git-scm.com/docs/git-commit). #### Available CLI flags - **Stage all changes**: Stage all tracked file changes before committing ```sh aca --all # or -a ``` - **Generate multiple options**: Generate multiple commit messages to choose from ```sh aca --generate 3 # or -g 3 ``` > Warning: this uses more tokens, meaning it costs more. - **Exclude files**: Exclude specific files from AI analysis ```sh aca --exclude "*.lock" --exclude "dist/*" # or -x ``` #### Commit message types Configure via `aca config`: - **None**: Standard commit messages - **Conventional**: [Conventional Commits](https://conventionalcommits.org/) format (feat:, fix:, etc.) - **Gitmoji**: Commit messages with emojis 😄 ### Git hook Integrate `aca` with Git via the [`prepare-commit-msg`](https://git-scm.com/docs/githooks#_prepare_commit_msg) hook. Use Git normally and edit commit messages before committing. #### Install In the Git repository you want to install the hook in: ```sh aca hook install ``` #### Uninstall In the Git repository you want to uninstall the hook from: ```sh aca 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. `aca` 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 ### Interactive Configuration ```sh aca config ``` React-based terminal interface to: - Configure authentication token - Choose AI models and commit types - Set language preferences - Adjust timeout and message length - Get real-time validation and descriptions ### Authentication Commands ```sh aca auth # Browser-based authentication (recommended) aca auth --manual # Manual token entry ``` ### Options #### Configuration Options | Option | Default | Description | |--------|---------|-------------| | **authtoken** | _(required)_ | AutoCommit API authentication token | | **locale** | `en` | Language locale for commit messages ([ISO 639-1 codes](https://wikipedia.org/wiki/List_of_ISO_639-1_codes)) | | **generate** | `1` | Number of commit messages to generate (1-5) | | **type** | `conventional` | Commit message format: `none`, `conventional`, `gitmoji` | | **model** | `deepseek-v3` | AI model to use (see supported models below) | | **timeout** | `30000` | Request timeout in milliseconds | | **max-length** | `50` | Maximum commit message length | #### Supported AI Models - **deepseek-v3** - DeepSeek V3 model (default) - **deepseek-r1** - DeepSeek R1 model - **gemini-2.0** - Google Gemini 2.0 model - **gpt-4-turbo** - OpenAI GPT-4 Turbo model #### Configuration File Locations `aca` stores configuration in INI format: - **Local**: `./.autoCommit` (project-specific, takes priority) - **Global**: `~/.autoCommit` (user-wide default) ## How it works `aca` analyzes your staged git changes and generates intelligent commit messages using advanced AI models: 1. **Change Detection**: Runs `git diff --cached` to capture your staged changes 2. **AI Analysis**: Sends the diff to your selected AI model (DeepSeek, Gemini, or GPT-4) 3. **Smart Generation**: Generates contextual commit messages based on the code changes 4. **Format Support**: Outputs in your preferred format (conventional commits, gitmoji, or standard) The tool respects `.gitignore` patterns and automatically excludes lock files and build artifacts from analysis.