Intelligent Git commit message and changelog generator powered by AI
Project description
giv - AI-Powered Git History Assistant
giv (pronounced "give") is a powerful CLI tool that transforms raw Git history into polished commit messages, summaries, changelogs, release notes, and announcements. This Python implementation provides cross-platform binary distribution with zero dependencies.
✨ Key Features
- 🚀 Self-contained binaries - No Python installation required
- 🤖 Multiple AI backends - OpenAI, Anthropic, Ollama, and custom endpoints
- 📝 Rich command suite - Generate messages, summaries, changelogs, and release notes
- 🎯 Smart Git integration - Support for revision ranges, pathspecs, and staged changes
- ⚙️ Flexible configuration - Project and user-level settings with inheritance
- 🔧 Template system - Customizable prompts for all output types
🚀 Quick Install
curl -fsSL https://raw.githubusercontent.com/fwdslsh/giv/main/install.sh | sh
Automated Releases: All binaries and PyPI packages are built and published automatically via GitHub Actions when a new version is pushed or released. No manual build steps required for contributors—just bump the version, push, and create a release tag. Release assets (binaries and PyPI packages) are attached to each GitHub release.
Other Installation Methods: PyPI, install script, manual install, or build from source →
🏁 Getting Started
# Initialize giv in your project
giv init
# Generate commit message for current changes
giv message
# Create changelog entry
giv changelog v1.0.0..HEAD
# Generate release notes
giv release-notes v1.2.0..HEAD
Detailed Usage Guide: Command examples and advanced usage →
⚙️ Basic Configuration
Set up your AI provider:
# Quick setup with environment variables (recommended)
export OPENAI_API_KEY="your-api-key"
export GIV_API_MODEL="gpt-4"
# Or configure via giv
giv config set api.url "https://api.openai.com/v1/chat/completions"
giv config set api.model "gpt-4"
Complete Configuration Guide: All settings and providers →
🎨 Customization
# Initialize project templates
giv init
# Edit templates
nano .giv/templates/commit_message_prompt.md
nano .giv/templates/changelog_prompt.md
# Use custom template
giv message --prompt-file custom-prompt.md
Template System: Customization and variables →
📖 Documentation
- Installation Guide - All installation methods and troubleshooting
- Configuration - Complete configuration reference
- App Specification - Commands, usage, and template system
- Build System - Technical architecture
- Publishing Guide - Release process for contributors
🤖 Supported AI Providers
- OpenAI - GPT-4, GPT-3.5-turbo
- Anthropic - Claude 3.5 Sonnet, Claude 3 Opus
- Local (Ollama) - Llama 3.2, Code Llama, and more
- Custom endpoints - Any OpenAI-compatible API
Provider Setup Examples: Configuration guide →
🔧 Troubleshooting
Linux Binary Compatibility Issues
If you encounter an error like GLIBC_2.XX not found, this means your system has an older version of GLIBC than required:
# Check your GLIBC version
ldd --version
# If you have GLIBC < 2.31, use one of these alternatives:
# 1. Install via pip (works on any Python 3.9+)
pip install giv
# 2. Use the install script which detects compatibility
curl -fsSL https://raw.githubusercontent.com/fwdslsh/giv/main/install.sh | sh
# 3. For very old systems, run from source
git clone https://github.com/fwdslsh/giv.git && cd giv && pip install .
Supported Systems:
- Linux: GLIBC 2.31+ (Ubuntu 20.04+, RHEL 8+, Debian 10+)
- macOS: 10.15+ (Catalina and newer)
- Windows: Windows 10 1909+ (November 2019 Update)
For other issues, check our troubleshooting guide.
🔧 Development
git clone https://github.com/fwdslsh/giv.git
cd giv
poetry install
poetry run pytest
🛠️ Build & Release Automation
All builds and releases are handled by GitHub Actions:
- Version bump: Edit
pyproject.tomland push tomain. - Release: Create a new release/tag on GitHub, and all binaries/packages are built and published automatically.
- No manual build scripts required.
Development Details: Build system and contributing →
📄 License
MIT License - see LICENSE file for details.
🔗 Quick Links
- 📥 Releases - Download binaries
- 🐛 Issues - Report bugs
- 💬 Discussions - Community support
- 🗺️ Roadmap - Planned features
Transform your Git history into professional documentation with the power of AI.
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
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 giv-0.5.6.tar.gz.
File metadata
- Download URL: giv-0.5.6.tar.gz
- Upload date:
- Size: 69.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.11.0rc1 Linux/6.8.0-65-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fd28d3fb7e2cacc8f203118207d5e32e877cd3bb231c93e5edfe835b38e7561
|
|
| MD5 |
a882c7421450f697d82118e277f2cfde
|
|
| BLAKE2b-256 |
2f6b6fbef6bc87f27c1751d230063201a95b41350208461f9d721cf2603567aa
|
File details
Details for the file giv-0.5.6-py3-none-any.whl.
File metadata
- Download URL: giv-0.5.6-py3-none-any.whl
- Upload date:
- Size: 88.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.11.0rc1 Linux/6.8.0-65-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f503b545b6a9502b48699bd6b56b493c0aedc93175d5fad7e96a949f0acef134
|
|
| MD5 |
c6a7e4cb4450e55a67ef5ac8f0b23171
|
|
| BLAKE2b-256 |
32e886a7e6fc24cb2bbcf447d69718cd2145173c2648694ceac27a29da1f5814
|