Skip to main content

AI-powered Git commit message generator from your terminal

Project description

gitta

AI-powered Git commit messages and PR descriptions from your terminal.

Gitta Demo

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.

Recommended Configuration

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

gitta-0.1.6.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitta-0.1.6-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

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

Hashes for gitta-0.1.6.tar.gz
Algorithm Hash digest
SHA256 7cbd8d09cdb7c92c46c3e0bef7d4417a2b5f48e2c0b9b79b23f338c98e9104d5
MD5 7a0abd4d726ad7ed6510f6ea9e765534
BLAKE2b-256 281e14437542750fb94b66c0ee0d81f40648aa9b1ca53bacd86a5bf9a9412e45

See more details on using hashes here.

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

Hashes for gitta-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 1415d2c7d2f231a447f0a92ec7be0bd2dd5b2b0d08a6df97fcfb62fe00d8b8a1
MD5 93bcbaab0444b96aa7f5313042af621a
BLAKE2b-256 accfd52bfe91cd214ffb2720977499c83b48d2983e1a8b2464b4cedc24d1d51f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page