Conventional Commit Message Generator

Fill in the fields, get a spec-correct Conventional Commits message, live.

Private by architecture: All processing is 100% client-side memory. Your data never leaves this browser tab.
Build your commit
Generated message
fix: 

Format reference

type(scope)!: description

body

BREAKING CHANGE: description
Closes #issue

About This Tool

Builds a commit message that follows the Conventional Commits v1.0.0 specification exactly: a type(scope): description header line, an optional body, and optional footers including a BREAKING CHANGE: footer, which also adds a ! right after the type (or scope) on the header line. Every field updates the preview as you type.

It only builds the message text: it does not run git commit or touch any repository. Copy the result and pass it to git commit -m or paste it into your editor for a multi-line commit yourself.

Key Features

  • All 11 standard types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert with clear inline hints.
  • Automatic scope formatting: Leave scope blank and the header is just type: description without empty parentheses.
  • Spec-correct breaking change: Adds exclamation mark after type and formats the BREAKING CHANGE: footer block.
  • Issue reference footer: Appends closing references like Closes #123 as dedicated footer lines.
  • Live preview with validation: The full commit body updates on every keystroke with immediate input checks.
  • One-click copy: Copies the complete multi-line message ready for terminal invocation.

Frequently Asked Questions

Why does my header line get a "!" after the type?
Per the Conventional Commits spec, filling in the BREAKING CHANGE field marks the commit as breaking by appending ! immediately after the type (or after the scope, if a scope is set), in addition to the full BREAKING CHANGE: footer.
Is the scope required?
No. Leave it blank and the header is just type: description. The parentheses are omitted entirely, never left empty.
Can I add more than one footer?
Yes: a BREAKING CHANGE footer and an issue reference (like Closes #123) can both be set; they appear as separate lines in the same trailing footer block.
Does this commit anything for me?
No. It only generates text. Copy it and use it with git commit -m or your editor yourself.
Is anything I type sent to a server?
No. The message is built entirely in your browser from the fields above.