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.5.12.tar.gz (69.8 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.5.12-py3-none-any.whl (88.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: giv-0.5.12.tar.gz
  • Upload date:
  • Size: 69.8 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.5.12.tar.gz
Algorithm Hash digest
SHA256 2e2fa61c6e3c9990b567e329284f843187fbc7eac26d9556a7ed291b7b588d92
MD5 6fdb5cd3dd3877fc24538c63222082e5
BLAKE2b-256 f60598356ebdf50e22c1ac3992be51cd8758c89283fe9c4d6b441b105a141562

See more details on using hashes here.

File details

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

File metadata

  • Download URL: giv-0.5.12-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.5.12-py3-none-any.whl
Algorithm Hash digest
SHA256 5e250c95819133bc9a4d99cda7d4d8bd637884c9ac9808869bb0f28adfacb896
MD5 f2f33c07462ede05da1c62bcb14fb9ac
BLAKE2b-256 7af3e247da5a64e877907813867ad90869e9f330e86f841e33497cfae5bbca03

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