consolelog.tools

Commit Message Generator

Generate conventional commit messages following best practices

About this ToolHow it works, benefits & use cases

Compose a properly formatted Conventional Commits message by filling in fields rather than memorising the spec. Pick a type from the eleven conventional types — feat, fix, docs, style, refactor, perf, test, build, ci, chore, or revert — each with an inline description of what it means, add an optional scope, and write a short description. Optional fields cover a longer body, a breaking-change flag that appends the "!" marker and a "BREAKING CHANGE:" footer, and a comma-separated list of issue references that become a "Refs:" footer. The message assembles live as "type(scope): description" with body and footers spaced correctly. A validator runs against the result and flags errors (missing or too-short description, malformed header) and warnings (description starting with a capital, ending in a period, or running long), while a green confirmation appears when the message is clean. Built-in examples can be loaded into the form with one click, and the configuration is captured in a shareable URL.

How to Use

  1. 1Choose the commit Type from the dropdown — its description updates to explain when to use it.
  2. 2Optionally add a Scope (the module affected) and write a concise Description in lowercase, imperative mood.
  3. 3Add a longer Body, tick "This is a breaking change" to add the ! marker and breaking footer, or list issue references for a Refs footer as needed.
  4. 4Read the generated message as it updates live and check the validation feedback for errors or suggestions.
  5. 5Copy or download the message, or load one of the built-in examples to see the format applied.

Key Benefits

  • Generates spec-compliant Conventional Commits with type, scope, body, and footers
  • Eleven commit types each annotated with an inline description of its purpose
  • Breaking-change toggle adds the ! marker and a BREAKING CHANGE: footer automatically
  • Issue references become a properly formatted Refs: footer, handling #123 and JIRA-456 styles
  • Live validation flags errors and warns about capitalisation, trailing periods, and length
  • One-click examples load real messages into the form
  • Configuration captured in a shareable URL plus copy and download

Common Use Cases

  • Writing consistent commit messages on teams that enforce Conventional Commits
  • Feeding semantic-release or changelog tools that parse feat/fix/BREAKING CHANGE
  • Learning the Conventional Commits format by seeing each field assembled live
  • Drafting a breaking-change commit with the correct ! marker and migration footer
  • Linking commits to tracker issues with a clean, comma-separated Refs footer

Commit configuration

A new feature

Component or module affected

Brief description of the change (imperative mood, lowercase)

Detailed explanation of the motivation and implementation

Comma-separated list of issue numbers

Updates live as you type

Fill in at least a description to see the generated message.

Examples

feat(auth): add JWT token validation

feat(auth): add JWT token validation

fix(api): handle null response in user endpoint

fix(api): handle null response in user endpoint

Refs: #123

feat(ui): redesign dashboard layout

feat(ui)!: redesign dashboard layout

BREAKING CHANGE: Dashboard component props have changed

docs: update installation instructions

docs: update installation instructions

Conventional Commits format

type(scope): description

[optional body]

[optional footer(s)]
  • Use lowercase for type and description.
  • Keep the header line under 100 characters.
  • Use imperative mood in the description.
  • Separate subject from body with a blank line.
  • Use the body to explain what and why, not how.

Was this tool helpful?

Share Your Experience

Help others discover this tool!

Related tools