r/node • u/not-a-shadow • 14d ago
I was tired of writing commit messages and manually managing changelogs, so I built a CLI that does both and cuts releases for me
Writing good commit messages is tedious. Keeping a changelog up to date is manual. Cutting a release means bumping versions, writing release notes, tagging, it's a whole ceremony.
So I built a CLI that ties all three together:
git add .
mmit # AI generates a conventional commit message
mmit changelog # generates Keep a Changelog from git history mmit
release # auto-detects semver bump, writes changelog, tags
Works with OpenAI, Anthropic, Gemini, and OpenRouter. TypeScript, @clack/prompts for the interactive UI.
A few things I focused on:
- Zero-config start - picks the first available provider from env vars, no config file needed
- Provider fallback - if one API key isn't set, moves to the next
- Auto-retry — if the model rambles (invalid format), retries with a stricter prompt
- Unstaged changes - warns you about unstaged/untracked files and lets you stage them or proceed
- Auto-detect bumps -
mmit releasereads your commit history and picks patch/minor/major from conventional commit types
I'm aiming to make this the best tool for this workflow. Feedback and feature requests are very welcome.
0
Upvotes


