Developer Tools
Conventional Commits Builder
Build a Conventional Commits 1.0.0 message in your browser. Pick a type, scope, body, breaking change, and footers, then copy a clean commit.
Conventional Commits builder
Quick presets
Start from a real commit shape
Type
What kind of change is this?
Header
Scope and description
A short noun for the area you touched (api, ui, auth, deps).
Imperative mood, lowercase, no trailing period. Aim for 50 chars or fewer in the full subject line.
Body
Why and what changed
Separate the body from the subject with a blank line (added automatically). URLs and long tokens stay on their own line when wrap is on.
Breaking change
Does this commit break existing usage?
Footers
Issue references and trailers
No footers yet. Use them for issue references (Fixes #123), code review trailers (Reviewed-by, Co-authored-by), or signoffs.
Commit message
Ready to paste into git
feat(auth): add password reset flow Sends a one-time token by email so users can reset a forgotten password without contacting support.
Checks
What this commit will do
- Infofeat triggers a minor version bump under semantic-release default rules.
- OKSubject line is 35 characters, within the 50-character guideline.
Format reference
The Conventional Commits 1.0.0 spec describes a commit as:
<type>[optional scope][!]: <description> [optional body] [optional footer(s)]
- The header is on a single line. Body and footers are separated from the header (and from each other) by exactly one blank line.
- Add ! after the type/scope and a BREAKING CHANGE: footer to mark a major-impact change.
- Footers use the Token: value form (a single colon and one space). Issue references like Refs #123 are allowed with a space instead of the colon.
Release impact
Default rules for semantic-release and release-please:
- feat triggers a minor version bump.
- fix and perf trigger a patch version bump.
- Any commit with ! or a BREAKING CHANGE: footer triggers a major version bump, even if the type is chore or refactor.
- docs, style, refactor, test, build, ci, and chore do not bump the version by default.
- Custom types are accepted by the spec but ignored by release tooling unless you configure it.
How to use
- Pick a preset (New feature, Bug fix, Breaking change, Chore, Docs, Revert) to see a real commit shape, or start from scratch.
- Choose a type (feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert, or custom for your team) and optionally a scope like auth, api, or deps.
- Write the description in the imperative mood (add, fix, remove). Keep the full subject within 50 characters when possible and never over 72.
- Add a body to explain the why and what changed. Turn on Wrap at 72 chars to keep the body readable in git log and review tools.
- If the change breaks existing usage, tick Mark as breaking change and describe what consumers must update. The builder adds the ! marker and the BREAKING CHANGE: footer automatically.
- Add footers for issue references (Fixes #123) and trailers (Reviewed-by, Co-authored-by, Signed-off-by). Use the token suggestions for the most common patterns.
- Read the checks panel for release impact and style notes, then click Copy message or Copy git commit to paste into your terminal or pull request.
About this tool
Conventional Commits Builder turns a short form into a clean, spec-compliant commit message ready for git, GitHub, or your release pipeline. It implements the Conventional Commits 1.0.0 specification used by semantic-release, release-please, commitlint, commitizen, husky, and most modern release tooling. Pick a type (feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert, or a custom type your team uses), optionally add a scope like auth, api, or deps, write the description in the imperative mood, and the header line is built and validated as you type. The 50-character recommendation and 72-character hard cap from the git community are surfaced as a live character counter and as warnings, so you can keep git log --oneline and pull request titles readable. Add a longer body to explain the why and the user-visible effect; the optional 72-character soft-wrap preserves blank lines, leaves URLs and long tokens on their own line, and inserts the blank line that separates body from header automatically. Mark a commit as a breaking change with a single checkbox: the builder adds the exclamation marker after the type or scope and emits the BREAKING CHANGE: footer at the bottom, which is what semantic-release and release-please look for when bumping the major version. Add as many trailer footers as you need with token suggestions for the patterns teams actually use (Refs, Fixes, Closes, Resolves, Reviewed-by, Signed-off-by, Co-authored-by, Reported-by). Values that start with a #issue number use the conventional space separator (Refs #1182), and everything else uses the colon trailer form (Token: value) so git interpret-trailers parses them cleanly. A checks panel calls out the release impact under semantic-release default rules (feat for minor, fix and perf for patch, anything breaking for major), flags past or progressive tense (added, fixed, fixing) and trailing periods that violate the conventional style, and warns when a long subject would be clearer with a body. A copy button hands you the full message; a second button wraps it as a git commit -m command for shells. Quick presets seed a new feature, a bug fix, a breaking change, a chore, a docs commit, and a revert so you can confirm the shape of each conventional commit type without rebuilding the form. Everything runs locally; the commit messages you draft here, including private repo content and issue numbers, never leave your browser.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
Gitignore Generator
Build a .gitignore from curated language, framework, editor, and OS templates.
Open tool
DeveloperSemver Comparator
Compare two versions and check if a version satisfies a semver range.
Open tool
DeveloperRegex Tester
Live regex testing with highlights, capture groups, and replacement preview.
Open tool
DeveloperJSON Formatter
Format, minify, and validate JSON in your browser.
Open tool
DeveloperMock Data Generator
Build custom rows of fake test data and export to JSON, CSV, SQL, or TS.
Open tool