AI-powered git commit message generator
Project description
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
Usage
Stage the changes you want to commit, then run:
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):
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):
git autoc config
Set a value interactively:
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
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 git_autoc-0.1.0.tar.gz.
File metadata
- Download URL: git_autoc-0.1.0.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
721635ae0f1ed669dc9d590b79e3ecd09bc5701c9b5dbaaf43b59d4ed6fcaf55
|
|
| MD5 |
c344b65822867ff4ad53091e2052a44e
|
|
| BLAKE2b-256 |
411029d723e3737a745fcf474a7fd3036be66dc3950b35cd2932555597bd9ba2
|
File details
Details for the file git_autoc-0.1.0-py3-none-any.whl.
File metadata
- Download URL: git_autoc-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc99a55cc9fa9c9968c3b5fdf650e0d0c14aa35f7ff583752ba7de3650f61d86
|
|
| MD5 |
8e13a8a5161524556e3d22590790f245
|
|
| BLAKE2b-256 |
b998bf30781f4bfe32fd3edce1b4f7eb0af029de0cc77566ccd65bf94a97ee85
|