frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: acmsg (automated commit message generator)

https://github.com/quinneden/acmsg
15•qeden•11mo ago
A cli tool written in python for generating commit messages based on the staged changes in a repository using AI models through the OpenRouter API.

Comments

infocollector•11mo ago
Looks like openrouter api can be self-hosted, which means you should be able to run this locally. If anyone is able to run this with ollama, please do post how you did that? :)
theblazehen•11mo ago
The openrouter api is the same as the openai api, so you should be able to use the openai api compatibility built into ollama after updating the url in /src/acmsg/constants.py
pvdebbe•11mo ago
Maybe I am a bit old-fashioned but I think the commit message should convey intent and not content of the diffs. Perhaps the real utility of this is to describe existing commits in a repository.
owebmaster•11mo ago
I'm also old-fashioned but I always thought it made much more sense to give a content diff, it makes it easier to find changes.
JimDabell•11mo ago
The commit itself is the content diff. Repeating that in the log message is redundant.
owebmaster•11mo ago
no, it is not redundant, a summary makes it easier to search and find the correct commit to read the full diff.
hiatus•11mo ago
Isn't that solved with blame?
InsideOutSanta•11mo ago
I don't understand the reasoning for persisting LLM output that can be generated at any point. If I want to use an LLM to understand someone else's commits, I can use the LLM best suited for that task at the time I need the information, which will likely be more accurate than what was available at the time of the commit and will have access to more context.

I also believe that commit messages should focus on information the code doesn't already convey. Whatever the LLM can generate from looking at your code is likely not the info I'll seek when I read your commit message.

bee_rider•11mo ago
It looks like it just is based on the git diff and status, at least as far as I can tell in a quick skim…

Hypothetically, a tool like this could ingest the bug report you were fixing, some emails, etc etc. It could also read the whole project (to get more context than just the diff). In principle there’s no reason it couldn’t relay more info than just the diff, in some extreme form…

Also, it could be seen as producing a starting point. When a person picks which AI generated text to keep, that is enough to add a bit of human spark into the system, right?

nickcw•11mo ago
When you are looking through commit messages, "Why?", Is the question you want answered. The diff contains "What?" and "How?".

Assuming that the commits in this repo were generated by this tool it is missing the "Why?".

myrmidon•11mo ago
Fully agree. Also, using LLMs for things like this can have bad side-effects, too, simply because it raises the noise-floor:

By spelling out things that are not noteworthy enough for a human, you make it more difficult to find comments that are (and were). Injecting a lot of irrelevant information can hamper understanding even if it is technically completely correct.

flysand7•11mo ago
You are talking about the commit message body, right, not just the header? Because for me it's something similar, but:

Header: Contains "What" and the scope of the changes, as short as possible Body: Contains "Why" and the full explanation of the change

trallnag•11mo ago
So what kind of commit subject do you expect for fixing a single typo? Or bumping the patch version of a random dependency?
Xiol32•11mo ago
Do you need an LLM to create those commit messages?
alzamixer•11mo ago
I use the following script to allow copilot vim plugin to help me.

```plaintext name=../../bin/assisted-commit

#!/bin/bash

# Run git commit with --verbose --dry-run and save the output git commit --verbose --dry-run > ./commit.message

# Prepend # to every line and add "conventional commit message:" at the end sed -i 's/^/# /' ./commit.message echo "# uncommented conventional commit message using feat, fix or doc flags. !beakingchange iff change breaks backward compatibility:" >> ./commit.message echo "" >> ./commit.message

# Open the file in vim for editing, with cursor on a new line at the end and in insert mode vim +':normal Go' +startinsert ./commit.message

# Filter out commented lines and save to a temporary file grep -v '^#' ./commit.message > ./commit.message.filtered

# Commit using the filtered file git commit -F ./commit.message.filtered

# Delete the files rm ./commit.message ./commit.message.filtered

```

esafak•11mo ago
Don't forget to include committed code in the context when amending.
theknarf•11mo ago
This is worse than useless.

The commit message is supposed to contain the details that you can't just glance from the code. Why a certain decision was made, or the pro's and con's of a decision, a link to a relevant Github / Jira issue, etc.

jasonjmcghee•11mo ago
> a link to a relevant Github / Jira issue, etc.

So important!

Makes all devs lives so much easier.

Though you know someone is going to tweak the lint rules at some point and have the top commit on nearly every line at a certain point in time.

Is there a "non-functional change commit" dictionary for git blame to ignore these? I would use that feature...

cylinderthought•11mo ago
Just click the copilot button in any ide to generate an automated commit message in less than one second. This is effectively useless.

Bluebuck

https://colossal.com/bluebuck/
1•andsoitis•1m ago•0 comments

The Fight to Save the Yachats Whale

https://www.theatlantic.com/science/2026/05/yachats-beached-whale-rescue/686978/
2•Brajeshwar•2m ago•0 comments

