giv


Namegiv JSON
Version 0.6.0 PyPI version JSON
download
home_pagehttps://github.com/fwdslsh/giv
SummaryIntelligent Git commit message and changelog generator powered by AI
upload_time2025-08-10 05:24:09
maintainerNone
docs_urlNone
authorfwdslsh
requires_python<3.14,>=3.9.0
licenseMIT
keywords git commit ai changelog cli llm openai
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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](https://img.shields.io/badge/build-passing-green)]()
[![Python](https://img.shields.io/badge/python-3.8%2B-blue)](https://python.org)
[![License](https://img.shields.io/badge/license-MIT-green)](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[![Build Status](https://img.shields.io/badge/build-passing-green)]()\n[![Python](https://img.shields.io/badge/python-3.8%2B-blue)](https://python.org)\n[![License](https://img.shields.io/badge/license-MIT-green)](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"
}
        
Elapsed time: 1.02414s