# Git-LLM-Tool
[](https://python.org)
[](https://opensource.org/licenses/MIT)
[](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[](https://python.org)\n[](https://opensource.org/licenses/MIT)\n[](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"
}