GitBird is a tool designed to help developers generate meaningful and descriptive commit messages using AI models like ChatGPT and Gemini. By analyzing the staged changes in your Git repository, GitBird provides commit message suggestions that can be selected and used directly.
- AI-Powered Commit Messages: Generate commit messages using AI models (ChatGPT or Gemini) based on the staged changes in your repository.
- Model Selection: Specify which AI model to use via command-line options.
- BYOK (Bring Your Own Key): Use your own API keys for the AI models.
- Environment Variable Management: Automatically checks for required API keys and falls back to available models if the specified model's API key is missing.
- Interactive Commit Message Selection: Choose from a list of suggested commit messages interactively.
- Install GitBird using
npm install -g @mafzaldev/git-bird
. - Set the required environment variables for the AI models.
- Navigate to your Git repository.
- Make your code changes and stage them using
git add
. - Run
git-bird -m ${model}
to generate commit messages based on the staged changes.
-m, --model <model>
: Specify the AI model to use for generating commit messages. Options:chatgpt
orgemini
. Default:chatgpt
.
In the below example, it will use the chatgpt
model by default to generate commit messages based on the staged changes in your repository.
If you have not set the environment variable for the chatgpt
model, it will check if any other model's API key is available and use that model instead. If no API keys are available, it will display an error message.
git-bird
In the below example, if you have not set the environment variable for the gemini
model, it will automatically fall back to the chatgpt
model, and vice versa. If you have set the environment variable for both models, it will use the model specified in the command-line options.
If you have not set the environment variable for either model, it will display an error message.
git-bird -m gemini
For Windows (Command Prompt):
setx CHATGPT_API_KEY "your_chatgpt_api_key"
OR
setx GEMINI_API_KEY "your_gemini_api_key"
For Linux/Mac:
export CHATGPT_API_KEY=your_chatgpt_api_key
OR
export GEMINI_API_KEY=your_gemini_api_key