git-ai-commit
git-ai-commit copied to clipboard
let AI write your commit messages
🤖 git-ai-commit
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-commitframework, working alongside all your git hooks.
📺 Usage

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- Wiki: Setup Anthropic Model
-
Local Ollama:
llama3,mistral,phi-3,gemma, and more..- Wiki: Using local Ollama LLM model
🚀 Getting Started
- Install the
git-ai-committool 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
⚡️ Quick Start: Setup Git Hook
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.
🪝 Integrate with pre-commit framework
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-commitgit hooks framework
brew install pre-commit
pre-commit --version
- Create a
.pre-commit-config.yamlfiles 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.9
hooks:
- id: git-ai-commit
- Based on the config above, install your
pre-commithook scripts.
pre-commit install
- Setup your OpenAI key, see their docs for help.
git-ai-commit config --openai-key=...
🛠️ CLI Commands & Options
✨ 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-keySet or update the OpenAI API key to access their GPT models.
-
-a--anthropic-keySet or update the Anthropic API key to access their Claude models.
-
-m--modeldefault: "gpt-4o-mini"
Select a model to power our tool from our supported provider. To use a Ollama model, prefix
ollama/<model>. -
-ou--ollama-urldefault: "http://localhost:11434/api/chat"
Set the URL for interacting with your local Ollama models.
-
-s--setupConfig your git hook, model, and API keys via the NUX flow.
-
-l--loggerdefault: 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--resetResets your entire config settings to the default state. This will reset all settings, including API keys and model.
-
-p--prefixSet a prefix for the generate commit messages.
-
-ml--max-lengthSet 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--unstagedSummarize your local unstaged changes.
-
-d--diffProvide a .diff file from the local file system to summarize
📌 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--setupAdds a git hook by generating a
.git/hooks/prepare-commit-msgscript in your git repo. -
-sh--setup-huskyIntegrate our hook into your husky git hooks by generating a
.husky/prepare-commit-msgscript in your git repo. -
-r--removeRemoves the git hook.
-
-x--runExecutes the custom logic for our git hook. This option was intended to only run from the
prepare-commit-msggit hook.
🤝 Wanna Contribute?
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
🎉 Fun Facts
- In this repository, every commit prefixed with
✨was generated by AI.