Skip to main content

A project to generate commit messages using AI

Project description

🤖 git-ai-commit

Current version PyPI - Downloads

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.

📺 Usage

Usage Demo

git-ai-commit currently support the following LLM providers...

🚀 Getting Started

  1. Install the git-ai-commit tool via pip
pip install git-ai-commit

git-ai-commit --version # verify installation
  1. Start configuring your tool
git-ai-commit config --setup
  1. 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.

  1. Install the pre-commit git hooks framework
brew install pre-commit
pre-commit --version 
  1. 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
  1. Based on the config above, install your pre-commit hook scripts.
pre-commit install 
  1. 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-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.

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

git_ai_commit-1.0.9.tar.gz (20.4 kB view details)

Uploaded Source

File details

Details for the file git_ai_commit-1.0.9.tar.gz.

File metadata

  • Download URL: git_ai_commit-1.0.9.tar.gz
  • Upload date:
  • Size: 20.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for git_ai_commit-1.0.9.tar.gz
Algorithm Hash digest
SHA256 946f2b65ea46ece45153ea784d7a3f86f369609995d610603ecb4c1ad81b5fe2
MD5 183d25536904a08f9d63ca37cc9f2b75
BLAKE2b-256 7d6cc0393d0152b47f54f3bf3f2068c24ee284d098f85da2ba1b3cc4555e9dc7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page