Boneyard Tools

Conventional Commit Message Generator

Write a tidy, Conventional Commits message without memorizing the spec. Choose a type, add an optional scope and body, flag breaking changes, link issues, and watch the message build live with a header-length guide.

How to write a Conventional Commit message

  1. Pick a type like feat or fix and add an optional scope such as auth.
  2. Write a short imperative description, then add a body, breaking change or issue numbers if needed.
  3. Check the header-length guide, then copy the formatted message into git commit.

Examples

Feature with a scope

{ "type": "feat", "scope": "auth", "description": "add OAuth login" }
feat(auth): add OAuth login

Breaking change with an issue reference

{ "type": "feat", "scope": "api", "description": "drop v1 routes", "isBreaking": true, "breakingDescription": "v1 endpoints removed", "issues": ["42"] }
feat(api)!: drop v1 routes

BREAKING CHANGE: v1 endpoints removed
Closes #42

Frequently asked questions

What is a Conventional Commit?

Conventional Commits is a lightweight convention for commit messages. The header reads type(scope): description, for example feat(auth): add OAuth login. A consistent format makes history readable and lets tools generate changelogs and version bumps automatically.

Which commit types can I use?

The standard set is feat, fix, docs, style, refactor, perf, test, build, ci, chore and revert. feat maps to a minor version bump and fix to a patch; the others document intent without an implicit bump.

How do I mark a breaking change?

Toggle the breaking change option. The generator adds a ! before the colon in the header (feat(api)!: ...) and appends a BREAKING CHANGE: footer describing the impact. Either signal tells SemVer tooling to plan a major release.

Why does the tool warn about header length?

The first line is shown in logs, pull requests and git UIs that truncate long subjects. The guide flags 50 characters as the comfortable target and 72 as the hard limit, so your summary stays fully visible.

How do I link issues in the commit?

Enter issue numbers and the generator builds a footer like Closes #12, #15. On GitHub and GitLab those keywords close the referenced issues automatically when the commit lands on the default branch.

Is anything I type sent to a server?

No. The message is assembled entirely in your browser. Nothing you type, including scopes or issue numbers, is uploaded, logged or stored anywhere.

Related tools