# 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.
[]()
[](https://python.org)
[](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
```bash
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 β](docs/installation.md)
## π Getting Started
```bash
# 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 β](docs/app-spec.md)
## βοΈ Basic Configuration
Set up your AI provider:
```bash
# 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 β](docs/configuration.md)
## π¨ Customization
```bash
# 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 β](docs/app-spec.md#5-template-system)
## π Documentation
- **[Installation Guide](docs/installation.md)** - All installation methods and troubleshooting
- **[Configuration](docs/configuration.md)** - Complete configuration reference
- **[App Specification](docs/app-spec.md)** - Commands, usage, and template system
- **[Build System](docs/build-system-review.md)** - Technical architecture
- **[Publishing Guide](docs/how-to-publish.md)** - 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 β](docs/configuration.md#configuration-examples)
## π§ 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:
```bash
# 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](docs/troubleshooting.md).
## π§ Development
```bash
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 β](docs/build-system-review.md)
## π License
MIT License - see [LICENSE](LICENSE) file for details.
## π Quick Links
- [π₯ Releases](https://github.com/fwdslsh/giv/releases) - Download binaries
- [π Issues](https://github.com/fwdslsh/giv/issues) - Report bugs
- [π¬ Discussions](https://github.com/fwdslsh/giv/discussions) - Community support
- [πΊοΈ Roadmap](docs/roadmap.md) - Planned features
## π³ Docker Container
Run giv using the official Docker container:
```bash
# 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](https://hub.docker.com/r/fwdslsh/giv)
---
*Transform your Git history into professional documentation with the power of AI.*
Raw data
{
"_id": null,
"home_page": "https://github.com/fwdslsh/giv",
"name": "giv",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.9.0",
"maintainer_email": null,
"keywords": "git, commit, ai, changelog, cli, llm, openai",
"author": "fwdslsh",
"author_email": "fwdslshdev@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/ff/9b/8a67b011e016a0fe461466bc13ac001b7a41c2c49c08a9a4c522d3f7c205/giv-0.6.0.tar.gz",
"platform": null,
"description": "# giv - AI-Powered Git History Assistant\n\n**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.\n\n[]()\n[](https://python.org)\n[](LICENSE)\n\n## \u2728 Key Features\n\n- **\ud83d\ude80 Self-contained binaries** - No Python installation required\n- **\ud83e\udd16 Multiple AI backends** - OpenAI, Anthropic, Ollama, and custom endpoints \n- **\ud83d\udcdd Rich command suite** - Generate messages, summaries, changelogs, and release notes\n- **\ud83c\udfaf Smart Git integration** - Support for revision ranges, pathspecs, and staged changes\n- **\u2699\ufe0f Flexible configuration** - Project and user-level settings with inheritance\n- **\ud83d\udd27 Template system** - Customizable prompts for all output types\n\n## \ud83d\ude80 Quick Install\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/fwdslsh/giv/main/install.sh | sh\n```\n\n**Automated Releases:**\nAll binaries and PyPI packages are built and published automatically via GitHub Actions when a new version is pushed or released.\nNo manual build steps required for contributors\u2014just bump the version, push, and create a release tag.\nRelease assets (binaries and PyPI packages) are attached to each GitHub release.\n\n**Other Installation Methods:** [PyPI, install script, manual install, or build from source \u2192](docs/installation.md)\n\n## \ud83c\udfc1 Getting Started\n\n```bash\n# Initialize giv in your project\ngiv init\n\n# Generate commit message for current changes\ngiv message\n\n# Create changelog entry\ngiv changelog v1.0.0..HEAD\n\n# Generate release notes\ngiv release-notes v1.2.0..HEAD\n```\n\n**Detailed Usage Guide:** [Command examples and advanced usage \u2192](docs/app-spec.md)\n\n## \u2699\ufe0f Basic Configuration\n\nSet up your AI provider:\n\n```bash\n# Quick setup with environment variables (recommended)\nexport OPENAI_API_KEY=\"your-api-key\"\nexport GIV_API_MODEL=\"gpt-4\"\n\n# Or configure via giv\ngiv config set api.url \"https://api.openai.com/v1/chat/completions\"\ngiv config set api.model \"gpt-4\"\n```\n\n**Complete Configuration Guide:** [All settings and providers \u2192](docs/configuration.md)\n\n## \ud83c\udfa8 Customization\n\n```bash\n# Initialize project templates\ngiv init\n\n# Edit templates\nnano .giv/templates/commit_message_prompt.md\nnano .giv/templates/changelog_prompt.md\n\n# Use custom template\ngiv message --prompt-file custom-prompt.md\n```\n\n**Template System:** [Customization and variables \u2192](docs/app-spec.md#5-template-system)\n\n## \ud83d\udcd6 Documentation\n\n- **[Installation Guide](docs/installation.md)** - All installation methods and troubleshooting\n- **[Configuration](docs/configuration.md)** - Complete configuration reference\n- **[App Specification](docs/app-spec.md)** - Commands, usage, and template system\n- **[Build System](docs/build-system-review.md)** - Technical architecture\n- **[Publishing Guide](docs/how-to-publish.md)** - Release process for contributors\n\n## \ud83e\udd16 Supported AI Providers\n\n- **OpenAI** - GPT-4, GPT-3.5-turbo\n- **Anthropic** - Claude 3.5 Sonnet, Claude 3 Opus\n- **Local (Ollama)** - Llama 3.2, Code Llama, and more\n- **Custom endpoints** - Any OpenAI-compatible API\n\n**Provider Setup Examples:** [Configuration guide \u2192](docs/configuration.md#configuration-examples)\n\n## \ud83d\udd27 Troubleshooting\n\n### Linux Binary Compatibility Issues\n\nIf you encounter an error like `GLIBC_2.XX not found`, this means your system has an older version of GLIBC than required:\n\n```bash\n# Check your GLIBC version\nldd --version\n\n# If you have GLIBC < 2.31, use one of these alternatives:\n# 1. Install via pip (works on any Python 3.9+)\npip install giv\n\n# 2. Use the install script which detects compatibility\ncurl -fsSL https://raw.githubusercontent.com/fwdslsh/giv/main/install.sh | sh\n\n# 3. For very old systems, run from source\ngit clone https://github.com/fwdslsh/giv.git && cd giv && pip install .\n```\n\n**Supported Systems:**\n- Linux: GLIBC 2.31+ (Ubuntu 20.04+, RHEL 8+, Debian 10+)\n- macOS: 10.15+ (Catalina and newer)\n- Windows: Windows 10 1909+ (November 2019 Update)\n\nFor other issues, check our [troubleshooting guide](docs/troubleshooting.md).\n\n## \ud83d\udd27 Development\n\n```bash\ngit clone https://github.com/fwdslsh/giv.git\ncd giv\npoetry install\npoetry run pytest\n```\n\n## \ud83d\udee0\ufe0f Build & Release Automation\n\nAll builds and releases are handled by GitHub Actions:\n- **Version bump:** Edit `pyproject.toml` and push to `main`.\n- **Release:** Create a new release/tag on GitHub, and all binaries/packages are built and published automatically.\n- **No manual build scripts required.**\n\n**Development Details:** [Build system and contributing \u2192](docs/build-system-review.md)\n\n## \ud83d\udcc4 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## \ud83d\udd17 Quick Links\n\n- [\ud83d\udce5 Releases](https://github.com/fwdslsh/giv/releases) - Download binaries\n- [\ud83d\udc1b Issues](https://github.com/fwdslsh/giv/issues) - Report bugs\n- [\ud83d\udcac Discussions](https://github.com/fwdslsh/giv/discussions) - Community support\n- [\ud83d\uddfa\ufe0f Roadmap](docs/roadmap.md) - Planned features\n\n## \ud83d\udc33 Docker Container\n\nRun giv using the official Docker container:\n\n```bash\n# Pull the latest Docker image\ndocker pull fwdslsh/giv:latest\n\n# Run giv commands\n# Example: Generate a commit message\ndocker run --rm fwdslsh/giv message\n\n# Run an interactive shell\ndocker run -it fwdslsh/giv\n```\n\n**Docker Hub:** [fwdslsh/giv](https://hub.docker.com/r/fwdslsh/giv)\n\n---\n\n*Transform your Git history into professional documentation with the power of AI.*",
"bugtrack_url": null,
"license": "MIT",
"summary": "Intelligent Git commit message and changelog generator powered by AI",
"version": "0.6.0",
"project_urls": {
"Documentation": "https://github.com/fwdslsh/giv/blob/main/README.md",
"Homepage": "https://github.com/fwdslsh/giv",
"Repository": "https://github.com/fwdslsh/giv"
},
"split_keywords": [
"git",
" commit",
" ai",
" changelog",
" cli",
" llm",
" openai"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "beb1556b65202f6d60061230f2240e759b5b1ca2754f5b6252f52477fcb8952e",
"md5": "9b5a6175061a12a20c9c89f2af8cf390",
"sha256": "33b15f5b74eff69bbf0957a0b194e232274b26ec45690444b9bc2d5b65eca452"
},
"downloads": -1,
"filename": "giv-0.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9b5a6175061a12a20c9c89f2af8cf390",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.9.0",
"size": 88704,
"upload_time": "2025-08-10T05:24:07",
"upload_time_iso_8601": "2025-08-10T05:24:07.901688Z",
"url": "https://files.pythonhosted.org/packages/be/b1/556b65202f6d60061230f2240e759b5b1ca2754f5b6252f52477fcb8952e/giv-0.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ff9b8a67b011e016a0fe461466bc13ac001b7a41c2c49c08a9a4c522d3f7c205",
"md5": "22c100ae3b8d335f8099b9c0317086f5",
"sha256": "0d4413a49c40f7afa5b6038e27f524180261afcf4874d9b02e89c6d292857e62"
},
"downloads": -1,
"filename": "giv-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "22c100ae3b8d335f8099b9c0317086f5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.9.0",
"size": 69749,
"upload_time": "2025-08-10T05:24:09",
"upload_time_iso_8601": "2025-08-10T05:24:09.097794Z",
"url": "https://files.pythonhosted.org/packages/ff/9b/8a67b011e016a0fe461466bc13ac001b7a41c2c49c08a9a4c522d3f7c205/giv-0.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-10 05:24:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "fwdslsh",
"github_project": "giv",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "giv"
}