Skip to main content

AI-powered git commit message generator following Conventional Commits

Project description

git-commit-msg-ai

AI-powered git commit message generator that follows the Conventional Commits specification.

Prerequisites

  • Python 3.10+

  • An Anthropic API key set as an environment variable:

    export ANTHROPIC_API_KEY=sk-ant-...   # macOS/Linux
    
    [System.Environment]::SetEnvironmentVariable('ANTHROPIC_API_KEY', 'sk-ant-...', 'User')   # Windows
    

Development Setup

Clone the repository, create a virtual environment, and install the project in editable mode with all dev dependencies:

python -m venv .venv

Activate the virtual environment:

# macOS/Linux
source .venv/bin/activate

# Windows PowerShell
.venv\Scripts\Activate.ps1

Install the project and dev dependencies:

pip install -e ".[dev]"

After activation the git-commit-msg-ai entry-point is on your PATH. You can also run the dev toolchain:

pytest          # run tests with coverage
ruff check .    # lint
mypy .          # type-check

Installation

pip install git-commit-msg-ai

Usage

Stage your changes, then run the tool from inside any git repository:

git add <files>
git-commit-msg-ai

The tool will:

  1. Read your staged diff
  2. Generate a commit message using Claude AI
  3. Print the message and prompt you to choose:
[a]ccept / [e]dit / [r]eject:
  • a - commits immediately with the generated message
  • e - opens the message in your $EDITOR (defaults to notepad on Windows, vi on Linux/macOS), lets you modify it, then commits
  • r - exits without committing

Commit message format

Generated messages follow the Conventional Commits specification:

<type>(<optional scope>): <short subject>

- Bullet explaining why this change was made
- Another reason if applicable

For breaking changes, the subject line gets a ! and a footer is added:

feat(api)!: remove deprecated endpoint

- Endpoint was unused and blocking the new auth rollout

BREAKING CHANGE: /v1/legacy is no longer available

Supported types: feat, fix, docs, style, refactor, test, chore

Debugging

By default the tool produces no diagnostic output. To enable logging, set the GIT_COMMIT_AI_LOG_LEVEL environment variable before running the command. Logs are written to stderr and do not interfere with the generated commit message on stdout.

Valid values: DEBUG, INFO, WARNING, ERROR, CRITICAL

# macOS/Linux - show all internal diagnostic messages
GIT_COMMIT_AI_LOG_LEVEL=DEBUG git-commit-msg-ai

# Windows PowerShell
$env:GIT_COMMIT_AI_LOG_LEVEL = 'DEBUG'
git-commit-msg-ai
Level What you see
DEBUG git commands run, API model/token params, temp file paths, char counts
INFO commit message generated, commit created
WARNING no staged changes found
ERROR git not found, API failures, editor errors

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_commit_msg_ai-1.5.1.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

git_commit_msg_ai-1.5.1-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file git_commit_msg_ai-1.5.1.tar.gz.

File metadata

  • Download URL: git_commit_msg_ai-1.5.1.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for git_commit_msg_ai-1.5.1.tar.gz
Algorithm Hash digest
SHA256 f7bfa1fb379bcce010ae08d92ff110982a7729f048e952237445f22b7fe06f77
MD5 75890efb67a49535560b861e97686ff0
BLAKE2b-256 6d3cc216d977eb9c56265faa800481ac40ece608a3ea1ce7c7e533aaa885ea16

See more details on using hashes here.

File details

Details for the file git_commit_msg_ai-1.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for git_commit_msg_ai-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6f35a161cade74824693c7d11a63550188f6f41f63abc759355eacbca7b8cd3f
MD5 e60fd6f48381ca4657a4e079ffd26a9c
BLAKE2b-256 46281f3fb4f7d938091c6871bf3ae586817f2718dd2f0eaf2f4d3bd40466a026

See more details on using hashes here.

Supported by

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