Free AI Commit Message Generator — Conventional Commits

Describe what you changed in plain English and get a properly formatted Conventional Commits message instantly — complete with the right type(scope): description header, an optional body, and BREAKING CHANGE footer. No signup, no cost, no limit. Great for keeping your git history clean and compatible with changelog and semantic-versioning tools.



Examples
No result yet — press Generate Commit Message.

About this Commit Message Generator

Writing clear, consistent commit messages is one of those small habits that pays off enormously over the life of a project. This Commit Message Generator takes a plain English description of what you changed and turns it into a properly formatted Conventional Commits message — the type, an optional scope, an imperative-mood subject line, and an optional body or breaking-change footer.

Just describe your change — for example "fixed the bug where login button was unresponsive on mobile" — and the tool will detect the right commit type, rewrite the description in imperative mood, and assemble a header that follows the standard type(scope): description format.

What is Conventional Commits and why it matters

Conventional Commits is a specification for adding human- and machine-readable meaning to commit messages. Every commit header follows the same shape: type(scope): description. Because the format is predictable, tooling like semantic-release, standard-version, and changelog generators can parse your git history automatically to determine the next version number (major, minor, or patch) and to build a changelog without any manual bookkeeping.

Teams that adopt Conventional Commits also get a more readable git log — skimming the history quickly tells you which commits were bug fixes, which added features, and which were just internal cleanup, without opening every diff.

The 8 commit types explained

TypeDescription
featA new feature for the user
fixA bug fix
docsDocumentation only changes
styleChanges that do not affect meaning (whitespace, formatting, semicolons)
refactorA code change that neither fixes a bug nor adds a feature
perfA code change that improves performance
testAdding missing tests or correcting existing tests
choreBuild process, tooling, or dependency changes

Tips for writing good commit messages

  • Use the imperative mood in the subject line: "add", "fix", "update" — not "added", "fixed", "updated"
  • Keep the header under 72 characters so it renders cleanly in git log --oneline and most git UIs
  • Add a scope when a change is limited to one area, e.g. fix(auth): ... or feat(api): ...
  • Use the extended body to explain why a change was made, not just what changed
  • Mark breaking changes explicitly with a ! and a BREAKING CHANGE: footer

How this tool decides the type automatically

When you don't pick a type from the dropdown, the generator scans your description for keywords associated with each Conventional Commits type. Words like "fix", "bug", or "crash" map to fix; words like "add", "new", or "implement" map to feat; words like "refactor" or "cleanup" map to refactor, and so on. If nothing matches, it falls back to chore. This is a simple keyword heuristic, not natural-language understanding — you can always override the detected type using the dropdown if it picks the wrong one.

FAQ

Is this free?
Yes — the Commit Message Generator is completely free, with no signup and no usage limits beyond basic rate limiting.
What is Conventional Commits format?
Conventional Commits is a lightweight convention for commit messages: type(scope): description — for example feat(auth): add password reset flow. Following this format lets tools like semantic-release automatically generate changelogs and determine version bumps (major/minor/patch) based on your commit history.
Can I override the detected type?
Yes — the tool auto-detects a type from your description, but you can pick any of the 8 Conventional Commits types from the dropdown to override it.