Skip to Content
FinderGit v0.6.1 is here — a Git-aware file browser for macOS. See what's new
DocumentationAI Commit Messages

AI Commit Messages

Generate properly-formatted Git commit messages from your staged diff with one click. Available since FinderGit 0.5.0.

Settings — AI tab

How to use it

  1. Stage the files you want to include in the commit (per-file Stage button or Stage All in the Changes header)
  2. The ✨ AI button appears next to the Commit heading in the detail panel — click it
  3. FinderGit reads git diff --cached, sends it to the AI, and fills the commit message field with the suggestion (typically in under a second)
  4. Edit the message if you want, then click Commit Staged

The button is disabled until you have something staged. While generating, a small spinner replaces the icon and the label switches to “Generating…”. Errors render as a dismissable inline orange banner inside the commit section, right next to the button that triggered them — never far from where you clicked.

Zero setup

The default mode is free and works out of the box. No signup, no API key, no Homebrew install, no pip install — open FinderGit and the button is there. FinderGit takes care of talking to the AI on your behalf.

Configuration

Open Settings → AI to tune the output to your style:

Enable ✨ AI button in the commit field

Master switch. Disable to hide the button entirely if you’d rather write commit messages by hand.

Use Conventional Commits format

When on (default), messages follow type(scope): subject — types include feat, fix, refactor, chore, docs, test, style, perf. When off, no prefix.

Prefix with a relevant emoji

When on, the model picks one emoji that matches the change and prepends it to the subject (e.g. chore: 📦 bump dependencies). Off by default.

Tone

Pick one:

  • Professional — neutral, business-friendly (default)
  • Casual — conversational, lighter
  • Friendly — warmer, slightly less formal

Length

Pick one:

  • Short (default) — single subject line under 60 characters
  • Normal — subject under 72 characters, optionally followed by a brief one-paragraph body
  • Long (with body) — subject, blank line, then a bulleted body where each - bullet describes one change and its motivation. The de-facto OSS convention (Linux kernel, major GitHub projects)

Custom Instructions

Free-form textarea (max 2 KB) appended to the AI prompt as authoritative house style. Use it to enforce conventions the defaults can’t express. Examples:

Always reference the issue number from the branch name when present.

Sign every message with — gfazioli at the end.

Never use the words ‘leverage’ or ‘utilize’.

For files in tests/, always use the test: Conventional Commits prefix even if a feat: would otherwise apply.

The custom rules override the defaults if they conflict — that’s by design: your house style beats the generic ones.

Examples

A small diff with Conventional on, Emoji off, Tone: professional, Length: short:

feat(networking): implement retry mechanism

The same diff with Length: long and Emoji on:

feat: 📦 bump dependencies - Update Mantine packages to 9.1.1 for improved compatibility and bug fixes. - Upgrade Storybook to 10.3.6 to include the latest UI enhancements. - Bump oxlint, postcss, and rollup to newer patch releases for stability.

With Custom Instructions: "Sign every message with — gfazioli":

fix(parser): handle empty input gracefully — gfazioli

Privacy & limits

Your staged diff is sent to the AI in-flight only — diffs are not logged or stored. No personal credentials are required: FinderGit handles the request on your behalf.

LimitValue
Max diff size per request100 KB
Max custom instructions length2 KB
Rate limit30 requests / hour per IP

If you stage more than 100 KB of diff, the AI button surfaces an inline message asking you to stage fewer files — typically a sign that the commit is large enough to deserve splitting into multiple commits anyway.

If you hit the per-IP rate limit (rare in normal use), the error banner shows a retry-after hint.

Troubleshooting

  • Button is disabled — nothing is staged. Stage at least one file.
  • “AI provider is temporarily unreachable” — transient network glitch or warm-up delay. Click the × to dismiss the banner and retry; usually works on the second attempt.
  • “Diff too large (max 100 KB)” — stage fewer files, or split the change into multiple commits.
  • “Hit the AI rate limit” — wait the indicated number of seconds and try again. The 30/hour limit resets per IP.

Coming next

The current implementation is Phase 1: the free zero-setup mode that just works. Phase 2 (planned) adds Bring Your Own Key support — pick your preferred AI provider, supply your own API key (stored in macOS Keychain), and FinderGit calls that provider directly. Useful for privacy-sensitive repositories or to bypass the per-IP rate limit on the free tier.

Last updated on