Built a Conventional Commits CLI with free AI tools (zero cost)
Staring at a staged diff trying to summarize it in one sentence is a tax every developer pays. "fix stuff" and "wip" pile up in the history until a git blame six months later leaves you guessing.
That's why I built commit-sage.
What it is
commit-sage is a Python CLI that reads your staged git diff, sends it to an AI provider, and returns a ready-to-use Conventional Commit message — no manual writing.
Flow:
- Reads staged diff via git
- Sends diff to configured AI provider (OpenAI or Gemini)
- Parses response into Conventional Commit format
- You review before committing
Handles edge cases cleanly: missing API key, no staged files, API failures — all caught with clear error messages instead of crashes.
How it was built
Entire build used free AI-assisted coding tools, zero paid tooling. Started as a single-provider script, refactored into a dispatch pattern once a second backend was added.
Why it matters
Commit history is documentation. A clean log makes changelogs, code review, and debugging easier. commit-sage doesn't replace judgment — it still shows the message before commit — it just removes the blank-page problem.
Try it
MVP stage, feedback and PRs welcome.
Top comments (1)
A conventional commits CLI is a nice place to use AI because the output is structured and reviewable. The guardrail I would want is showing the diff-derived reason, not only the suggested message.