AI-powered Git commit message generator that automatically creates conventional commit messages using Groq, OpenRouter, or Cohere APIs
Project description
๐ค 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! ๐
Project details
Release history Release notifications | RSS feed
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
|