Commit Message Generator
Write Conventional Commits messages with length and style checks.
About this tool
Choose the type (feat, fix, docs, refactor and so on), add an optional scope, write a short subject and optional body, mark breaking changes, and add footers such as Closes #123. The message is assembled with the body wrapped at 72 columns, checked against common rules, and given as a ready git commit command.
Writing good commit messages
A commit message is a note to everyone who reads the history later, including you. The Conventional Commits format, type(scope): subject, lets tools such as semantic-release, release-please and commitlint calculate version numbers and write changelogs automatically. The main types are feat (a new feature, minor version) and fix (a bug fix, patch version). An ! or a BREAKING CHANGE footer signals a major version. Beyond the format, a few habits make history easy to read. Keep the subject under 50 characters (72 at most), because git log --oneline and GitHub truncate longer ones. Write in the imperative mood ("add passkey sign-in", completing "this commit willโฆ") and leave off the full stop. In the body, wrapped at 72 columns, explain what changed and why, since the diff already shows how. Reference issues in footers (Closes #482) so trackers link and close them. Honest limits: types other than feat and fix are conventions, so follow your team's commitlint rules. A clear message can't rescue a commit that mixes unrelated changes, so keep commits focused. The changelog generator, the .gitignore generator and the SemVer calculator are related.
Frequently asked questions
What is a Conventional Commit?
A message like feat(auth): add passkey sign-in: a type, an optional scope and a short imperative subject.
How long should a commit subject be?
Ideally 50 characters or fewer, and never more than 72.
How do I mark a breaking change?
Add ! after the type (feat!:) and a BREAKING CHANGE: footer explaining it.
Is anything uploaded?
No. The file is generated in your browser and nothing is stored or sent.