Skip to main content

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.

Build Status Python License

✨ 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

🤖 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.toml and push to main.
  • 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

🐳 Docker Container

Run giv using the official Docker container:

# Pull the latest Docker image
docker pull fwdslsh/giv:latest

# Run giv commands
# Example: Generate a commit message
docker run --rm fwdslsh/giv message

# Run an interactive shell
docker run -it fwdslsh/giv

Docker Hub: fwdslsh/giv


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

giv-0.6.0.tar.gz (69.7 kB view details)

Uploaded Source

Built Distribution

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

giv-0.6.0-py3-none-any.whl (88.7 kB view details)

Uploaded Python 3

File details

Details for the file giv-0.6.0.tar.gz.

File metadata

  • Download URL: giv-0.6.0.tar.gz
  • Upload date:
  • Size: 69.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.11.13 Linux/6.11.0-1018-azure

File hashes

Hashes for giv-0.6.0.tar.gz
Algorithm Hash digest
SHA256 0d4413a49c40f7afa5b6038e27f524180261afcf4874d9b02e89c6d292857e62
MD5 22c100ae3b8d335f8099b9c0317086f5
BLAKE2b-256 ff9b8a67b011e016a0fe461466bc13ac001b7a41c2c49c08a9a4c522d3f7c205

See more details on using hashes here.

File details

Details for the file giv-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: giv-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 88.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.11.13 Linux/6.11.0-1018-azure

File hashes

Hashes for giv-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 33b15f5b74eff69bbf0957a0b194e232274b26ec45690444b9bc2d5b65eca452
MD5 9b5a6175061a12a20c9c89f2af8cf390
BLAKE2b-256 beb1556b65202f6d60061230f2240e759b5b1ca2754f5b6252f52477fcb8952e

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