Commit Message Generator
Build properly formatted Conventional Commits messages from a type, scope, description, body, and breaking-change footer. Runs entirely in your browser.
Type
Body (optional)
Footer (optional)
6 / 50 recommended chars
Common Use Cases
About Commit Message Generator
Conventional Commits is a lightweight convention for structuring commit messages so they're both human-readable and machine-parseable: a short "type" (feat, fix, docs, and so on), an optional scope, and a one-line description, followed by an optional longer body and footer. Tools like semantic-release, standard-version, and most changelog generators parse exactly this format to automatically figure out whether a change is a patch, minor, or major version bump, which is only reliable if every commit in the repository actually follows the format consistently.
This generator walks through the pieces of a Conventional Commit one at a time: pick a type from the dropdown (each with a one-line explanation of when to use it), optionally add a scope like "api" or "auth" to say which part of the codebase changed, write a description, and optionally add a longer body explaining what changed and why. A "Breaking change" toggle appends the "!" marker after the type/scope and lets you add a BREAKING CHANGE footer describing what breaks and how to migrate; the two together are what tools like semantic-release look for to trigger a major version bump. A free-form footer field covers everything else a commit trailer might carry, like "Closes #123" or "Reviewed-by: ...".
The header line updates live as you type, along with a character count against the widely-used 50-character recommended limit (and 72 as a hard wrap point), conventionally kept short so it reads cleanly in 'git log --oneline' and in most Git hosting UIs, with the "why" pushed down into the body instead of crammed into the subject line.
Everything you type is assembled into the final commit message using plain JavaScript running in your browser tab. Nothing is uploaded to a server, logged, or stored; copy the finished message straight into your 'git commit -m' command, or download it as a .txt file to paste in later.
Frequently Asked Questions
What is Conventional Commits?
Which commit type should I use?
How does a breaking change get marked?
Why does the header have a character limit?
Is my commit message sent anywhere?
Can I use this for a squash-merge or PR title too?
Related Tools
View all GeneratorsLorem Ipsum Generator
Generate paragraphs, sentences, or words of placeholder text for mockups and designs.
Random Number Generator
Generate random numbers with custom ranges, quantity, and sorting options for testing and development.
QR Code Generator
Generate and download QR codes for any URL or text. Customize size, colors, and error correction level.