Conventional Commits Linter & Validator Validate and build Conventional Commits messages.
100% offline
Input47 chars · 1 lines
Outputvalid16 chars
Valid · type: feat
No issues found.

About Conventional Commits Linter & Validator

The Conventional Commits specification gives commit messages a small, predictable grammar — `type(scope)!: subject` — so that tooling can read your history, derive semantic versions, and generate changelogs automatically. This Conventional Commit linter checks a message against that grammar and tells you exactly what is wrong: an unknown type, a missing colon, a trailing period, a subject that is too long, or a non-imperative description.

It also includes a guided builder. Pick a type, add an optional scope, mark breaking changes, and write a subject — the tool assembles a compliant commit message you can copy straight into `git commit`. The builder's output feeds the linter, so what you build is what gets validated.

Everything runs entirely in your browser. No message you paste or build is ever uploaded, which makes it safe for private repositories and internal projects.

Features

  • Validate a commit header against the Conventional Commits grammar
  • Clear, line-by-line issues split into errors and warnings
  • Known-type checking (feat, fix, docs, refactor, chore, and more)
  • Breaking-change detection via "!" or a BREAKING CHANGE footer
  • Guided builder that assembles a compliant message from parts
  • Fully offline — nothing leaves your device

How to use

  1. Choose Lint and paste a commit message into the input pane.
  2. Read the badge and issue list — errors must be fixed, warnings are advisory.
  3. Switch to Build to set type, scope, subject, and the breaking flag.
  4. Copy the assembled, validated message into your git commit.

Frequently asked questions

What is the Conventional Commits format?

A lightweight convention where each commit header is "type(scope)!: subject" — for example "feat(api): add pagination". The type and optional scope describe the change, "!" marks a breaking change, and the subject is a short imperative summary.

Which commit types are allowed?

This linter recognises the common Angular preset types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, and revert. feat and fix map to minor and patch version bumps under SemVer.

How do I mark a breaking change?

Add a "!" before the colon (e.g. "feat(api)!: drop v1") or include a "BREAKING CHANGE:" footer in the body. Either signals a major version bump to release tooling. This linter detects both.

Why does my subject get a warning?

Warnings flag style issues that will not break tooling but are discouraged: a subject longer than 72 characters, a capitalised first word, or a past-tense verb instead of the imperative mood ("add" rather than "added").

Is my commit message uploaded anywhere?

No. The linter and builder run entirely in your browser using plain JavaScript. Nothing you paste or generate is sent to a server, so it is safe for private and proprietary code.

Everything runs locally in your browser — your input is never uploaded.