AI-powered Git commit message generator from your terminal
Project description
gitta
AI-powered Git commit messages and PR descriptions from your terminal.
Installation
pip install gitta
Quick Start
gitta init # Set up your AI provider
gitta add . # Stage files + generate commit message
gitta ship # Stage, commit, and push in one step
gitta pr --create # Generate and create a PR on GitHub
Usage
Setup
Run the interactive setup wizard to configure your AI provider:
gitta init
You'll be prompted for your provider name, API base URL, model, commit style, and API key. Your configuration is stored in ~/.gitta/config.toml.
Committing
Generate an AI-powered commit message from your staged changes:
gitta add . # Stage files + generate message
gitta commit # Generate message for already-staged files
gitta commit --dry-run # Preview without committing
You'll see the generated message and can confirm (y), edit (e), or cancel (n).
Split Commits
When changes span multiple modules, use --split to create scoped commits:
gitta commit --split
gitta add . --split
gitta ship --split
Gitta groups changes by module (e.g. cli, ai, core) and generates a message for each. You can then commit all separately, merge into one, or cancel.
To enable by default:
gitta config set multi_file true
Ship
Stage everything, generate a commit message, and push — all in one step:
gitta ship
Branch Names
Generate a branch name from a natural language description:
gitta branch "fix login timeout" # → fix/login-timeout
gitta branch "add user avatar upload" -c # Create and checkout the branch
Pull Requests
Generate a PR title and description from all commits on your branch:
gitta pr # Preview the generated title + body
gitta pr --create # Push branch and create PR on GitHub
gitta pr --create --draft # Create as draft
gitta pr --base develop # Compare against a specific base branch
When creating, you can confirm (y), edit (e), or cancel (n) before the PR is submitted. Requires the GitHub CLI (gh).
Explain
Explain what a commit or file change does in plain English:
gitta explain abc1234 # Explain a commit
gitta explain src/main.py # Explain uncommitted changes to a file
Merging
Merge the PR for your current branch directly from the terminal:
gitta merge # Merge commit (default)
gitta merge --squash # Squash and merge
gitta merge --rebase # Rebase and merge
gitta merge -D # Merge without deleting the remote branch
Requires the GitHub CLI (gh).
Utilities
gitta log # Show recent commits in a table
gitta log -n 20 # Show last 20 commits
gitta config list # Show all config values
gitta config get <key> # Get a config value
gitta config set <key> <value> # Update a config value
gitta doctor # Diagnose setup issues
Configuration
Config is stored in ~/.gitta/config.toml. Available settings:
| Key | Description | Default |
|---|---|---|
provider |
AI provider name (e.g. openai) |
— |
base_url |
API endpoint | — |
model |
Model identifier (e.g. gpt-4o) |
— |
style |
Commit format: conventional, simple, detailed |
— |
max_diff_chars |
Max diff size sent to AI | 32000 |
multi_file |
Enable split commits by default | false |
Project details
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 gitta-0.1.6.tar.gz.
File metadata
- Download URL: gitta-0.1.6.tar.gz
- Upload date:
- Size: 1.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cbd8d09cdb7c92c46c3e0bef7d4417a2b5f48e2c0b9b79b23f338c98e9104d5
|
|
| MD5 |
7a0abd4d726ad7ed6510f6ea9e765534
|
|
| BLAKE2b-256 |
281e14437542750fb94b66c0ee0d81f40648aa9b1ca53bacd86a5bf9a9412e45
|
File details
Details for the file gitta-0.1.6-py3-none-any.whl.
File metadata
- Download URL: gitta-0.1.6-py3-none-any.whl
- Upload date:
- Size: 35.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1415d2c7d2f231a447f0a92ec7be0bd2dd5b2b0d08a6df97fcfb62fe00d8b8a1
|
|
| MD5 |
93bcbaab0444b96aa7f5313042af621a
|
|
| BLAKE2b-256 |
accfd52bfe91cd214ffb2720977499c83b48d2983e1a8b2464b4cedc24d1d51f
|