Smarter Git commit messages using GPT.
Project description
Commit Companion
AI-powered Git commit assistant that summarizes staged changes using GPT.
Save time, stay in flow, and write better commit messages — automatically.
Features
- Uses GPT to summarize your staged diffs into clear commit messages
- Supports Conventional Commits
- Tone customization (
neutral,casual,formal,funny, etc.) - Git hook integration via
prepare-commit-msg - Supports environment variables for default
TYPEandTONE - Optional auto mode to skip confirmation (for non-interactive use)
Quick Start
1. Install via pip (recommended):
pip install commit-companion
Or, to install from source:
git clone https://github.com/nelson-zack/commit-companion.git
cd commit-companion
pip install .
2. Add your OpenAI API key:
Commit Companion requires access to the OpenAI API. You can provide your key in one of two ways:
Option 1: .env file (for local use)
OPENAI_API_KEY=sk-...
Option 2: Environment variable (for global use)
Add to your shell config (~/.zshrc, ~/.bashrc, etc):
export OPENAI_API_KEY="sk-..."
Then run:
source ~/.zshrc # or ~/.bashrc
3. Install CLI tool locally:
pip install --editable .
Requirements
- Python 3.8 or later
- An OpenAI API key (required for GPT functionality)
Usage
CLI (manual):
commit-companion suggest --tone casual --type feat
Will output something like:
feat: add basic functionality to README.md
Example usage:
git add <file>
commit-companion suggest --tone casual --type feat
git commit -m "your message here"
git push
Git Hook (auto):
Install the Git hook with:
commit-companion install-hook
This creates a .git/hooks/prepare-commit-msg script that auto-generates commit messages using GPT. By default, it uses --tone neutral and --type feat.
Once installed, your flow becomes:
git add <file> # Stage your changes
git commit # Commit Companion will auto-suggest the message
git push # Push to remote
Customize per commit:
Override tone or type like this:
TYPE=fix git commit
TONE=funny git commit
TYPE=fix TONE=funny git commit
Uninstall the hook:
commit-companion uninstall-hook
Optional: Global Installation
To use commit-companion from any repo without activating a virtual environment:
1. Install globally:
pip install .
2. Add your OpenAI key to your shell config (~/.zshrc or ~/.bashrc):
export OPENAI_API_KEY="sk-..."
3. Ensure your Python bin path is on your system PATH:
export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.12/bin"
4. Reload your shell:
source ~/.zshrc # or ~/.bashrc
5. Use it anywhere:
commit-companion install-hook
Roadmap Ideas
- Config file support (.commitcompanion.json)
- VS Code extension
- Web version / hosted API
- ✅ PyPI distribution (available via
pip install commit-companion)
Why Use This?
Writing commit messages breaks flow. Commit Companion helps you:
- Stay focused on your code
- Standardize commits with no effort
- Impress your teammates with clear, consistent commit messages
License
MIT License.
Contributing
Contributions, suggestions, and issue reports are welcome! To get started:
- Fork the repository
- Create your feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin feature/my-feature) - Open a pull request
Links
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 commit_companion-0.1.1.tar.gz.
File metadata
- Download URL: commit_companion-0.1.1.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10b1677959ce17b341bcbe179a891a9004acb9c45140e476477247e2a8fbf732
|
|
| MD5 |
94afbce7c9c3feb9abf97e031851577b
|
|
| BLAKE2b-256 |
ed3005f53a218295551d4f7ad5d8b25de33caed26de9be33eebf39bb8f8978ee
|
File details
Details for the file commit_companion-0.1.1-py3-none-any.whl.
File metadata
- Download URL: commit_companion-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cc2b861b888c0bb54ffbbf4796118d4a7529d5ca1b0f0229c143f560649c55f
|
|
| MD5 |
391b757af58deb850e9e2aaee3b98e16
|
|
| BLAKE2b-256 |
5107beb1f50c2cd1139cd89529517fd61bc417c6c61a72958b6b39948b5010b1
|