@commit-generator/cli v1.0.2
@commit-generator/cli
This package provides a CLI tool for generating commit messages based on Git diffs and AI models. It offers configurable commit message generation, editing, and validation.
📌 Table of Contents
Installation
To use this package in your project, install it globally:
pnpm install -g @commit-generator/cliTo set up the configuration, run:
commitgen config initThis will launch an interactive prompt, allowing you to configure your AI model for commit message generation.
Usage
Once installed, you can use the CLI with commitgen <command>.
Default Workflow
To begin, stage your files:
git add .Then run:
commitgenThis will open an interactive prompt, where you can provide additional context to improve message precision. After completion, the following options are available:
- Regenerate the commit message
- Edit the message (opens the default text editor)
- Commit the message
- Exit the prompt
Manual generation
If you prefer to bypass the interactive prompt, use the following command to generate a commit message:
commitgen generateThis command will only generate the commit message without committing. You can then edit it with:
commitgen editFinally, to commit:
commitgen commitValidate a Commit Message
To validate a commit message, use the following command:
commitgen validate <message>This compares the commit message with the staged diff and checks whether it adheres to best practices. If necessary, it will generate an improved commit message.
To commit the generated message, run:
commitgen commitValidate the Last Commit Message
To validate the most recent commit message, run:
commitgen validateIf needed, amend the commit message with:
commitgen amendPersistent Configuration
You can set the CLI configuration with:
commit config initTo set a configuration value:
commitgen config set <key>=value
# Example: commitgen config set provider=openai openai.key=some_key
# Example: commitgen config set exclude.files="pnpm-lock.yaml,package-lock.json"To unset a configuration value:
commitgen config unset <key>
# Example: commitgen config unset exclude.filesTo list the active configuration:
commitgen config listDynamic Configuration
You can dynamically change the configuration using environment variables with the commit_gen_config_ prefix. Replace . with _.
For example:
$env:commit_gen_config_openai_key = "some_key" # PowerShell
set commit_gen_config_openai_key=some_key # CMD
export commit_gen_config_openai_key="some_key" # LinuxYou can also use --<key>=<value> for CLI options:
commitgen config list --provider=ollamaConfiguration options
| Key | Type | Description |
|---|---|---|
provider | string | The AI provider to use |
openai.key | string | The OpenAi authentication key |
ollama.model | string | The model to use in Ollama |
exclude.files | Array<string> | Files to exclude from the diff analysis |
License
This package is licensed under the MIT License.