A more accurate .d.ts bundler for Rollup, powered by Microsoft/API-extractor

https://github.com/benhatsor/rollup-dts-bundler
2•barhatsor•6m ago•1 comments

On a mission to ensure our investments never lose value

https://arells.com
1•jeyakatsa•6m ago•0 comments

I Just Launched the AI Pledge for Humanity. Here's Why

https://scottsantens.substack.com/p/i-just-launched-the-ai-pledge-for
1•2noame•8m ago•2 comments

How can I close over variables in kdb/Q?

https://stackoverflow.com/questions/79240456/how-can-i-close-over-variables-in-kdb-q
1•tosh•8m ago•0 comments

David Bessis on AI destroying mathematics

https://davidbessis.substack.com/p/the-fall-of-the-theorem-economy
1•delis-thumbs-7e•11m ago•0 comments

Show HN: nfsdiag - a NFS diagnostic application

https://github.com/lsferreira42/nfsdiag
1•lsferreira42•11m ago•0 comments

The Gen Z investing boom

https://www.theguardian.com/business/2026/may/02/gen-z-investors-crypto-boom
1•andsoitis•12m ago•0 comments

Infrasound waves stop kitchen fires, but can they replace sprinklers?

https://arstechnica.com/gadgets/2026/05/startup-says-sound-waves-can-replace-fire-sprinklers-expe...
2•0in•15m ago•0 comments

Nature vs. nurture: How much of our personalities are determined at birth?

https://www.bbc.com/future/article/20260501-nature-vs-nurture-how-much-of-our-personalities-are-d...
2•amichail•18m ago•0 comments

The Intel Lunar Lake CPU Performance Gains on Linux over the Past Year

https://www.phoronix.com/review/intel-lunar-lake-ubuntu-2604
1•rbanffy•19m ago•0 comments

First Ever Playing Deck for Programmers

https://instagram.com/the_devcards
1•okiki-clickdrop•19m ago•0 comments

'Go inside, he will kill you' Israeli militants step up West Bank school attacks

https://www.theguardian.com/world/2026/may/02/israeli-militants-attack-west-bank-schools-settler-...
3•hebelehubele•19m ago•1 comments

WellaBack Posture Corrector

https://www.facebook.com/WellaBackPostureCorrector.Get
1•kannyparker•19m ago•0 comments

An unknown Sega Saturn project has come to light after 29 years

https://32bits.substack.com/p/under-the-microscope-pyramid-unreleased
4•bbayles•20m ago•0 comments

Oscarr – A modern media request interface for Radarr and Sonarr

https://github.com/arediss/Oscarr
1•arediss•21m ago•0 comments

AI Cyberattacks Meet Memory-Safe Code Defenses

https://spectrum.ieee.org/ai-cyberattacks-memory-safe-code
1•rbanffy•21m ago•0 comments

Show HN: MooBlock – blocks distracting sites with adaptive friction (and cows)

https://chromewebstore.google.com/detail/mooblock/eanbagjehdbjikaaoomkkmfikemcedmp
1•academic_84572•25m ago•0 comments

Motion: An open source animation library for JavaScript, React and Vue

https://github.com/motiondivision/motion
2•doener•27m ago•0 comments

Cloudflare Workers let you deploy serverless code instantly across the globe

https://github.com/cloudflare/workers-sdk
1•doener•28m ago•0 comments

India's major airlines on 'verge of closing down' as high fuel costs sting

https://www.scmp.com/news/asia/south-asia/article/3351782/indias-major-airlines-verge-closing-dow...
1•JumpCrisscross•28m ago•0 comments

Supabase-JS: An isomorphic JavaScript client for Supabase

https://github.com/supabase/supabase-js
1•doener•29m ago•0 comments

How Fast Could Robot Production Scale Up?

https://epoch.ai/blog/how-fast-could-robot-production-scale-up
1•JumpCrisscross•31m ago•0 comments

U.S. Considering Foreign Designs, Shipyards for New Navy Frigate, Destroyer Work

https://news.usni.org/2026/04/24/u-s-considering-foreign-designs-shipyards-for-new-navy-frigate-d...
2•JumpCrisscross•33m ago•1 comments

Steve Hilton: British former Fox News host be California's next governor?

https://www.theguardian.com/us-news/2026/may/02/steve-hilton-california-governor-race
1•andsoitis•34m ago•1 comments

I'm building a pool logging and AI app. What would make this genuinely useful?

https://poolquant.com
1•geoffreycross01•36m ago•0 comments

MicroKanren in J (2020) [pdf]

https://minikanren.org/workshop/2020/minikanren-2020-paper3.pdf
1•tosh•37m ago•0 comments

When generative AI makes mistakes, are they the same as human errors?

https://link.springer.com/article/10.1007/s13347-026-01056-x
1•camilochs•37m ago•1 comments

System design reviewer – Need feedback

http://design-reviewer.s3-website-us-east-1.amazonaws.com
1•julivparikh•39m ago•1 comments