Not Hacker News Logo

Not

Hacker

News!

Home
Hiring
Products
Companies
Discussion
Q&A
Users
Not Hacker News Logo

Not

Hacker

News!

AI-observed conversations & context

Daily AI-observed summaries, trends, and audience signals pulled from Hacker News so you can see the conversation before it hits your feed.

LiveBeta

Explore

  • Home
  • Hiring
  • Products
  • Companies
  • Discussion
  • Q&A

Resources

  • Visit Hacker News
  • HN API
  • Modal cronjobs
  • Meta Llama

Briefings

Inbox recaps on the loudest debates & under-the-radar launches.

Connect

© 2025 Not Hacker News! — independent Hacker News companion.

Not affiliated with Hacker News or Y Combinator. We simply enrich the public API with analytics.

Not Hacker News Logo

Not

Hacker

News!

Home
Hiring
Products
Companies
Discussion
Q&A
Users
  1. Home
  2. /Discussion
  3. /Show HN: Git Auto Commit (GAC) – LLM-powered Git commit command line tool
  1. Home
  2. /Discussion
  3. /Show HN: Git Auto Commit (GAC) – LLM-powered Git commit command line tool
Last activity 18 days agoPosted Oct 27, 2025 at 1:07 PM EDT

Git Auto Commit (gac) – LLM-Powered Git Commit Command Line Tool

merge-conflict
56 points
36 comments

Mood

supportive

Sentiment

positive

Category

other

Key topics

AI-Powered Tools
Git Commit Messages
Developer Productivity
Debate intensity40/100
GAC is a tool I built to help users spend less time summing up what was done and more time building. It uses LLMs to generate contextual git commit messages from your code changes. And it can be a drop-in replacement for `git commit -m "..."`.

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! <3

GitHub: 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 discussion

First comment

17m

Peak period

32

Day 1

Avg / period

12

Comment distribution36 data points
Loading chart...

Based on 36 loaded comments

Key moments

  1. 01Story posted

    Oct 27, 2025 at 1:07 PM EDT

    about 1 month ago

    Step 01
  2. 02First comment

    Oct 27, 2025 at 1:24 PM EDT

    17m after posting

    Step 02
  3. 03Peak activity

    32 comments in Day 1

    Hottest window of the conversation

    Step 03
  4. 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

Discussion (36 comments)
Showing 36 comments
acoliver
about 1 month ago
1 reply
Oh nice. Man I hate filling out all that stuff. And getting the LLM to do it without freestyling and hallucinating is a pain. Kinda wish it were an MCP so I can shove it in my CLI or maybe the hooks for git...
merge-conflictAuthor
about 1 month ago
I'm considering making it optionally work as an MCP server!
seba_dos1
about 1 month ago
1 reply
This misses the point of what a good commit message is so much that it could be a delightful satire.
jacobsenscott
about 1 month ago
1 reply
Yeah - if these are better than your current commit messages, just don't write commit messages. Anyone can read the code.
acoliver
about 1 month ago
1 reply
side-eye "anyone can read the code" -- usually the first words of someone who writes unreadable code. perl -e'$_=q/dk|jk`%fdk%w`da%qm`%fja`/;s/./chr(ord($&)^5)/seg;print'
jacobsenscott
29 days ago
1 reply
Well, my point is AI won't produce a better commit message than just reading the code. So either write a good commit message or don't write a message at all. AI just produces step by step descriptions that are easily gleaned by skimming the code. In your case it would say

* "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."

acoliver
29 days ago
pfth as if I'd use Gemini.
alwillis
about 1 month ago
1 reply
Hate writing commit messages.

Just installed gac; they nailed the UI/UX.

And so far, it works quite well.

merge-conflictAuthor
about 1 month ago
Thank you! I used a combination of the questionary and click python libraries for the ui/ux.
Steeeve
about 1 month ago
1 reply
Your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should.
dang
about 1 month ago
Omit internet tropes.

https://news.ycombinator.com/newsguidelines.html

nicksergeant
about 1 month ago
1 reply
Neat project. If you're looking for something simpler just to use w/ Claude Code, a simple call to "claude -p" can work: https://github.com/nicksergeant/dotfiles/blob/master/zshrc#L...
merge-conflictAuthor
about 1 month ago
1 reply
Thanks! Can definitely do that, but GAC is faster than calling claude or another agent as they will take multiple api calls to look at git status, git diffs, etc. vs a single api call with GAC. Plus, GAC won't eat up your weekly limits! ;)
nicksergeant
about 1 month ago
Oh I just pipe the diff into the Claude prompt, so it's only the one call.
martinohansen
about 1 month ago
4 replies
I don’t get these kind of tools. A commit should be the why of a change, not a summary of what it is, anyone can either get that themselves or just read the code if they desire. What you can not get from the code is the _why_ which only you as the author can put.
derwiki
about 1 month ago
1 reply
I often start a change by having Cursor read the Slack thread (via MCP) that is motivating the change. In the same Cursor thread, after making the change, it has fairly good context on the _why_ and writes a helpful commit message.
therein
about 1 month ago
1 reply
Very nice, the fewer neurons you use the better. In biology they call it use it and lose it if my memory serves me correctly.

