title: git-commit-at
emoji: π€
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 6.18.0
app_file: app.py
tags:
- build-small-hackathon
pinned: false
git-commit-app π―
A suite of AI-powered git commit tools for effortless, consistent commit messages.
This monorepo contains multiple projects for generating and managing git commits:
Community
- Reddit: I made a CLI that generates conventional commit messages locally using AI
- dev.to: git-commit-at β Generate conventional commit messages locally with AI, no API key needed
Projects
π git-commit-at
AI-powered commit message generator with interactive CLI and web UI
- Generate conventional commit messages using AI (Ollama)
- Interactive selection from 3 AI-suggested options
- Web UI for login, commit history, and branch visualization
- Session persistence and Redis caching
- Docker Compose setup with Ollama, Redis, and Gradio
Quick start:
npm install -g git-commit-at
git add .
git commit-at
Features:
- β
Conventional commit format (
feat:,fix:,refactor:, etc.) - β Custom commit format templates
- β Ticket number integration
- β Live branch graph visualization
- β Commit history tracking
- π§ Fine-tuned model integration (see below)
Directory Structure
git-commit-app/
βββ git-commit-at/ # npm package β CLI + bundled web UI
β βββ index.js # Core commit logic (Ollama AI)
β βββ wrapper.js # CLI orchestrator
β βββ docker-compose.yml # All services (Ollama, Redis, Gradio)
β βββ Dockerfile # Node app container
β βββ entrypoint.sh # Docker setup script
β βββ gradio/ # Bundled web UI (Python/Gradio)
β β βββ app.py # Login + history + branch visualizer
β β βββ auth_service.py # Redis-based user auth
β β βββ generate_graph.py
β β βββ git_graph.py
β β βββ Dockerfile
β βββ package.json
β
βββ README.md # This file
Getting Started
Prerequisites
- Docker & Docker Compose
- Node.js 18+
Installation
npm install -g git-commit-at
First Use
# Stage your changes
git add .
# Generate commit message
git commit-at
# Follow the interactive prompts
# - Log in or register
# - Select a suggested message
# - Confirm and commit
Fine-Tuned Model Integration
git-commit-at now uses a custom fine-tuned model as its primary AI, with automatic fallback to a general model.
Model
Bhargavi5q1/git-commit-messages β Fine-tuned on 2,179 real git diffs using Unsloth + QLoRA on a Qwen2.5-Coder 1.5B base model. Trained to output conventional commit messages in one line with no explanation.
How it works
git diff (staged changes)
β
βΌ
βββββββββββββββββββββββββββββββββββ
β Fine-tuned model (primary) β hf.co/Bhargavi5q1/git-commit-messages
β via Ollama β
ββββββββββββββ¬βββββββββββββββββββββ
β fails?
βΌ
βββββββββββββββββββββββββββββββββββ
β qwen2.5-coder:1.5b (fallback) β general-purpose model
βββββββββββββββββββββββββββββββββββ
- Primary model is pulled automatically on first run (~986 MB)
- If unavailable, falls back silently to
qwen2.5-coder:1.5b - Terminal shows which model was used on each run
Training details
| Base model | Qwen2.5-Coder 1.5B |
| Method | QLoRA (Unsloth) |
| Dataset | 2,179 git diff β commit message pairs |
| Epochs | 3 |
| Format | Conventional Commits |
| Export | GGUF Q4_K_M (~986 MB) |
Architecture
ββββββββββββββββββββββββββββββββββββββββββββββββ
β git-commit-at (npm package) β
ββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β CLI (Node.js) ββ Docker Compose β
β βββ Ollama (AI) β
β βββ Redis (cache) β
β βββ Gradio (web UI) β
β βββ commit-at (Node) β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββ
Features Overview
git-commit-at
- π€ AI Suggestions β 3 smart commit message options
- π― Conventional Format β Follows commit standards
- π Web UI β Login, history, branch visualization
- π Custom Formats β Define your own commit template
- π Session Persistence β Stay logged in
- π³ Docker Ready β One-click setup
- π Branch Visualizer β See your git graph live
Development
Project Docs
- git-commit-at: README β Full setup, troubleshooting, contributing
Development Workflow
# Install all dependencies
npm install
# Run services
docker compose up -d
# Access web UI
# http://localhost:7860
# Run CLI
node wrapper.js
File Structure (git-commit-at)
| File | Purpose |
|---|---|
wrapper.js |
CLI entry; manages Docker services |
index.js |
Main commit logic |
diff-parser.js |
Parses git diffs |
entrypoint.sh |
Docker setup |
gradio/app.py |
Web UI |
gradio/git_graph.py |
Branch visualization |
Contributing
We welcome contributions! Here's how:
- Fork the repo
- Create a branch for your feature:
git checkout -b feature/my-feature - Make changes and test locally
- Use git-commit-at for your commits π
- Push and open a PR
Commit Guidelines
Use Conventional Commits:
feat:β New featurefix:β Bug fixdocs:β Documentationrefactor:β Code refactortest:β Testschore:β Build, dependencies, etc.
Troubleshooting
General Issues
| Problem | Solution |
|---|---|
| Docker won't start | Check if Docker daemon is running |
| Port already in use | Change port in docker-compose.yml |
| "Not a git repo" | Run from inside a git repository |
git-commit-at Issues
See git-commit-at Troubleshooting
Performance
| Operation | Time |
|---|---|
| First run (download models) | ~30s |
| Generate suggestions | ~5-10s |
| Web UI load | <1s |
Environment Setup
Using Docker (Recommended)
Everything runs in containersβno local setup needed!
docker compose up -d
npm start
Local Development
# Set up Node environment
node --version # Should be 18+
# Install deps
npm install
# Start Docker services only
docker compose up -d ollama redis gradio
# Run app
node wrapper.js
FAQ
Q: Do I need Ollama installed locally? A: No! Ollama runs in a Docker container. Just ensure Docker is running.
Q: Which AI model does this use? (Inprogress)
A: A custom fine-tuned model (Bhargavi5q1/git-commit-messages) trained specifically for git commit messages. Falls back to qwen2.5-coder:1.5b if unavailable.
Q: Does this work offline? A: After the first run (which downloads the AI model), yes!
Q: Can I use this without the web UI?
A: Yes! Just run git-commit-at from the CLI.
Q: How do I customize the commit format? A: You'll be prompted each time. Or edit the format in the Gradio UI after logging in.
License
MIT β See LICENSE for details
Links
- π³ Docker Hub: git-commit-at
- π€ Hugging Face: Fine-tuned model Β· Spaces
- π¦ NPM: git-commit-at
Support
- π Docs: Check individual project READMEs
- π Issues: Report on GitHub
- π¬ Discussions: Ask questions in GitHub Discussions
Made with β€οΈ for developers who want better commits, faster.
π Start generating smarter commits today!