Git Auto Commit (gac) – LLM-Powered Git Commit Command Line Tool
Mood
supportive
Sentiment
positive
Category
other
Key topics
Example:
feat(auth): add OAuth2 integration with GitHub and Google
- Implement OAuth2 authentication flow
- Add provider configuration for GitHub and Google
- Create callback handler for token exchange
- Update login UI with social auth buttons
Don't like it? Reroll with 'r', or type `r "focus on xyz"` and it rerolls the commit with your feedback.You can try it out with uvx (no install):
uvx gac init # config wizard
uvx gac
Note: `gac init` creates a .gac.env file in your home directory with your chosen provider, model, and API key.Tech details:
14 providers - Supports local (Ollama & LM Studio) and cloud (OpenAI, Anthropic, Gemini, OpenRouter, Groq, Cerebras, Chutes, Fireworks, StreamLake, Synthetic, Together AI, & Z.ai (including their extremely cheap coding plans!)).
Three verbosity modes - Standard with bullets (default), one-liners (`-o`), or verbose (`-v`) with detailed Motivation/Architecture/Impact sections.
Secret detection - Scans for API keys, tokens, and credentials before committing. Has caught my API keys on a new project when I hadn't yet gitignored .env.
Flags - Automate common workflows:
`gac -h "bug fix"` - pass hints to guide intent
`gac -yo` - auto-accept the commit message in one-liner mode
`gac -ayp` - stage all files, auto-accept the commit message, and push (yolo mode)
Would love to hear your feedback! Give it a try and let me know what you think! <3GitHub: https://github.com/cellwebb/gac
The post introduces GAC, an LLM-powered Git commit command line tool that generates contextual commit messages, and receives generally positive feedback from the community, with some discussion around the value and limitations of such tools.
Snapshot generated from the HN discussion
Discussion Activity
Very active discussionFirst comment
17m
Peak period
32
Day 1
Avg / period
12
Based on 36 loaded comments
Key moments
- 01Story posted
Oct 27, 2025 at 1:07 PM EDT
about 1 month ago
Step 01 - 02First comment
Oct 27, 2025 at 1:24 PM EDT
17m after posting
Step 02 - 03Peak activity
32 comments in Day 1
Hottest window of the conversation
Step 03 - 04Latest activity
Nov 9, 2025 at 12:48 AM EST
18 days ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
* "Add perl to print the string anyone gan zea tne gode" (I'm impressed gemini got that close tbh)
A human would write:
"Wrote obfuscated perl to see if anyone actually reads the PRs. If they don't my next PR will include an obfuscated shell injection script."
Just installed gac; they nailed the UI/UX.
And so far, it works quite well.
Neurons that fire together, fry together.
A fix often has a particular bug it’s addressed, the bug should be explained in the commit. A refactor has a reason, that needs to be explained as well.
I’m not saying LLMs can’t do this, but it needs the context and it’s rarely in the diff of the commit you will find that.
Surely this is done on-device right? Or is the prompt asking the LLM if there are secrets in the changes.
Arguably I trust Github / Gitlab / etc more than OpenAI / Anthropic / etc
Supports claude and gemini with model selection and goes into the githook such that when you type `git commit` it invokes and generates the message.
https://gist.github.com/torqu3e/c08f4aa4e80fba66dce6c35d63dd...
git upstream-diff | llm --system-fragment cl-description.md
However, in practice, I notice the generated messages focus more on the what than the why. So it's rare I use them verbatim.Well done OP.
```
git diff --staged --diff-filter=ACMRTUXB | jq -Rs --arg prompt 'You are an assistant that writes concise, conventional commit messages. Always start with one of these verbs: feat, fix, chore, docs, style, refactor, test, perf. Write a short!! message describing the following diff:' '{model:"qwen/qwen3-4b-2507", input:($prompt + "\n\n" + .)}' | curl -s http://localhost:1234/v1/responses -H "Content-Type: application/json" -d @- | jq -r ".output[0].content[0].text"
```
`git commit` is gone, `uvx gac` is in!
*ariana.dev
Getting started is as easy as installing claude/codex/gemini: npm install -g aicommit2
I'm excited to give gac a try and see how it stacks up! The steering hints with gac might give it an edge.
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.