Tl;DR
-
AI that writes your commit messages.
-
A CLI and git hook that summarizes your changes every time you run
git commit
. -
Integrates with the
pre-commit
framework, working alongside all your git hooks.
git-ai-commit
currently support the following LLM providers...
-
Open AI:
gpt-4o-mini
(default),gpt-4
,gpt-3.5
, and more... -
Anthropic:
claude-3-haiku
,claude-3-sonnet
,claude-3-opus
-
Local Ollama:
llama3
,mistral
,phi-3
,gemma
, and more..
- Install the
git-ai-commit
tool via pip
pip install git-ai-commit
git-ai-commit --version # verify installation
- Start configuring your tool
git-ai-commit config --setup
- Your done, happy committing! Check out our fun range of command, the LLM can even help you, just run...
git-ai-commit help-ai [question?]
# or get help the ol fashion way
git-ai-commit --help
To quickly setup your prepare-commit-msg
git hook, execute the command below.
Caution, this will override any existing prepare-commit-msg
hooks you may have. To coordinate multiple git hook, check out the pre-commit
framework.
git-ai-commit hook --setup
That is all, your good to go! Now every time you run git commit
, let AI present you with a commit message.
git-ai-commit
integrates easily with your other git hook using the pre-commit
framework. Follow the instructions below to get set up.
- Install the
pre-commit
git hooks framework
brew install pre-commit
pre-commit --version
- Create a
.pre-commit-config.yaml
files and add the following config.
touch .pre-commit-config.yaml
# .pre-commit-config.yaml
default_install_hook_types:
# make sure you include `prepare-commit-msg` in `default_install_hook_types`
- prepare-commit-msg
repos:
- repo: https://github.com/the-cafe/git-ai-commit
rev: v1.0.13
hooks:
- id: git-ai-commit
- Based on the config above, install your
pre-commit
hook scripts.
pre-commit install
- Setup your OpenAI key, see their docs for help.
git-ai-commit config --openai-key=...
git-ai-commit
integrates seamlessly with Cursor IDE to enhance your AI-powered development workflow. The tool works alongside Cursor's AI capabilities to provide consistent, high-quality commit messages.
Add git-ai-commit to your project's .cursorrules
file to ensure Cursor always suggests using AI-generated commit messages:
# Git AI Commit Integration
## Commit Workflow
When making commits, always use the `git-ai-commit` CLI tool instead of regular `git commit`. This tool automatically generates AI-powered commit messages based on your staged changes.
### Recommended Commands:
- Use `git-ai-commit` instead of `git commit` for AI-generated commit messages
- Use `git-ai-commit conventional` for conventional commit format
- Use `git-ai-commit summarize` to get a quick overview of changes before committing
### Workflow Integration:
- Before committing, stage your changes with `git add`
- Instead of `git commit -m "message"`, simply run `git-ai-commit`
- The tool will analyze your changes and suggest an appropriate commit message
Here are some effective prompts to use with Cursor when working with git-ai-commit:
For committing changes:
"I've made some changes to my code. Please stage the files and use git-ai-commit to generate an appropriate commit message."
For conventional commits:
"Stage my changes and use git-ai-commit conventional to create a conventional commit message for this feature/fix/refactor."
For code review before committing:
"Before committing, please run git-ai-commit summarize to show me what changes I've made, then proceed with the commit."
For complete workflow:
"Please help me commit my changes using this workflow: 1) Stage relevant files, 2) Use git-ai-commit to generate the message, 3) Review the commit message, 4) Push to the remote repository."
- Make your code changes using Cursor's AI assistance
- Stage changes: Ask Cursor to
git add
the relevant files - Generate commit message: Use
git-ai-commit
instead of manual commit messages - Review and commit: Let the AI analyze your changes and create descriptive commit messages
- Push changes: Complete the workflow with
git push
This integration ensures that both your code and commit messages maintain high quality and consistency throughout your development process.
If you're using Claude or other AI assistants, check out our CLAUDE.md
file for specific integration guidelines and workflow recommendations.
β¨ git-ai-commit config
Display your current config settings. Option flags can be used to configure various settings in your configuration. For example...
git-ai-commit config
git-ai-commit config --openai-key=... --model=gpt-4o-mini
-
-k
--openai-key
Set or update the OpenAI API key to access their GPT models.
-
-a
--anthropic-key
Set or update the Anthropic API key to access their Claude models.
-
-m
--model
default: "gpt-4o-mini"
Select a model to power our tool from our supported provider. To use a Ollama model, prefix
ollama/<model>
. -
-ou
--ollama-url
default: "http://localhost:11434/api/chat"
Set the URL for interacting with your local Ollama models.
-
-s
--setup
Config your git hook, model, and API keys via the NUX flow.
-
-l
--logger
default: false
A toggle for enabling logs that are saved to a local file -
.git/ai_commit_message.log
. This was intended to be used as a local debug tool. -
-r
--reset
Resets your entire config settings to the default state. This will reset all settings, including API keys and model.
-
-p
--prefix
Set a prefix for the generate commit messages.
-
-ml
--max-length
Set the character limit for the LLM response. In our testing, the greater the limit the more details are included in the commit messages.
π git-ai-commit summarize
Get a quick summary of your local changes
git-ai-commit summarize
-
-u
--unstaged
Summarize your local unstaged changes.
-
-d
--diff
Provide a .diff file from the local file system to summarize
π·οΈ git-ai-commit conventional
Generate commit messages in the Conventional Commits format (type(scope): description
).
This command:
- Analyzes your staged changes using AI
- Suggests the most appropriate commit type based on your changes
- Suggests a relevant scope based on the affected components
- Allows you to accept the suggestions or choose your own
- Formats the message according to conventional commit standards
- Gives you the option to commit and push
Available commit types:
feat
: New featurefix
: Bug fixdocs
: Documentation changesstyle
: Formatting changesrefactor
: Code refactoringperf
: Performance improvementstest
: Adding or modifying testschore
: Maintenance tasks
π git-ai-commit help
, -h
Displays a list of available command and options to help you setup our tool.
git-ai-commit help # -h
πͺ git-ai-commit hook
Manage and setup git-ai-commit
as a prepare-commit-msg
git hook.
git-ai-commit hook --setup
-
-s
--setup
Adds a git hook by generating a
.git/hooks/prepare-commit-msg
script in your git repo. -
-sh
--setup-husky
Integrate our hook into your husky git hooks by generating a
.husky/prepare-commit-msg
script in your git repo. -
-r
--remove
Removes the git hook.
-
-x
--run
Executes the custom logic for our git hook. This option was intended to only run from the
prepare-commit-msg
git hook.
Do you love our tool and wanna support us? Drop us a star π
Have some feedback on what we could do better? Create a issue we'll respond in 24hrs we promise π
Wanna contribute code and improve our product, check out our Local Development Wiki to get started.
Right now we're focused on
-
Improving our prompting strategy to generate the best commit message possible
-
Super charge our CLI to support broad developer use cases and build the best interface we can
-
Build some tests
- In this repository, every commit prefixed with
β¨
was generated by AI.