git-llm-tool


Namegit-llm-tool JSON
Version 0.1.4 PyPI version JSON
download
home_pagehttps://github.com/z0890142/git-llm-tool
SummaryAI-powered git commit message and changelog generator
upload_time2025-11-05 10:23:51
maintainerNone
docs_urlNone
authorskyler-gogolook
requires_python<4.0,>=3.12
licenseMIT
keywords git commit llm ai automation jira conventional-commits
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Git-LLM-Tool

[![Python Version](https://img.shields.io/badge/python-3.12+-blue.svg)](https://python.org)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Code Style: Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

AI-powered git commit message and changelog generator using LLM APIs.

## Table of Contents

- [Features](#features)
- [Installation](#installation)
- [Quick Start](#quick-start)
- [Configuration](#configuration)
- [CLI Commands Reference](#cli-commands-reference)
- [Environment Variables](#environment-variables)
- [Usage Examples](#usage-examples)
- [Supported Models](#supported-models)
- [Development](#development)
- [Contributing](#contributing)
- [Git Custom Command Integration](#git-custom-command-integration)
- [Troubleshooting](#troubleshooting)
- [License](#license)

## Features

- 🤖 **Smart Commit Messages**: Automatically generate commit messages from git diff using AI
- 📝 **Changelog Generation**: Generate structured changelogs from git history
- 🔧 **Multiple LLM Providers**: Support for OpenAI, Anthropic Claude, Google Gemini, and Azure OpenAI
- ⚙️ **Hierarchical Configuration**: Project-level and global configuration support
- 🎯 **Jira Integration**: Automatic ticket detection and work hours tracking
- 🌐 **Multi-language Support**: Generate messages in different languages
- ✏️ **Editor Integration**: Configurable editor support for reviewing commit messages
- 🚀 **Easy Setup**: Simple installation and configuration

## Installation

### From PyPI (Coming Soon)
```bash
pip install git-llm-tool
```

### From Source
```bash
git clone https://github.com/z0890142/git-llm-tool.git
cd git-llm-tool
poetry install
```

## Quick Start

### 1. Initialize Configuration
```bash
git-llm config init
```

### 2. Configure Your API Key
Choose one of the supported providers:

```bash
# OpenAI
git-llm config set llm.api_keys.openai sk-your-openai-key-here

# Anthropic Claude
git-llm config set llm.api_keys.anthropic sk-ant-your-key-here

# Google Gemini
git-llm config set llm.api_keys.google your-gemini-key-here

# Azure OpenAI
git-llm config set llm.api_keys.azure_openai your-azure-key
git-llm config set llm.azure_openai.endpoint https://your-resource.openai.azure.com/
git-llm config set llm.azure_openai.deployment_name gpt-4o
```

### 3. Generate Commit Messages
```bash
# Stage your changes
git add .

# Generate and review commit message (opens editor)
git-llm commit

# Or apply directly without review
git-llm commit --apply
```

### 4. Generate Changelogs
```bash
# Generate changelog from last tag to HEAD
git-llm changelog

# Generate changelog for specific range
git-llm changelog --from v1.0.0 --to v2.0.0
```

## Configuration

### Configuration Hierarchy

The tool uses a hierarchical configuration system (highest to lowest priority):
1. **CLI flags** (highest priority)
2. **Project config** `.git-llm-tool.yaml`
3. **Global config** `~/.git-llm-tool/config.yaml`
4. **Environment variables**
5. **Default values**

### Configuration Options

#### LLM Settings
```bash
# Set default model
git-llm config set llm.default_model gpt-4o

# Set output language (en, zh, ja, etc.)
git-llm config set llm.language en

# API Keys
git-llm config set llm.api_keys.openai sk-your-key
git-llm config set llm.api_keys.anthropic sk-ant-your-key
git-llm config set llm.api_keys.google your-key

# Azure OpenAI specific settings
git-llm config set llm.azure_openai.endpoint https://your-resource.openai.azure.com/
git-llm config set llm.azure_openai.api_version 2024-12-01-preview
git-llm config set llm.azure_openai.deployment_name gpt-4o
```

#### Editor Configuration
```bash
# Set preferred editor for commit message review
git-llm config set editor.preferred_editor vi
git-llm config set editor.preferred_editor nano
git-llm config set editor.preferred_editor "code --wait"  # VS Code
git-llm config set editor.preferred_editor "subl --wait"  # Sublime Text
```

**Editor Priority (highest to lowest):**
1. `editor.preferred_editor` config
2. `git config core.editor`
3. Environment variables (`GIT_EDITOR`, `VISUAL`, `EDITOR`)
4. System defaults (`nano`, `vim`, `vi`)

#### Jira Integration
```bash
# Enable Jira integration
git-llm config set jira.enabled true

# Set branch regex pattern for ticket extraction
git-llm config set jira.branch_regex '^(feat|fix|chore)\/([A-Z]+-\d+)\/.+$'
```

### Example Configuration File

Global config (`~/.git-llm-tool/config.yaml`):
```yaml
llm:
  default_model: 'gpt-4o'
  language: 'en'
  api_keys:
    openai: 'sk-your-openai-key'
    anthropic: 'sk-ant-your-key'
    google: 'your-gemini-key'
  azure_openai:
    endpoint: 'https://your-resource.openai.azure.com/'
    api_version: '2024-12-01-preview'
    deployment_name: 'gpt-4o'

editor:
  preferred_editor: 'vi'

jira:
  enabled: true
  branch_regex: '^(feat|fix|chore)\/([A-Z]+-\d+)\/.+$'
```

### View Configuration
```bash
# View all configuration
git-llm config get

# View specific setting
git-llm config get llm.default_model
git-llm config get editor.preferred_editor
```

## CLI Commands Reference

### Commit Command
```bash
git-llm commit [OPTIONS]

Options:
  -a, --apply          Apply commit message directly without opening editor
  -m, --model TEXT     Override LLM model (e.g., gpt-4, claude-3-sonnet)
  -l, --language TEXT  Override output language (e.g., en, zh, ja)
  -v, --verbose        Enable verbose output
  --help               Show help message
```

### Changelog Command
```bash
git-llm changelog [OPTIONS]

Options:
  --from TEXT     Starting reference (default: last tag)
  --to TEXT       Ending reference (default: HEAD)
  -o, --output TEXT  Output file (default: stdout)
  -f, --force        Force overwrite existing output file
  --help             Show help message
```

### Config Commands
```bash
git-llm config init                    # Initialize configuration
git-llm config get [KEY]              # Get configuration value(s)
git-llm config set KEY VALUE          # Set configuration value
```

## Environment Variables

You can also configure the tool using environment variables:

```bash
# LLM API Keys
export OPENAI_API_KEY="sk-your-openai-key"
export ANTHROPIC_API_KEY="sk-ant-your-key"
export GOOGLE_API_KEY="your-gemini-key"

# Azure OpenAI
export AZURE_OPENAI_API_KEY="your-azure-key"
export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com/"
export AZURE_OPENAI_API_VERSION="2024-12-01-preview"
export AZURE_OPENAI_DEPLOYMENT_NAME="gpt-4o"

# Override default model
export GIT_LLM_MODEL="gpt-4o"
export GIT_LLM_LANGUAGE="en"
```

## Usage Examples

### Basic Workflow
```bash
# 1. Make changes to your code
echo "console.log('Hello World');" > app.js

# 2. Stage changes
git add app.js

# 3. Generate commit message with review
git-llm commit
# Opens your editor with AI-generated message for review

# 4. Or apply directly
git-llm commit --apply
```

### Using Different Models
```bash
# Use specific model for this commit
git-llm commit --model claude-3-sonnet

# Use different language
git-llm commit --language zh
```

### Project-specific Configuration
Create `.git-llm-tool.yaml` in your project root:
```yaml
llm:
  default_model: 'claude-3-sonnet'
  language: 'zh'
editor:
  preferred_editor: 'code --wait'
jira:
  enabled: true
  branch_regex: '^(feat|fix|docs)\/([A-Z]+-\d+)\/.+$'
```

## Supported Models

### OpenAI
- `gpt-4o` (recommended)
- `gpt-4o-mini`
- `gpt-4-turbo`
- `gpt-3.5-turbo`

### Anthropic Claude
- `claude-3-5-sonnet-20241022` (recommended)
- `claude-3-5-haiku-20241022`
- `claude-3-opus-20240229`

### Google Gemini
- `gemini-1.5-pro`
- `gemini-1.5-flash`

### Azure OpenAI
- Any deployment of the above OpenAI models

## Development

### Setup Development Environment
```bash
# Clone repository
git clone https://github.com/z0890142/git-llm-tool.git
cd git-llm-tool

# Install dependencies
poetry install

# Install pre-commit hooks
poetry run pre-commit install
```

### Running Tests
```bash
# Run all tests
poetry run pytest

# Run with coverage
poetry run pytest --cov=git_llm_tool

# Run specific test file
poetry run pytest tests/test_config.py
```

### Code Formatting
```bash
# Format code
poetry run black .
poetry run isort .

# Check formatting
poetry run black --check .
poetry run flake8 .
```

### Building and Publishing
```bash
# Build package
poetry build

# Publish to PyPI (maintainers only)
poetry publish
```

## Contributing

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Add tests for new functionality
5. Ensure all tests pass (`poetry run pytest`)
6. Format code (`poetry run black . && poetry run isort .`)
7. Commit your changes (`git-llm commit` 😉)
8. Push to the branch (`git push origin feature/amazing-feature`)
9. Open a Pull Request

## Git Custom Command Integration

You can integrate git-llm as a native git subcommand, allowing you to use `git llm` instead of `git-llm`.

### Method 1: Git Aliases (Recommended)

Add aliases to your git configuration:

```bash
# Add git aliases for all commands
git config --global alias.llm-commit '!git-llm commit'
git config --global alias.llm-changelog '!git-llm changelog'
git config --global alias.llm-config '!git-llm config'

# Or create a general alias
git config --global alias.llm '!git-llm'
```

Now you can use:
```bash
git llm commit              # Instead of git-llm commit
git llm changelog           # Instead of git-llm changelog
git llm config get          # Instead of git-llm config get

# Or with specific aliases
git llm-commit              # Direct alias to git-llm commit
git llm-changelog           # Direct alias to git-llm changelog
```

### Method 2: Shell Aliases

Add to your shell profile (`.bashrc`, `.zshrc`, etc.):

```bash
# Simple alias
alias gllm='git-llm'

# Or git-style aliases
alias gllmc='git-llm commit'
alias gllmcl='git-llm changelog'
alias gllmcfg='git-llm config'
```

Usage:
```bash
gllm commit                 # git-llm commit
gllmc                       # git-llm commit
gllmcl                      # git-llm changelog
```

### Method 3: Custom Git Script

Create a custom git command script:

```bash
# Create git-llm script in your PATH
sudo tee /usr/local/bin/git-llm > /dev/null << 'EOF'
#!/bin/bash
# Git-LLM integration script
exec git-llm "$@"
EOF

sudo chmod +x /usr/local/bin/git-llm
```

Now you can use:
```bash
git llm commit              # Calls git-llm commit
git llm changelog           # Calls git-llm changelog
```

### Recommended Git Workflow

With git aliases configured, your workflow becomes:

```bash
# Make changes
echo "console.log('Hello');" > app.js

# Stage changes
git add .

# Generate AI commit message (opens editor)
git llm commit

# Or commit directly
git llm commit --apply

# Generate changelog
git llm changelog

# Check configuration
git llm config get
```

## Requirements

- Python 3.12+
- Git
- At least one LLM provider API key

## Troubleshooting

### Common Issues

**"No suitable editor found"**
- Set your preferred editor: `git-llm config set editor.preferred_editor vi`
- Or set git editor: `git config --global core.editor vi`

**"No staged changes found"**
- Stage your changes first: `git add .`

**"API Error: Invalid API key"**
- Check your API key configuration: `git-llm config get`
- Ensure the key is correctly set: `git-llm config set llm.api_keys.openai sk-your-key`

**"No commits found in range"**
- Make sure you have commits in the specified range
- Check git log: `git log --oneline`

## License

MIT License
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/z0890142/git-llm-tool",
    "name": "git-llm-tool",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.12",
    "maintainer_email": null,
    "keywords": "git, commit, llm, ai, automation, jira, conventional-commits",
    "author": "skyler-gogolook",
    "author_email": "skyler.lo@gogolook.com",
    "download_url": "https://files.pythonhosted.org/packages/bc/8b/f8f620a3ddf04b88e1f716d023bb49bbea88fcfca68ac49840b1f5948eab/git_llm_tool-0.1.4.tar.gz",
    "platform": null,
    "description": "# Git-LLM-Tool\n\n[![Python Version](https://img.shields.io/badge/python-3.12+-blue.svg)](https://python.org)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Code Style: Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\nAI-powered git commit message and changelog generator using LLM APIs.\n\n## Table of Contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Configuration](#configuration)\n- [CLI Commands Reference](#cli-commands-reference)\n- [Environment Variables](#environment-variables)\n- [Usage Examples](#usage-examples)\n- [Supported Models](#supported-models)\n- [Development](#development)\n- [Contributing](#contributing)\n- [Git Custom Command Integration](#git-custom-command-integration)\n- [Troubleshooting](#troubleshooting)\n- [License](#license)\n\n## Features\n\n- \ud83e\udd16 **Smart Commit Messages**: Automatically generate commit messages from git diff using AI\n- \ud83d\udcdd **Changelog Generation**: Generate structured changelogs from git history\n- \ud83d\udd27 **Multiple LLM Providers**: Support for OpenAI, Anthropic Claude, Google Gemini, and Azure OpenAI\n- \u2699\ufe0f **Hierarchical Configuration**: Project-level and global configuration support\n- \ud83c\udfaf **Jira Integration**: Automatic ticket detection and work hours tracking\n- \ud83c\udf10 **Multi-language Support**: Generate messages in different languages\n- \u270f\ufe0f **Editor Integration**: Configurable editor support for reviewing commit messages\n- \ud83d\ude80 **Easy Setup**: Simple installation and configuration\n\n## Installation\n\n### From PyPI (Coming Soon)\n```bash\npip install git-llm-tool\n```\n\n### From Source\n```bash\ngit clone https://github.com/z0890142/git-llm-tool.git\ncd git-llm-tool\npoetry install\n```\n\n## Quick Start\n\n### 1. Initialize Configuration\n```bash\ngit-llm config init\n```\n\n### 2. Configure Your API Key\nChoose one of the supported providers:\n\n```bash\n# OpenAI\ngit-llm config set llm.api_keys.openai sk-your-openai-key-here\n\n# Anthropic Claude\ngit-llm config set llm.api_keys.anthropic sk-ant-your-key-here\n\n# Google Gemini\ngit-llm config set llm.api_keys.google your-gemini-key-here\n\n# Azure OpenAI\ngit-llm config set llm.api_keys.azure_openai your-azure-key\ngit-llm config set llm.azure_openai.endpoint https://your-resource.openai.azure.com/\ngit-llm config set llm.azure_openai.deployment_name gpt-4o\n```\n\n### 3. Generate Commit Messages\n```bash\n# Stage your changes\ngit add .\n\n# Generate and review commit message (opens editor)\ngit-llm commit\n\n# Or apply directly without review\ngit-llm commit --apply\n```\n\n### 4. Generate Changelogs\n```bash\n# Generate changelog from last tag to HEAD\ngit-llm changelog\n\n# Generate changelog for specific range\ngit-llm changelog --from v1.0.0 --to v2.0.0\n```\n\n## Configuration\n\n### Configuration Hierarchy\n\nThe tool uses a hierarchical configuration system (highest to lowest priority):\n1. **CLI flags** (highest priority)\n2. **Project config** `.git-llm-tool.yaml`\n3. **Global config** `~/.git-llm-tool/config.yaml`\n4. **Environment variables**\n5. **Default values**\n\n### Configuration Options\n\n#### LLM Settings\n```bash\n# Set default model\ngit-llm config set llm.default_model gpt-4o\n\n# Set output language (en, zh, ja, etc.)\ngit-llm config set llm.language en\n\n# API Keys\ngit-llm config set llm.api_keys.openai sk-your-key\ngit-llm config set llm.api_keys.anthropic sk-ant-your-key\ngit-llm config set llm.api_keys.google your-key\n\n# Azure OpenAI specific settings\ngit-llm config set llm.azure_openai.endpoint https://your-resource.openai.azure.com/\ngit-llm config set llm.azure_openai.api_version 2024-12-01-preview\ngit-llm config set llm.azure_openai.deployment_name gpt-4o\n```\n\n#### Editor Configuration\n```bash\n# Set preferred editor for commit message review\ngit-llm config set editor.preferred_editor vi\ngit-llm config set editor.preferred_editor nano\ngit-llm config set editor.preferred_editor \"code --wait\"  # VS Code\ngit-llm config set editor.preferred_editor \"subl --wait\"  # Sublime Text\n```\n\n**Editor Priority (highest to lowest):**\n1. `editor.preferred_editor` config\n2. `git config core.editor`\n3. Environment variables (`GIT_EDITOR`, `VISUAL`, `EDITOR`)\n4. System defaults (`nano`, `vim`, `vi`)\n\n#### Jira Integration\n```bash\n# Enable Jira integration\ngit-llm config set jira.enabled true\n\n# Set branch regex pattern for ticket extraction\ngit-llm config set jira.branch_regex '^(feat|fix|chore)\\/([A-Z]+-\\d+)\\/.+$'\n```\n\n### Example Configuration File\n\nGlobal config (`~/.git-llm-tool/config.yaml`):\n```yaml\nllm:\n  default_model: 'gpt-4o'\n  language: 'en'\n  api_keys:\n    openai: 'sk-your-openai-key'\n    anthropic: 'sk-ant-your-key'\n    google: 'your-gemini-key'\n  azure_openai:\n    endpoint: 'https://your-resource.openai.azure.com/'\n    api_version: '2024-12-01-preview'\n    deployment_name: 'gpt-4o'\n\neditor:\n  preferred_editor: 'vi'\n\njira:\n  enabled: true\n  branch_regex: '^(feat|fix|chore)\\/([A-Z]+-\\d+)\\/.+$'\n```\n\n### View Configuration\n```bash\n# View all configuration\ngit-llm config get\n\n# View specific setting\ngit-llm config get llm.default_model\ngit-llm config get editor.preferred_editor\n```\n\n## CLI Commands Reference\n\n### Commit Command\n```bash\ngit-llm commit [OPTIONS]\n\nOptions:\n  -a, --apply          Apply commit message directly without opening editor\n  -m, --model TEXT     Override LLM model (e.g., gpt-4, claude-3-sonnet)\n  -l, --language TEXT  Override output language (e.g., en, zh, ja)\n  -v, --verbose        Enable verbose output\n  --help               Show help message\n```\n\n### Changelog Command\n```bash\ngit-llm changelog [OPTIONS]\n\nOptions:\n  --from TEXT     Starting reference (default: last tag)\n  --to TEXT       Ending reference (default: HEAD)\n  -o, --output TEXT  Output file (default: stdout)\n  -f, --force        Force overwrite existing output file\n  --help             Show help message\n```\n\n### Config Commands\n```bash\ngit-llm config init                    # Initialize configuration\ngit-llm config get [KEY]              # Get configuration value(s)\ngit-llm config set KEY VALUE          # Set configuration value\n```\n\n## Environment Variables\n\nYou can also configure the tool using environment variables:\n\n```bash\n# LLM API Keys\nexport OPENAI_API_KEY=\"sk-your-openai-key\"\nexport ANTHROPIC_API_KEY=\"sk-ant-your-key\"\nexport GOOGLE_API_KEY=\"your-gemini-key\"\n\n# Azure OpenAI\nexport AZURE_OPENAI_API_KEY=\"your-azure-key\"\nexport AZURE_OPENAI_ENDPOINT=\"https://your-resource.openai.azure.com/\"\nexport AZURE_OPENAI_API_VERSION=\"2024-12-01-preview\"\nexport AZURE_OPENAI_DEPLOYMENT_NAME=\"gpt-4o\"\n\n# Override default model\nexport GIT_LLM_MODEL=\"gpt-4o\"\nexport GIT_LLM_LANGUAGE=\"en\"\n```\n\n## Usage Examples\n\n### Basic Workflow\n```bash\n# 1. Make changes to your code\necho \"console.log('Hello World');\" > app.js\n\n# 2. Stage changes\ngit add app.js\n\n# 3. Generate commit message with review\ngit-llm commit\n# Opens your editor with AI-generated message for review\n\n# 4. Or apply directly\ngit-llm commit --apply\n```\n\n### Using Different Models\n```bash\n# Use specific model for this commit\ngit-llm commit --model claude-3-sonnet\n\n# Use different language\ngit-llm commit --language zh\n```\n\n### Project-specific Configuration\nCreate `.git-llm-tool.yaml` in your project root:\n```yaml\nllm:\n  default_model: 'claude-3-sonnet'\n  language: 'zh'\neditor:\n  preferred_editor: 'code --wait'\njira:\n  enabled: true\n  branch_regex: '^(feat|fix|docs)\\/([A-Z]+-\\d+)\\/.+$'\n```\n\n## Supported Models\n\n### OpenAI\n- `gpt-4o` (recommended)\n- `gpt-4o-mini`\n- `gpt-4-turbo`\n- `gpt-3.5-turbo`\n\n### Anthropic Claude\n- `claude-3-5-sonnet-20241022` (recommended)\n- `claude-3-5-haiku-20241022`\n- `claude-3-opus-20240229`\n\n### Google Gemini\n- `gemini-1.5-pro`\n- `gemini-1.5-flash`\n\n### Azure OpenAI\n- Any deployment of the above OpenAI models\n\n## Development\n\n### Setup Development Environment\n```bash\n# Clone repository\ngit clone https://github.com/z0890142/git-llm-tool.git\ncd git-llm-tool\n\n# Install dependencies\npoetry install\n\n# Install pre-commit hooks\npoetry run pre-commit install\n```\n\n### Running Tests\n```bash\n# Run all tests\npoetry run pytest\n\n# Run with coverage\npoetry run pytest --cov=git_llm_tool\n\n# Run specific test file\npoetry run pytest tests/test_config.py\n```\n\n### Code Formatting\n```bash\n# Format code\npoetry run black .\npoetry run isort .\n\n# Check formatting\npoetry run black --check .\npoetry run flake8 .\n```\n\n### Building and Publishing\n```bash\n# Build package\npoetry build\n\n# Publish to PyPI (maintainers only)\npoetry publish\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes\n4. Add tests for new functionality\n5. Ensure all tests pass (`poetry run pytest`)\n6. Format code (`poetry run black . && poetry run isort .`)\n7. Commit your changes (`git-llm commit` \ud83d\ude09)\n8. Push to the branch (`git push origin feature/amazing-feature`)\n9. Open a Pull Request\n\n## Git Custom Command Integration\n\nYou can integrate git-llm as a native git subcommand, allowing you to use `git llm` instead of `git-llm`.\n\n### Method 1: Git Aliases (Recommended)\n\nAdd aliases to your git configuration:\n\n```bash\n# Add git aliases for all commands\ngit config --global alias.llm-commit '!git-llm commit'\ngit config --global alias.llm-changelog '!git-llm changelog'\ngit config --global alias.llm-config '!git-llm config'\n\n# Or create a general alias\ngit config --global alias.llm '!git-llm'\n```\n\nNow you can use:\n```bash\ngit llm commit              # Instead of git-llm commit\ngit llm changelog           # Instead of git-llm changelog\ngit llm config get          # Instead of git-llm config get\n\n# Or with specific aliases\ngit llm-commit              # Direct alias to git-llm commit\ngit llm-changelog           # Direct alias to git-llm changelog\n```\n\n### Method 2: Shell Aliases\n\nAdd to your shell profile (`.bashrc`, `.zshrc`, etc.):\n\n```bash\n# Simple alias\nalias gllm='git-llm'\n\n# Or git-style aliases\nalias gllmc='git-llm commit'\nalias gllmcl='git-llm changelog'\nalias gllmcfg='git-llm config'\n```\n\nUsage:\n```bash\ngllm commit                 # git-llm commit\ngllmc                       # git-llm commit\ngllmcl                      # git-llm changelog\n```\n\n### Method 3: Custom Git Script\n\nCreate a custom git command script:\n\n```bash\n# Create git-llm script in your PATH\nsudo tee /usr/local/bin/git-llm > /dev/null << 'EOF'\n#!/bin/bash\n# Git-LLM integration script\nexec git-llm \"$@\"\nEOF\n\nsudo chmod +x /usr/local/bin/git-llm\n```\n\nNow you can use:\n```bash\ngit llm commit              # Calls git-llm commit\ngit llm changelog           # Calls git-llm changelog\n```\n\n### Recommended Git Workflow\n\nWith git aliases configured, your workflow becomes:\n\n```bash\n# Make changes\necho \"console.log('Hello');\" > app.js\n\n# Stage changes\ngit add .\n\n# Generate AI commit message (opens editor)\ngit llm commit\n\n# Or commit directly\ngit llm commit --apply\n\n# Generate changelog\ngit llm changelog\n\n# Check configuration\ngit llm config get\n```\n\n## Requirements\n\n- Python 3.12+\n- Git\n- At least one LLM provider API key\n\n## Troubleshooting\n\n### Common Issues\n\n**\"No suitable editor found\"**\n- Set your preferred editor: `git-llm config set editor.preferred_editor vi`\n- Or set git editor: `git config --global core.editor vi`\n\n**\"No staged changes found\"**\n- Stage your changes first: `git add .`\n\n**\"API Error: Invalid API key\"**\n- Check your API key configuration: `git-llm config get`\n- Ensure the key is correctly set: `git-llm config set llm.api_keys.openai sk-your-key`\n\n**\"No commits found in range\"**\n- Make sure you have commits in the specified range\n- Check git log: `git log --oneline`\n\n## License\n\nMIT License",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "AI-powered git commit message and changelog generator",
    "version": "0.1.4",
    "project_urls": {
        "Documentation": "https://github.com/z0890142/git-llm-tool#readme",
        "Homepage": "https://github.com/z0890142/git-llm-tool",
        "Repository": "https://github.com/z0890142/git-llm-tool"
    },
    "split_keywords": [
        "git",
        " commit",
        " llm",
        " ai",
        " automation",
        " jira",
        " conventional-commits"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5b0b4adaa626605992be2d733056e1380ef85511e42cb6702adb6d1e96028b1e",
                "md5": "87232e02fc467ec1084613403c6d1408",
                "sha256": "d95e42b43d1c2d91ecd5cf15502afe952699770f7474a1a835845e4ca3062a17"
            },
            "downloads": -1,
            "filename": "git_llm_tool-0.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "87232e02fc467ec1084613403c6d1408",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.12",
            "size": 28223,
            "upload_time": "2025-11-05T10:23:50",
            "upload_time_iso_8601": "2025-11-05T10:23:50.592865Z",
            "url": "https://files.pythonhosted.org/packages/5b/0b/4adaa626605992be2d733056e1380ef85511e42cb6702adb6d1e96028b1e/git_llm_tool-0.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bc8bf8f620a3ddf04b88e1f716d023bb49bbea88fcfca68ac49840b1f5948eab",
                "md5": "f0d06d700a28b8616191dd60448e8799",
                "sha256": "a3fcfa6207845899f1e5457351d040722221bffd63e4a6460d603ba1b8ff72a0"
            },
            "downloads": -1,
            "filename": "git_llm_tool-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "f0d06d700a28b8616191dd60448e8799",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.12",
            "size": 22402,
            "upload_time": "2025-11-05T10:23:51",
            "upload_time_iso_8601": "2025-11-05T10:23:51.802762Z",
            "url": "https://files.pythonhosted.org/packages/bc/8b/f8f620a3ddf04b88e1f716d023bb49bbea88fcfca68ac49840b1f5948eab/git_llm_tool-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-05 10:23:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "z0890142",
    "github_project": "git-llm-tool",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "git-llm-tool"
}
        
Elapsed time: 4.61939s