fastc: zero-config atomic commits from git diffs
Writing good commit messages is tedious. Grouping changes into logical atomic commits is even more tedious. I wanted a tool that would look at my changes and do both automatically.
fastc is a zero-config CLI that analyses your git diff with an LLM and creates atomic conventional commits.
What it does
$ fastc
analysing all changes...
feat(auth): add JWT token validation
refactor(db): extract connection pool config
pushed
The tool:
- Detects staged changes (or stages everything if nothing is staged)
- Sends the diff to an LLM
- The LLM groups changes into logical atomic commits
- Creates the commits using conventional commit format
- Pushes to remote
Why atomic commits matter
Good commit history makes code review easier, git bisect useful, and reverting changes safe. But maintaining it manually is friction that slows you down. fastc removes that friction.
The LLM understands code well enough to group related changes together. A refactor that touches three files gets one commit. A bug fix that happens to be in the same diff as a new feature gets split into two commits.
Installation
# Clone and symlink
git clone https://github.com/danwt/demo-fast-commit.git
ln -s "$(pwd)/demo-fast-commit/fc" ~/.local/bin/fastc
# Configure
mkdir -p ~/.config/fast-commit
echo "OPENROUTER_API_KEY=your-key" > ~/.config/fast-commit/.env
echo "MODEL=google/gemini-2.0-flash-001" >> ~/.config/fast-commit/.env
Usage
Make some changes in a git repo, then:
fastc
That's it. No flags, no configuration beyond the initial setup.
Claude Code integration
fastc also works as a Claude Code skill. Copy the included SKILL.md to ~/.claude/skills/ and invoke with /fastc.