git-commit-app / README.md
bhargavirengarajan21
Add read me
3cefa9d
metadata
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

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:

  1. Fork the repo
  2. Create a branch for your feature: git checkout -b feature/my-feature
  3. Make changes and test locally
  4. Use git-commit-at for your commits πŸ˜‰
  5. Push and open a PR

Commit Guidelines

Use Conventional Commits:

  • feat: β€” New feature
  • fix: β€” Bug fix
  • docs: β€” Documentation
  • refactor: β€” Code refactor
  • test: β€” Tests
  • chore: β€” 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

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!