Skip to main content

git-autoc

AI-powered git commit message generator. Reads your staged changes and writes a conventional commit message using any OpenAI-compatible API.

Features

  • Generates Conventional Commits from your staged diff
  • Uses your recent commit history for style-consistent output
  • Interactive confirmation (y / e / N) before committing
  • Dry-run mode with no side effects
  • Three body styles: long, bullet list, paragraph
  • Works with any OpenAI-compatible API (Ollama, LM Studio, OpenAI, …)
  • Configuration managed from the CLI — no .env

Installation

Requires Python 3.13+.

Run the latest version without installing anything:

uvx git-autoc --help

Or install it as a command so git-autoc lands on your PATH:

uv tool install git-autoc
git-autoc --help

Usage

Stage the changes you want to commit, then run:

uvx git-autoc

The tool generates a commit message, shows it, and asks how to proceed:

  • y — commit with the generated message
  • e — open the editor to adjust the message before committing
  • N (default) — abort, keep changes staged

To generate without committing (or to preview the message first):

uvx git-autoc --dry-run

Options

Option Alias Description
--dry-run -n Generate a message without committing
--long -l Allow an optional body paragraph or bullet list
--list Always add a bullet-list body
--desc Always add a paragraph body

--long, --list, and --desc are mutually exclusive.

Body styles

Style Flag Behavior
Default One-line message, no body
Long --long Body added only if the change is worth explaining
List --list Body always present, as a bullet list
Description --desc Body always present, as a single paragraph

Configuration

Configuration lives in ~/.config/git-autoc/config.toml.

Show the current configuration (creates a default file on first run):

uvx git-autoc config

Set a value interactively:

uvx git-autoc config set openai_model

Settings

Key Default Description
openai_base_url http://localhost:11434/v1 Base URL of the OpenAI-compatible API
openai_model model Model name to use
openai_api_key (empty) API key; leave empty for local providers
openai_temperature 0.2 Sampling temperature (0–1, lower is more deterministic)
openai_max_tokens 512 Maximum tokens in the generated response

openai_base_url and openai_model are required and must be non-empty; the tool refuses to run otherwise.

Development

make run     # run the CLI
make format  # format code (ruff)
make check   # type check (ty) + lint + format check
make test    # run tests (pytest)

Project layout

src/git_autoc/
├── main.py           # CLI (typer), wires all layers
├── core/config.py    # settings, TOML loading, config management
├── git/utils.py      # git operations (diff, log, stage, commit)
└── llm/              # prompt building, provider, commit styles

Stack

  • CLI: typer + rich
  • Config: pydantic + tomllib
  • AI client: openai (OpenAI-compatible API)
  • Quality: ruff, ty, pytest

Metadata

Release files for git-autoc 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for git-autoc 0.2.1
File Size Uploaded
git_autoc-0.2.1.tar.gz 7.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for git-autoc 0.2.1
File Interpreter ABI Platform
git_autoc-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 17.9 kB

Release files / git_autoc-0.2.1.tar.gz

Download URL git_autoc-0.2.1.tar.gz
Size 7.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e73666d73d7d04be44016ef3e778ec055f2addb863968f29c1a2c366d1b86ee6
BLAKE2b-256 checksum
How to use checksums
4f8382d6ff5015355f0de21dbe6474bf2ad9072a426828acb1b21b51e05d9a55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / git_autoc-0.2.1-py3-none-any.whl

Download URL git_autoc-0.2.1-py3-none-any.whl
Size 10.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d046fcae9396c117fb986bca38967260a948330b8b2056780ae52353e3c6962a
BLAKE2b-256 checksum
How to use checksums
f503d666e76a4781f63ea773c178f5f5248eae0c28c35cc9d24e645a3446401b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page