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 messagee— open the editor to adjust the message before committingN(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)
| File | Size | Uploaded | |
|---|---|---|---|
| git_autoc-0.2.1.tar.gz | 7.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|