We all know the commit history that looks like this:
fix
wip
actually fix
update
FINAL fix AI tools can help, but most of them send your code diff to the cloud and require a paid API key. That's a non-starter for private repos or sensitive codebases.
What I built
git-commit-at is an npm CLI that analyzes your staged diff and suggests 3 conventional commit messages using a locally-running AI model. Nothing leaves your machine.
npm install -g git-commit-at Then, in any git repo:
git add .
git-commit-at You get an interactive prompt to pick a message, optionally add a ticket number (JIRA, Linear, etc.), and confirm. Done.
How it works under the hood
git-commit-at (CLI) β
βββ Checks if Docker services are running
β βββ Ollama β runs qwen2.5-coder:1.5b locally (port 11434) β βββ Redis β session + cache (port 6379)
β βββ Gradio β web UI for login/history (port 7860)
β
βββ Reads your staged git diff
βββ Streams 3 commit suggestions from Ollama
βββ You pick one (and optionally add a ticket prefix)
βββ Runs git commit
On first run, Docker pulls the model (~1 GB) and starts the services. After that, suggestions take about 5β10 seconds.
Features
Feature Details
AI suggestions 3 per run, based on your actual diff
Conventional commits feat:, fix:, refactor:, chore:, etc. Ticket integration Prefix with JIRA/Linear ticket numbers
Branch visualizer Live git DAG in the web UI
Commit history Tracked across all your repos
Fully offline After first model download
Privacy 100% local β no data sent anywhere
Requirements
Docker (all backend services run in containers)
Node.js 18+
That's it. No Ollama install, no Python setup, no API keys.
Install
npm install -g git-commit-at
GitHub: [https://github.com/bhargavirengarajan21/git-commit-at](https://github.com/bhargavirengarajan21/git-commit-at)
npm: [https://www.npmjs.com/package/git-commit-at](https://www.npmjs.com/package/git-commit-at)
Hugging face: [https://huggingface.co/spaces/build-small-hackathon/git-commit-app](https://huggingface.co/spaces/build-small-hackathon/git-commit-app)
Feedback welcome β especially on the Docker requirement and model choice. I'm considering making the model configurable as a first-class setting.
Both posts are ready to copy-paste. For dev.to, paste as Markdown and set the tags to git, ai, opensource, devtools. Add a cover image and a demo GIF if you have one β posts with visuals get significantly more reach there.