@fede91/aicommit
v1.0.5
Published
A tool that generates git commit messages using AI models
Downloads
12
Maintainers
Readme
aicommit
aicommit
is a tool that generates git commit messages using OpenAI's GPT models. It supports multiple profiles, enabling different configurations for API keys, models, and system messages.
Features
- Generate Commit Messages: Automatically generate commit messages using OpenAI's GPT models.
- Multiple Profiles: Manage multiple profiles, each with its own API key, model, and system message.
- Interactive Message Review: Option to review and refine the commit message before committing.
- Profile Management: Commands to add, list, and switch profiles.
- Git Log Output: Print git log messages during staging, committing, and pushing actions.
Installation
To install aicommit
, use npm:
npm i -g @fede91/aicommit
Usage
Adding and Managing Profiles
Add a New Profile
aicommit --add-profile <name>
List All Profiles
aicommit --list-profiles
Set the Active Profile
aicommit --set-active-profile <name>
Switch Profile Interactively
aicommit --switch-profile
Configuring Profiles
Set OpenAI API Key
aicommit --set-api-key YOUR_OPENAI_API_KEY
Set OpenAI Model
aicommit --set-model YOUR_CHOSEN_MODEL
Set OpenAI System Message
aicommit --set-system-message "Your custom system message"
Enable Commit Message Review
aicommit --enable-review
Disable Commit Message Review
aicommit --disable-review
Set Verbose Mode
To enable verbose mode:
aicommit --set-verbose 1
To disable verbose mode:
aicommit --set-verbose 0
Configuring LLM Model
Set API Request Timeout
Set the timeout for API requests in milliseconds:
aicommit --set-timeout 30000
Set Maximum Tokens
Set the maximum number of tokens for the LLM response:
aicommit --set-max-tokens 200
Set Temperature
Set the temperature for the LLM model (between 0.0 and 1.0):
aicommit --set-temperature 0.8
Printing Profile Information
Print Current OpenAI API Key
aicommit --print-api-key
Print Current OpenAI Model
aicommit --print-model
Print Current OpenAI System Message
aicommit --print-system-message
Configuring Behavior
Set Auto Push
To enable automatic push after commit:
aicommit --set-auto-push 1
To disable automatic push after commit:
aicommit --set-auto-push 0
Disable Push for Current Session
To disable pushing for the current session only (without changing the global auto-push setting):
aicommit --np
This option is useful when you want to commit changes but delay pushing them, regardless of your auto-push configuration.
Committing Changes
Simply run the command without any options to stage, generate a commit message, review (if enabled), commit, and push the changes (if auto-push is enabled). Git log messages will be printed to the console during these actions.
aicommit
To commit changes without pushing (overriding the auto-push setting for this session only):
aicommit --no-push
When review is enabled, you will be presented with three options:
- Use the generated commit message as is
- Refine the commit message
- Generate a new commit message
You can continue to refine or regenerate the message until you're satisfied with the result.
Example Workflow
Add a Profile:
aicommit --add-profile myprofile
Set API Key:
aicommit --set-api-key YOUR_OPENAI_API_KEY
Set Model:
aicommit --set-model gpt-4o-mini
Set System Message:
aicommit --set-system-message "You are a helpful assistant."
Enable/Disable Review:
aicommit --enable-review
Generate and Commit Changes with Verbose Output:
aicommit --verbose
Contributing
Contributions are welcome! Please read the contributing guide to get started.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Support
If you have any questions or need help, feel free to open an issue on GitHub.
Acknowledgments
- OpenAI for providing the API.
- simple-git for making Git integration easy.
- commander for command-line argument parsing.
- @inquirer/prompts for the interactive prompts.