Show HN: Git Auto Commit (GAC) – LLM-powered Git commit command line tool
github.com* "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.