Enforce consistent commit message format across a team so the git history is readable and searchable.
Automatically generate changelogs from commit messages by parsing their standardized structure.
Prevent developers from committing messages that don't follow your project's conventions.
Set up shared commit rules across multiple repositories using pre-built configurations.
commitlint is a tool that checks whether git commit messages follow a consistent format before they are accepted. A commit message is the note a developer writes to describe what changed in a set of code edits. When many developers contribute to the same project, inconsistent commit messages make it hard to read the history or automatically generate changelogs. The conventional commit format commitlint enforces looks like: type(scope): subject, for example, fix(server): send cors headers or feat(blog): add comment section. The type describes the nature of the change (fix, feat, chore, docs, test, and others), the optional scope narrows down which part of the codebase was affected, and the subject is a short description. commitlint checks that messages match this pattern and flags anything that doesn't. It is typically configured to run automatically as a git hook, meaning it checks your message every time you commit locally, or as part of a continuous integration pipeline so that messages are validated whenever code is pushed to a shared repository. Configuration is loaded from files like .commitlintrc or a commitlint field in package.json. A number of pre-built shared configurations are available to extend, covering different convention styles. The library is MIT-licensed and maintained as a monorepo, a single repository containing multiple related packages.
Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.