@fede91/aicommit v1.0.5
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/aicommitUsage
Adding and Managing Profiles
Add a New Profile
aicommit --add-profile <name>List All Profiles
aicommit --list-profilesSet the Active Profile
aicommit --set-active-profile <name>Switch Profile Interactively
aicommit --switch-profileConfiguring Profiles
Set OpenAI API Key
aicommit --set-api-key YOUR_OPENAI_API_KEYSet OpenAI Model
aicommit --set-model YOUR_CHOSEN_MODELSet OpenAI System Message
aicommit --set-system-message "Your custom system message"Enable Commit Message Review
aicommit --enable-reviewDisable Commit Message Review
aicommit --disable-reviewSet Verbose Mode
To enable verbose mode:
aicommit --set-verbose 1To disable verbose mode:
aicommit --set-verbose 0Configuring LLM Model
Set API Request Timeout
Set the timeout for API requests in milliseconds:
aicommit --set-timeout 30000Set Maximum Tokens
Set the maximum number of tokens for the LLM response:
aicommit --set-max-tokens 200Set Temperature
Set the temperature for the LLM model (between 0.0 and 1.0):
aicommit --set-temperature 0.8Printing Profile Information
Print Current OpenAI API Key
aicommit --print-api-keyPrint Current OpenAI Model
aicommit --print-modelPrint Current OpenAI System Message
aicommit --print-system-messageConfiguring Behavior
Set Auto Push
To enable automatic push after commit:
aicommit --set-auto-push 1To disable automatic push after commit:
aicommit --set-auto-push 0Disable Push for Current Session
To disable pushing for the current session only (without changing the global auto-push setting):
aicommit --npThis 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.
aicommitTo commit changes without pushing (overriding the auto-push setting for this session only):
aicommit --no-pushWhen 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 myprofileSet API Key:
aicommit --set-api-key YOUR_OPENAI_API_KEYSet Model:
aicommit --set-model gpt-4o-miniSet System Message:
aicommit --set-system-message "You are a helpful assistant."Enable/Disable Review:
aicommit --enable-reviewGenerate 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.