🤖 AI-Powered Git Commit Message Generator
Automatically generate conventional commit messages using AI - No backend/frontend required!
This tool works as a Git pre-commit hook that analyzes your staged changes and generates professional commit messages using AI APIs (Groq, OpenRouter, Cohere).
🚀 Quick Start (2 minutes)
1. Install the Package
# Install from PyPI (recommended)
pip install ai-commit-generator
# Or install from source
pip install git+https://github.com/your-org/ai-commit-generator.git
2. Get API Key (Free)
- Groq (Recommended): https://console.groq.com/keys
- OpenRouter: https://openrouter.ai/keys
- Cohere: https://dashboard.cohere.ai/api-keys
3. Install in Your Project
# Go to your project
cd /path/to/your/project
# Install the Git hook
ai-commit-generator install
# Add your API key
echo "GROQ_API_KEY=your_key_here" >> .env
4. Use It
# Normal Git workflow - AI handles the message!
git add src/components/Button.js
git commit # ✨ AI generates: "feat(ui): add Button component with hover effects"
📦 Installation Methods
Method 1: PyPI (Recommended)
pip install ai-commit-generator
Method 2: From Source
git clone https://github.com/your-org/ai-commit-generator.git
cd ai-commit-generator
pip install -e .
Method 3: Legacy Bash Script
For the original bash-based installation, see LEGACY.md.
✨ Features
- 🤖 AI-Powered: Uses Groq, OpenRouter, or Cohere APIs
- 📝 Conventional Commits: Automatic
type(scope): descriptionformat - ⚡ Fast: < 2 second response time with Groq
- 🔧 Configurable: Customize prompts, models, and scopes
- 🛡️ Secure: Only staged changes sent to AI, no data storage
- 🔄 Fallback: Works even if AI fails
- 🐍 Python Package: Easy installation and distribution
- 🧪 Testable: Comprehensive test suite and type hints
- 🎨 Rich CLI: Beautiful command-line interface with colors
🎯 Example Output
Before:
git commit -m "fix"
git commit -m "update"
git commit -m "changes"
After:
feat(auth): implement JWT token refresh mechanism
fix(api): resolve race condition in user registration
docs: update README with installation instructions
refactor(utils): optimize date formatting functions
📁 Project Structure
ai-commit-generator/
├── README.md # This file
├── TEAM_SETUP_GUIDE.md # Detailed team documentation
├── pyproject.toml # Python package configuration
├── src/
│ └── ai_commit_generator/
│ ├── __init__.py # Package initialization
│ ├── cli.py # Command-line interface
│ ├── core.py # Main commit generation logic
│ ├── config.py # Configuration management
│ ├── api_clients.py # AI API clients
│ └── git_hook.py # Git hook management
├── templates/
│ ├── .commitgen.yml # Configuration template
│ └── .env.example # Environment template
├── tests/ # Test suite
├── examples/ # Usage examples
└── legacy/ # Original bash scripts
├── install_hook.sh # Legacy installer
└── hooks/
└── prepare-commit-msg # Legacy hook script
🖥️ CLI Commands
Install Hook
# Install Git hook in current repository
ai-commit-generator install
# Install with configuration files
ai-commit-generator install --config
# Force overwrite existing hook
ai-commit-generator install --force
Manage Installation
# Check installation status
ai-commit-generator status
# Test with current staged changes
ai-commit-generator test
# Uninstall hook
ai-commit-generator uninstall
Generate Messages
# Generate message for staged changes
ai-commit-generator generate
# Generate without writing to file (dry run)
ai-commit-generator generate --dry-run
# Generate and save to specific file
ai-commit-generator generate --output commit-msg.txt
Configuration
# Show current configuration
ai-commit-generator config --show
# Validate configuration
ai-commit-generator config --validate
🔧 Configuration
Basic Setup (.env)
# Choose one provider
GROQ_API_KEY=gsk_your_key_here
# OPENROUTER_API_KEY=sk-or-your_key_here
# COHERE_API_KEY=your_cohere_key_here
Advanced Setup (.commitgen.yml)
api:
provider: groq
commit:
max_chars: 72
types: [feat, fix, docs, style, refactor, test, chore]
scopes: [api, ui, auth, db, config]
prompt:
template: |
Generate a conventional commit message for:
{{diff}}
🏢 Team Deployment
Option 1: Shared Network Drive
# Copy to shared location
cp -r ai-commit-generator /shared/tools/
# Team members install from shared location
/shared/tools/ai-commit-generator/install_hook.sh
Option 2: Internal Git Repository
# Create internal repo
git init ai-commit-generator
git add .
git commit -m "feat: add AI commit message generator"
git remote add origin https://github.com/your-org/ai-commit-generator.git
git push -u origin main
# Team members clone and install
git clone https://github.com/your-org/ai-commit-generator.git
cd your-project
../ai-commit-generator/install_hook.sh
Option 3: Package Distribution
# Create distributable package
tar -czf ai-commit-generator.tar.gz ai-commit-generator/
# Team members download and extract
curl -sSL https://your-server/ai-commit-generator.tar.gz | tar -xz
./ai-commit-generator/install_hook.sh
🛠️ Advanced Usage
Custom Prompts
prompt:
template: |
You are a senior developer. Generate a commit message for:
{{diff}}
Requirements:
- Use conventional commits
- Be specific about business impact
- Maximum {{max_chars}} characters
Multiple Models
# Fast and efficient
GROQ_MODEL=llama3-8b-8192
# More detailed
GROQ_MODEL=llama3-70b-8192
# Creative
GROQ_MODEL=mixtral-8x7b-32768
Debug Mode
DEBUG_ENABLED=true
tail -f .commitgen.log
🚨 Troubleshooting
| Issue | Solution |
|---|---|
| "API key not found" | Check .env file, ensure correct variable is set |
| "jq: command not found" | Install jq: brew install jq or apt install jq |
| "Rate limit exceeded" | Wait 1 minute or switch to different provider |
| "Hook not working" | Reinstall: ./install_hook.sh |
📊 Provider Comparison
| Provider | Speed | Cost | Models | Best For |
|---|---|---|---|---|
| Groq | ⚡ Very Fast | 🆓 Free | Llama 3, Mixtral | Teams, Daily Use |
| OpenRouter | 🐌 Medium | 💰 Paid | Claude, GPT-4 | Premium Quality |
| Cohere | ⚖️ Fast | 🆓 Free Tier | Command-R | Enterprise |
🤝 Contributing
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'feat: add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open Pull Request
📄 License
MIT License - see LICENSE file for details.
🙏 Acknowledgments
- Conventional Commits specification
- Groq for fast AI inference
- OpenRouter for model diversity
- Cohere for enterprise AI
Transform your team's commit messages today! 🚀
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file joshi_ai_commits-1.0.0.tar.gz.
File metadata
- Download URL: joshi_ai_commits-1.0.0.tar.gz
- Upload date:
- Size: 23.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95200fda45620a571d8b12b638adcfa118051b2d593dfa1f2313245f4a16f8ff
|
|
| MD5 |
e2d8871b968971e2851508e0576004c9
|
|
| BLAKE2b-256 |
e225061885c4e3c99e005348d0e6527453c7d026a83ea2054bfa1519d6183da2
|
File details
Details for the file joshi_ai_commits-1.0.0-py3-none-any.whl.
File metadata
- Download URL: joshi_ai_commits-1.0.0-py3-none-any.whl
- Upload date:
- Size: 21.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ef3fe17c174d7a729fb2004dc769d5920e56d0f8dd9944afebc6f4130a86a9f
|
|
| MD5 |
82b7762aaa1ec4f7afcf94f81d9daa37
|
|
| BLAKE2b-256 |
6a5bb5e377445b1486739a44e76c09a62b509c516b531b61ff298cc97ccdb78a
|