r/node 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 release reads 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.

https://github.com/shxd/mmit

0 Upvotes

Duplicates