AI-powered Git CLI for commits, changelogs, and semantic versioning.
Project description
🚀 TGIT - Tool for Git Interaction Temptation
TGIT is an AI-powered Git CLI for commit messages, changelog generation, and semantic versioning.
- Generate conventional commits from staged changes
- Build changelogs from commit history
- Bump versions across common project files
- Manage settings from
.tgit.yamlor an interactive CLI
🔗 Links
- Repository: https://github.com/Jannchie/tgit
- Issues: https://github.com/Jannchie/tgit/issues
- Changelog: https://github.com/Jannchie/tgit/blob/main/CHANGELOG.md
✨ Features
🤖 AI-Powered Commits
- Generate conventional commit messages automatically using OpenAI
- Smart diff analysis that focuses on meaningful changes
- Support for custom commit types and emojis
- Breaking change detection
- Two-level secret scanning: prompts (default yes) for key names and blocking prompts for exposed values
📝 Automated Changelog
- Generate beautiful, structured changelogs from conventional commits
- Group commits by type with emoji categorization
- Support for multiple output formats
- Automatic git remote URL detection for commit links
🔢 Intelligent Version Management
- Semantic versioning with pre-release support
- Support for multiple project files (package.json, pyproject.toml, Cargo.toml, etc.)
- Automatic version bumping based on commit history
- Git tagging integration
⚙️ Flexible Configuration
- Global and workspace-specific settings
- YAML-based configuration files
- Interactive settings management
- Customizable commit types and emojis
🚀 Quick Start
Installation
uv tool install tgit
pipx install tgit
pip install tgit
Basic Usage
# Configure TGIT
tgit settings
# Generate an AI-powered commit message from staged changes
tgit commit
# Generate changelog for current version
tgit changelog
# Bump version and generate changelog
tgit version
Configuration
The recommended way to configure TGIT is through the interactive settings command:
# Interactive configuration - recommended!
tgit settings
This will guide you through setting up:
- OpenAI API key for AI-powered commits
- Preferred AI model (gpt-5-mini, gpt-4.1, etc.)
- Optional reasoning effort override (
none,minimal,low,medium,high,xhigh) - Commit emoji preferences
- Custom commit types
- Global and workspace settings paths during view and save flows
- Workspace overrides using effective defaults, with empty values falling back to inherited settings
Alternatively, you can manually create a .tgit.yaml file in your project root or ~/.tgit.yaml for global settings:
apiKey: "your-openai-api-key"
model: "gpt-5-mini"
reasoning_effort: "medium"
commit:
emoji: true
types:
- type: "feat"
emoji: "✨"
- type: "fix"
emoji: "🐛"
📖 Commands
Commit
# AI-powered commit
tgit commit
# Breaking change commit
tgit commit --breaking "remove deprecated api"
Changelog
# Generate changelog for current version
tgit changelog
# Generate changelog from specific version
tgit changelog --from v1.0.0
# Generate changelog to specific version
tgit changelog --to v2.0.0
Version
# Interactive version bump
tgit version
# Limit to root only (disable recursive bump)
tgit version --no-recursive
# Bump specific version type
tgit version --patch
tgit version --minor
tgit version --major
# Pre-release version
tgit version --prerelease alpha
Settings
# Interactive settings configuration
tgit settings
# Show current settings
tgit settings --show
When configuring workspace settings interactively, TGIT shows the effective values that are currently in use. Leave a string field empty to inherit from the global/default value, or choose Follow global/default for boolean settings.
You can also override the default reasoning effort used for AI commit generation with reasoning_effort. Use auto in the non-interactive settings command, or leave the field empty in interactive settings, to omit the field and fall back to the model-specific default. Those defaults vary by model family, for example gpt-5 defaults to medium, while gpt-5.4-mini defaults to none.
🛠️ Development
Setup
# Clone the repository
git clone https://github.com/Jannchie/tgit.git
cd tgit
# Install dependencies
uv sync
Testing
# Run all tests
./scripts/test.sh
# Run with coverage
./scripts/test.sh --coverage 90
# Run specific test types
./scripts/test.sh --unit
./scripts/test.sh --integration
Code Quality
# Run linting
uv run ruff check .
# Run formatting
uv run ruff format .
# Build package
uv build
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
📞 Support
If you encounter any problems or have suggestions, please open an issue on GitHub.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tgit-0.30.0.tar.gz.
File metadata
- Download URL: tgit-0.30.0.tar.gz
- Upload date:
- Size: 135.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1206a6448525fe5722e3c3e0f584f5bd8c16f392af40f28a811e131c2169900
|
|
| MD5 |
ae25032f4a266da41da150a589465395
|
|
| BLAKE2b-256 |
01d01cdeff7ba0c10a44870a2189329cf8c7b557e2bf91f881e7c46a2b322df2
|
File details
Details for the file tgit-0.30.0-py3-none-any.whl.
File metadata
- Download URL: tgit-0.30.0-py3-none-any.whl
- Upload date:
- Size: 35.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf23f05a60cb9ece5e3b52924a2124586800452cf45c319ae1fa5695867ddb00
|
|
| MD5 |
3a9df7e7806e2d078be255172417e0bf
|
|
| BLAKE2b-256 |
8586edfaf62d69b15986e1a386a1f5dff4207acc95e4bfb5cc4b12a09c5e380c
|