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.9
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 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 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.