Skip to main content

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 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):

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

git_autoc-0.1.0.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

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

git_autoc-0.1.0-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

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

Hashes for git_autoc-0.1.0.tar.gz
Algorithm Hash digest
SHA256 721635ae0f1ed669dc9d590b79e3ecd09bc5701c9b5dbaaf43b59d4ed6fcaf55
MD5 c344b65822867ff4ad53091e2052a44e
BLAKE2b-256 411029d723e3737a745fcf474a7fd3036be66dc3950b35cd2932555597bd9ba2

See more details on using hashes here.

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

Hashes for git_autoc-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bc99a55cc9fa9c9968c3b5fdf650e0d0c14aa35f7ff583752ba7de3650f61d86
MD5 8e13a8a5161524556e3d22590790f245
BLAKE2b-256 b998bf30781f4bfe32fd3edce1b4f7eb0af029de0cc77566ccd65bf94a97ee85

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