Skip to main content

AI-powered Git commit message generator with multi-language support

Project description

AI-Commiter

grit = Git Review Intelligence Tool

PyPI version

AI-powered Git commit message generator with multi-language support. Analyzes file changes and generates clear, structured commit messages using OpenAI API.

인공지능을 활용한 다국어 지원 Git 커밋 메시지 생성기입니다. 파일 변경 내역을 분석하고 OpenAI API를 통해 명확하고 구조화된 커밋 메시지를 생성합니다.

✨ Key Features

  • 🌍 Multi-language Support: Generate commit messages in Korean, English, Japanese, Chinese (Simplified/Traditional)
  • 🤖 Intelligent Analysis: Analyzes Git diff to create specific, structured commit messages
  • 📝 Conventional Commits: Uses standardized format with structured body using bullet points
  • 📁 File Categorization: Categorizes multiple file changes and provides summary information
  • ⚙️ Custom Prompts: Support for user-defined prompt templates
  • ⚡ Simple CLI: Use grit command for quick and convenient access
  • 🧠 Multiple AI Models: Choose from various OpenAI GPT models with automatic complexity-based selection
  • 📋 Structured Output: Body messages formatted with bullet points for better readability

📦 Installation

Option 1: Homebrew (macOS Recommended)

# Install Homebrew (if not already installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install Python and pipx
brew install python pipx
pipx ensurepath && source ~/.zshrc

# Install AI-Commiter
pipx install ai-commiter

Option 2: pipx (Cross-platform)

# Install pipx
pip3 install pipx  # macOS/Linux
pipx ensurepath

# Apply environment variables
source ~/.zshrc     # macOS (zsh)
source ~/.bashrc    # Linux (bash)

# Install AI-Commiter
pipx install ai-commiter

Option 3: pip3 (Direct installation)

# macOS/Linux
pip3 install ai-commiter

# Windows
pip install ai-commiter

🔑 API Key Setup

AI-Commiter supports two environment variables for OpenAI API key:

  1. AI_COMMITER_API_KEY - Dedicated for AI-Commiter (recommended)
  2. OPENAI_API_KEY - Standard OpenAI environment variable

Permanent Setup (Recommended)

# macOS (zsh)
echo 'export AI_COMMITER_API_KEY=your-api-key-here' >> ~/.zshrc
source ~/.zshrc

# Linux (bash)
echo 'export AI_COMMITER_API_KEY=your-api-key-here' >> ~/.bashrc
source ~/.bashrc

# Windows
setx AI_COMMITER_API_KEY "your-api-key-here"
# Restart terminal after running the command

Temporary Setup

# macOS/Linux
export AI_COMMITER_API_KEY=your-api-key-here

# Windows
set AI_COMMITER_API_KEY=your-api-key-here

🔄 Upgrade

# pipx
pipx upgrade ai-commiter

# pip3 (macOS/Linux)
pip3 install --upgrade ai-commiter

# pip (Windows)
pip install --upgrade ai-commiter

# Check version
grit --version

🚀 Quick Start

# Generate commit message (preview)
grit

# Generate and commit automatically
grit --commit

# Use Korean language
grit --lang ko --commit

# Use GPT-4 for complex changes
grit --model gpt-4 --commit

📝 Usage Examples

# Basic usage
grit                         # Preview commit message
grit --commit                # Generate and commit
grit --repo /path/to/repo    # Specify repository path

# Language options
grit --lang ko               # Korean
grit --lang en               # English (default)
grit --lang ja               # Japanese
grit --lang zh-CN            # Chinese Simplified
grit --lang zh-TW            # Chinese Traditional

# Model selection
grit --model gpt-4           # For complex changes
grit --model gpt-3.5-turbo   # For simple changes (default)

# Advanced options
grit --all                   # Include unstaged changes
grit --prompt custom.txt     # Use custom prompt template

# Combined examples
grit --lang ko --model gpt-4 --commit
grit --all --lang en

🌍 Supported Languages

Language Code Example
Korean ko, ko-KR grit --lang ko
English en, en-US, en-GB grit --lang en
Japanese ja, ja-JP grit --lang ja
Chinese (Simplified) zh, zh-CN grit --lang zh-CN
Chinese (Traditional) zh-TW grit --lang zh-TW

Note: Commit titles are always in English (imperative mood) following Conventional Commits standard. Only the detailed descriptions are localized.

📋 Output Example

🧠 Complexity analysis: Simple changes (score: 0)
   • 1 files (+0), 39 diff lines (+0)
   → Selected gpt-3.5-turbo model
🤖 AI is generating commit message...

📝 Generated commit message:
--------------------------------------------------
docs: Update commit prompt template

- 커밋 프롬프트 템플릿 업데이트
- 커밋 메시지 템플릿 내용 수정 및 명확하게 작성 요청
--------------------------------------------------

⚙️ Custom Prompt Templates

Create custom prompt template files to adjust AI-generated commit message style:

# Use custom template
grit --prompt my_template.txt

Template variables:

  • {diff} - Git diff content
  • {language_instruction} - Language-specific instructions
  • Categorization variables for file types

Example template:

You are an expert Git commit message generator. Create a commit message following Conventional Commits format.

## Requirements:
- Type: feat, fix, docs, style, refactor, test, chore, perf, ci, build
- Title: English imperative mood (max 50 chars)
- Body: Bullet points with specific changes

## Code Changes:
{diff}

## Language:
{language_instruction}

📋 Requirements

  • Python 3.7+
  • Git
  • OpenAI API Key

🆕 What's New

v0.2.2

  • Improved Model Selection: Enhanced --model option to apply the specified model to all commits in auto-split mode
  • Simplified CLI: Removed --no-auto-model option for better user experience

v0.2.1

  • Fixed Version Display: Updated __init__.py version to properly show version in CLI commands
  • Code Consistency: Improved package structure and code consistency
  • CLI Improvements: Removed deprecated options from help message

v0.2.0

  • Always Use Full Diff: Removed complexity-based diff length limits for better commit message generation
  • Always Enable File Categorization: Removed --no-categorize option to always provide structured, categorized commits
  • Improved Complexity Scoring: Adjusted auto-split threshold from 1 to 5 for better user experience
  • Enhanced Commit Splitting: Improved handling of skipped commits with proper staging/unstaging

📄 License

MIT License

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

ai_commiter-0.2.2.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

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

ai_commiter-0.2.2-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file ai_commiter-0.2.2.tar.gz.

File metadata

  • Download URL: ai_commiter-0.2.2.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for ai_commiter-0.2.2.tar.gz
Algorithm Hash digest
SHA256 f2d648a8cb08276a2ed93961ffbb216f0f0d63a1e7dad19c95258ccede17bcc5
MD5 d7c5a74e0b3826ae6783d4858997f07f
BLAKE2b-256 8f71685ad7c587f31887734080db9c71263677940272c5ff0731219e17dde2d6

See more details on using hashes here.

File details

Details for the file ai_commiter-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: ai_commiter-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for ai_commiter-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7ad2f226cbceaa6e32c3061d23c8cabd435bd9be1169458a9ac31707d5e3abd2
MD5 c8347b913a048f87e91ffe053f7701e9
BLAKE2b-256 b3919691c89b22f9db957ebd1c3b5338348cabd11dac4a1c1f99431225ea7d6d

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