aicommit

Russ McKendrick·RussMckendrick.Aicommit

A fast, opinionated CLI that generates Git commit messages and reviews staged diffs using AI. Written in Rust, installed as aic

winget install --id RussMckendrick.Aicommit --exact --source winget

Latest 0.0.9·August 8, 2026

Release Notes

Release focused on a polished terminal interface, quieter push flows, and resilient large-diff generation. Terminal Interface Polish The commit, review, and PR transcripts now read as one visual language with every fact printed once.

  • One session header per run (previously "Commit session" printed twice), with the staging preflight rendered as dim sub-steps beneath it and the staged-file list shown exactly once.
  • Branch and provider/model metadata collapse into a single row, and the redundant "Sending to provider/model" line is gone.
  • Interactive prompts share aic's glyph vocabulary (? pending, ✔ answered, ❯ highlighted option) via a global prompt theme, and sections/cards manage their own vertical spacing for a consistent rhythm.
  • The pre-commit upstream fetch shows a "Checking branch sync" spinner instead of stalling silently.
  • Choosing Edit on a generated commit message opens $EDITOR with the message preloaded (matching the split flow) instead of a single-line inline prompt.
  • aic models marks the active model with ❯ in the shared list style, and aic log aligns the before/after subjects in its comparison view. Quieter Push Flow
  • The push prompt shows a short remote label ([GitHub] origin) instead of the full URL, and success prints Pushed main → origin.
  • The final Commit created summary shows the short hash, branch, pushed to origin (GitHub), and a +added −removed diffstat parsed from the commit output.
  • In terminals with OSC-8 hyperlink support, the hash links to the commit page on GitHub, GitLab, or Bitbucket (driven by the new commit_path field in git_hosts.toml).
  • Raw git output is no longer re-echoed after successful commits and pushes; it still appears on failures and recovery flows. Large-Diff Generation Hardening
  • Commit generation no longer appears to hang on very large staged diffs: the token counter now builds its encoder once per process instead of on every call, and diff splitting runs in a single pass (previously minutes to hours of CPU on multi-MB diffs; now seconds).
  • Local CLI providers (claude-code, codex, copilot) no longer deadlock when the prompt exceeds the OS pipe buffer (~64 KiB): the prompt is written to the child process from a dedicated thread while its output is drained concurrently.
  • Provider responses rejecting an oversized prompt ("maximum context length", "prompt is too long", HTTP 413) are reported as the diff-too-large error with remediation hints, instead of misleading "service unavailable" or "model is not available" messages.
  • Chunked commit generation reserves budget for the chunk-summary preamble, so tightly-packed chunks no longer trip the provider token guard. Generation Progress and Timeouts
  • New AIC_HTTP_TIMEOUT config key: per-request timeout in seconds for the HTTP providers (default 120, 0 disables), with a 10s connection timeout. A timed-out request now fails with a clear message instead of waiting forever.
  • Live status feedback during generation: the spinner shows the current stage (Splitting diff, Summarizing chunk 2/4, Synthesizing commit message), a rotating status detail, and elapsed time. Large diffs print an upfront note with the chunk count, split-commit drafting shows per-commit progress, and the prepare-commit-msg hook announces itself on stderr.
  • The rotating status lines ship in src/status_messages.toml (including an occasional [rare] interjection) and can be personalized per user via ~/.aicommit-status.toml; each run shuffles the rotation order so the lines stay fresh. Native TLS Trust Roots
  • HTTP providers now use the operating system's certificate store instead of the bundled Mozilla root set (reqwest switched from rustls-tls to rustls-tls-native-roots). Custom or corporate CA certificates trusted by the OS — common behind TLS-inspecting proxies — now work without extra configuration. Contributed by @BUR4KBEY in #1, the project's first external contribution. 🎉 Fixed
  • The generated PR preview cards no longer render twice when accepting or editing a draft.
  • aic log now reports "Rewrote 1 commit message" (singular). What's Changed
  • Use native system trust roots for Rustls TLS by @BUR4KBEY in #1 New Contributors
  • @BUR4KBEY made their first contribution in #1 Full Changelog: v0.0.8...v0.0.9

Installer type: portable

x64382E6F82F460831BE01802778623F41A809134CC746BDFA6720D5821535CCD6D

Details

Homepage
https://github.com/russmckendrick/aicommit
License
MIT
Publisher
Russ McKendrick
Support
https://github.com/russmckendrick/aicommit/issues

Tags

ai-toolscommitgit

Older versions (3)

0.0.8
x649CD4DD1BE59A4259C3B9F04B5CC05666284EFADA7075EC018429C6D8DFAFA2B0
0.0.7
x647C4B7B5456A955E39B5C866D6BF52692ECA54CFD1732DAC0F5F82EFA7AD7F668
0.0.5
x64A3B5CBF16A1FA02A09AE2A8EE2150210FDC73AD27AA0DC12E813C4C568ED7325