Picture this: you’ve just spent literal minutes crafting the perfect bit of code, you’re chuffed with yourself, and then you open your git client only to stare at that commit message box. π€
That cursor blinking mockingly while you try to remember what you changed just moments ago. And you wonder, why do I have to write this? git
already knows what happened!
Now, I’m a proper GitKraken devotee β have been for years π¦ Love the thing so much I’ve disabled all git integrations in VS Code to maintain a clean separation between coding and source control. It’s brilliant software and I’m happy to pay for it (you should too using my handy-dandy referral link) π€
GitKraken recently added AI integration for generating commit messages, complete with customisable prompts. Naturally, I thought “Right, this’ll sort my commit message faff once and for all!” Two problems emerged rather quickly:
First, I blew through my AI credit bundle faster than a student with their first overdraft facility. Turns out I commit quite a lot, and those credits don’t stretch as far as you’d hope.
Second, and this really wound me up, I could not for the life of me get it to generate proper Conventional Commits. I know how to craft AI system prompts β I’ve been mucking about with LLMs long enough β but GitKraken’s AI seemed determined to ignore my carefully crafted instructions about feat:
, fix:
, and chore:
prefixes.
So naturally, being the sort of person who builds entire projects out of mild irritation, I decided to solve this myself. Meet faff
β yet another bloody AI commit generator, because apparently the Internet wasn’t drowning in enough of them already β
faff
does one thing: it looks at your staged git diff, sends it to a local Ollama LLM, and spits out a conventional commit message. No cloud APIs, no credit bundles, no sending your TODO: delete this abomination
code comments to feed the vibe-coding dealers.
git add .
faff
Perfect conventional commits, every time. Well, most of the time. It’s AI, not magic πͺ
Here’s where this story takes a turn that’ll make you laugh at my expense. After building faff
, documenting it, and feeling rather pleased with myself, I discovered something that made me want to bang my head against my desk repeatedly.
You can hook GitKraken’s AI up to Ollama.
And naturally, my carefully crafted system prompt from faff
, when used in GitKraken AI via Ollama with the same qwen2.5-coder models, works exactly like faff
does. π€¦ββοΈ
So technically, I could have solved my original problem without building an new tool. But where’s the fun in that?
Despite this rather embarrassing revelation, faff
still has its place:
Plus, let’s be honest β there’s something deeply satisfying about having a tool that does exactly what you want, how you want it, without any faff! π₯
If you’re tired of crafting commit messages that either say “Updated stuff” (again!) or read like Victorian novels, faff
might be worth a look. It’s a shell script, it works with local AI, and it follows conventional commits standards without the existential crisis.
And if you decide you’d rather stick with GitKraken’s AI (which, after my discoveries, is perfectly reasonable), at least grab it through my referral link so I can pretend this whole adventure was planned from the start. οΈπΊοΈ
Because sometimes the best projects are the ones born from pure spite, accidentally becoming useful along the way. That’s half the fun of building things, isn’t it?
Drop the faff, dodge the judgment, get back to coding. π¦