Neurons that fire together, fry together.

pbh101
about 1 month ago
While I’m deeply skeptical of any attempt to define a commit message from the diff, if the context and motivation is truly captured in the Slack thread or other prior documents and available for summarization, then how many neurons are you really using on rewording what you already hashed out? Especially if someone would otherwise perhaps skip a message or write a poor one, this sounds like a great approach to get at least a first pass to further modify.
Ferret7446
30 days ago
1 reply
There are plenty of commits that don't need an explanation like mechanical cleanups or refactoring. If your code is appropriately documented then an LLM can often extract the explanation too.
martinohansen
30 days ago
If there truly is no need for an explanation, the commit message is very short and won’t require any substantial effort on the author to write.

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.

nsonha
18 days ago
That's a PR description. Commit messages describing why is pretty annoying and useless.
nvartolomei
about 1 month ago
I do often ask Claude Code or Gemini CLI to write commits. I agree with you on why being important. Majority of these being bug fixes accompanied tests where the why is easily inferred from the change/newly added tests and their comments.
bangaladore
about 1 month ago
1 reply
> Automatic secret detection: Scans for API keys, passwords, and tokens before committing

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

merge-conflictAuthor
about 1 month ago
The scanning is done on-device. I should've worded it better and said that it scans before any API calls. Too late to edit the post, unfortunately.
ClimaxGravely
about 1 month ago
Maybe it's because these days I use perforce more than git but I tend to find myself writing 80% of my commit message before I write any code and touch it up a little at the end.
adrianbooth17
about 1 month ago
Very neat little project, I look forward to trying this
torqu3e
30 days ago
Here's the 20 line bash version I whipped up a while back cuz yes lazy about writing good commit messages.

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...

rwdf
about 1 month ago
"gac" is giving me PTSD flashbacks from having to deal with the "Global Assembly Cache" aeons ago.
paulirish
about 1 month ago
Chiming in with my alternative, like others' but uses simonw's `llm`:

    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.
cypriss9
about 1 month ago
There's three types of people: those who already write excellent commit messages explaining the why, those who write decent ones explaining the what, and those who write garbage commit messages. Empirically, the first set is small. This tool will help the middle type be more efficient, and help the last type drastically.

Well done OP.

ah27182
about 1 month ago
I've been using LMStudio to run a local LLM (Qwen3-4B) to generate commit messages using this command:

```

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"

```

glitch253
about 1 month ago
Hey all - disclaimer I'm one of Cell's friends and encouraged them to release their utility on Pypi for others. It quickly became one of my favorite tools that I use every day.

`git commit` is gone, `uvx gac` is in!

AnicetN
29 days ago
That's very cool! I actually built a Claude Code Web alternative* over the last few months and made my own auto-commit solution for it. I reckon though having the prompt is what helps me and the agent generate relevant prompt messages that can explain the why. Anyway even a average commit message is way better than none

*ariana.dev

bigwheels
about 1 month ago
aicommit2 works great: https://github.com/tak-bro/aicommit2

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.

avinash-iitb
about 1 month ago
I like that you’ve added secret detection and multi-provider support — that’s something most LLM commit tools miss. Have you benchmarked latency differences between local models (like Ollama) and OpenAI/Anthropic? Would be interesting to see a speed comparison.
0x008
about 1 month ago
I like the lazycommit+lazygit combo.

https://github.com/m7medVision/lazycommit

View full discussion on Hacker News
ID: 45723533Type: storyLast synced: 11/20/2025, 6:48:47 PM

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.

Read ArticleView on HN
Not Hacker News Logo

Not

Hacker

News!

AI-observed conversations & context

Daily AI-observed summaries, trends, and audience signals pulled from Hacker News so you can see the conversation before it hits your feed.

LiveBeta

Explore

  • Home
  • Hiring
  • Products
  • Companies
  • Discussion
  • Q&A

Resources

  • Visit Hacker News
  • HN API
  • Modal cronjobs
  • Meta Llama

Briefings

Inbox recaps on the loudest debates & under-the-radar launches.

Connect

© 2025 Not Hacker News! — independent Hacker News companion.

Not affiliated with Hacker News or Y Combinator. We simply enrich the public API with analytics.