Commitlint

Commit messages can be checked against formatting rules with Commitlint.

github.com/conventional-changelog/commitlint
Commitlint homepage screenshot

About Commitlint

Commitlint checks whether commit messages follow the conventional commit format, generally type(scope?): subject, where scope is optional. It recognizes common types such as feat, fix, and chore, which can be changed through configuration. It can be run from the command line or programmatically, including linting on commit with husky and linting during CI builds. It requires Node.js LTS >= 22.12.0 and git >= 2.13.2.

Key features

  • Checks commit messages against conventional commit format
  • Lints messages on commit with husky
  • Lints messages during CI builds
  • Loads rules from commitlintrc or commitlint config files
  • Supports shared configs including config-conventional and config-angular
  • Provides API packages for lint, load, read, and format
Best for: Developers and teams using conventional commits who want consistent commit message formatting.
Good for
  • Available as CLI and programmatic API
  • Supports shared configurations and custom rule changes
  • Considered stable and used in various projects
Watch out for
  • Requires Node.js LTS >= 22.12.0
  • Requires git >= 2.13.2
  • Patch releases for older versions may not be timely

Commitlint at a glance

Type
Open-source project
Pricing
Not confirmed. Check the site
Open source
Yes · Source code
Language
English
Last checked
Oct 6, 2026 · Online when checked
Listed
Oct 5, 2026

Commitlint alternatives

Tools and sites you could use instead, ranked by how closely they match.

All 24 alternatives

Popular in Developer Tools

Well-known listings from the same topic.

All 423

Commitlint FAQ

What commit format does Commitlint check?
It checks the conventional commit format, generally type(scope?): subject, where scope is optional and multiple scopes are supported.
Where does Commitlint read configuration from?
From .commitlintrc files, commitlint.config files, or a commitlint field in package.json or package.yaml.
How can Commitlint be run?
Through the CLI, programmatically via the API, on commit with husky, or during CI builds.
Is something wrong or out of date?

Tell us and an editor will check it.

Own this website?

Claim the listing and suggest updates yourself. An editor checks every claim first.

Claim this listing