Every developer has been there. You finish coding, stage your changes, and then... blank. What do you call this commit?
"fixed stuff"-
"updated" "changes lol"- Or worse — the empty commit message
It's not your fault. Writing good commit messages is hard. You need to:
- Figure out the scope of your changes
- Decide what "type" each change is (feat, fix, refactor, chore)
- Summarize dozens of changes in one line
- Keep it under 72 characters
- Follow Conventional Commits spec (if your team uses it)
A good commit message takes 2+ minutes to write. Do that 5-10 times a day and you've wasted 15-30 minutes on... typing.
The Old Ways
| Approach | Problem |
|---|---|
git commit -m "wip" |
Useless for history, code reviews, changelogs |
| Manual Conventional Commits | Mentally taxing, easy to get wrong |
AI-powered tools (aider, claude commit) |
Requires API key, internet, costs money per commit, slow |
| Commitlint + prompts | Still requires you to write the message |
None of these are ideal. Either they're too slow, too expensive, or still require manual effort.
Enter git-copilot
git-copilot reads your staged git diff and generates a conventional commit message instantly:
$ git add .
$ git-copilot gen
✨ feat(api): add user routes and controller
3 file(s), +124/-15 lines
The key difference from everything else:
✅ Zero AI — No LLM, no API calls, no internet needed
✅ Zero dependencies — Pure Python stdlib, works offline
✅ Instant — Runs in <100ms, not 10 seconds
✅ Free — Open source, MIT licensed
How It Works
No machine learning. No pattern matching black box. Just smart heuristics:
File-type mapping: It knows what type of change a file represents:
| If you changed | It detects |
|---|---|
src/*.py or src/*.js
|
feat (feature) |
*_test.py or *.spec.js
|
test |
README.md or docs/*
|
docs |
Dockerfile or .github/*
|
ci |
.css or .scss
|
style |
config.yaml or .env
|
chore |
Scope inference: It looks at the directory structure. Files in api/ → scope: api. Files in ui/ → scope: ui.
Smart description: It parses the diff to find function names, class names, and meaningful changes — then synthesizes a human-readable description.
Real Example
$ git diff --cached
diff --git a/src/api/users.py b/src/api/users.py
+ def create_user(email, password):
+ return User(email=email, password=hash(password))
+ async def get_user_profile(user_id):
+ return await db.users.find_one({"_id": user_id})
$ git-copilot gen
✨ feat(api): add user CRUD operations with profile support
1 file(s), +28/-0 lines
Three Ways to Use It
1. Ad-hoc (recommended for most people)
git add .
git-copilot gen
# Copy the message or pipe it
git-copilot gen | git commit -F -
2. Git Hook (automatic)
Add this to .git/hooks/prepare-commit-msg:
#!/bin/bash
git-copilot gen > "$1"
Now every git commit automatically gets a smart message.
3. VS Code Keybinding
Add to your keybindings.json:
{
"key": "ctrl+shift+c",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "git add . && git-copilot gen | git commit -F -\u000D" }
}
Why Not Just Use AI?
I've tried claude commit, aider, and GitHub Copilot's commit feature. They're impressive, but:
- Latency: 5-10 seconds per call. I have to wait.
- Cost: Even at $0.01/commit, that's $5-10/month for a solo dev.
- Privacy: Your code leaves your machine for every commit.
-
Bloat: I don't need a neural network to tell me
feat(api): add route— a regex table is sufficient.
git-copilot is the hotkey version — instant, private, and it never charges per commit.
Installation
pip install git-copilot
That's it. One command. No API keys, no config files, no Docker.
git-copilot --help
The Free vs Pro Split
The CLI is free and open source forever. But if you want more firepower for your team, the Git Commit Copilot Pro Templates Pack adds:
| Feature | Free CLI | Pro Pack |
|---|---|---|
| Auto-detect type & scope | ✅ | ✅ |
| Conventional Commits spec | ✅ | ✅ |
| Configurable type emojis | ✅ | ✅ |
| Custom commit templates for teams | ❌ | ✅ |
| Multi-line body & footer | ❌ | ✅ |
| CI/CD formatted output | ❌ | ✅ |
| Breaking change markers | ❌ | ✅ |
| Jira/Linear issue integration | ❌ | ✅ |
| Priority updates & new templates | ❌ | ✅ |
| Price | Free | $9.99 |
The Bottom Line
Your commit history is your project's diary — it should tell a coherent story, not scream "idk lol". git-copilot makes good commit messages effortless by removing the mental overhead.
No AI. No SaaS. No subscription. Just a smart little script that reads your code and tells you what changed.
⭐ Star on GitHub | 💾 Install Now
P.S. If this resonates, check out the Pro Templates Pack — it's what I use for my own team.

Top comments (0)