Open-core · zero dependencies · works offline · MIT

Catch commit problems before you push.

CommitLens lints your unpushed conventional commits, previews the release notes they'll produce, and flags breaking changes — before they hit main.

npm i -g @stealth-alpha/commitlens See it work
~/acme-api — commitlens check
$ commitlens check
commitlens · origin/main..HEAD · feature/api
 totally rewrote the auth layer
   error type-empty: commit does not follow Conventional Commits
 fix(api): handle empty body.
   warn subject-full-stop: subject must not end with a period
 feat(api): add pagination

3 commits · 1 clean · 1 warning · 1 error · 1 breaking

$ commitlens notes --range origin/main..HEAD
### ⚠ BREAKING CHANGES
- totally rewrote the auth layer — tokens are now opaque

Three questions, one command

The checks every conventional-commit team needs, run against exactly what you're about to push.

🔍

Spec-aware linting

Type/scope/subject rules from the Conventional Commits spec plus length limits, all tunable per repo through one JSON config.

📝

Release-notes preview

See the grouped markdown your push will generate — Features, Fixes, and everything else — straight from your history.

💥

Breaking-change radar

Detects both ! bangs and BREAKING CHANGE: footers, and nags until each one carries a migration note.

🪝

Hook-native

Drop two lines into commit-msg or pre-push. Exit codes do the enforcement — no daemon, no config framework.

🧭

Smart ranges

No flag? It reviews upstream..HEAD, or since the last semver tag. It always inspects exactly what you're about to ship.

Zero dependencies

Pure Node built-ins. Installs in milliseconds, runs offline, adds no supply-chain surface to your project.

Up and running in under a minute

Install

npm i -g @stealth-alpha/commitlens

Or use npx @stealth-alpha/commitlens without installing.

Check

commitlens check

Lints every unpushed commit with clear rule names and exit codes CI can gate on.

Preview

commitlens notes

See the release notes your push produces, breaking changes on top.

Tune

commitlens init

Write a config: allowed types, lengths, and per-rule severities.

Simple pricing

Open source
$0 forever
  • All lint rules + config
  • Release-notes & breaking-change previews
  • Git hooks & CI exit codes
  • Zero dependencies, MIT licensed
Use it now

FAQ

Does this replace commitlint?

It covers the core conventional-commit linting most teams actually use, and adds what commitlint doesn't give you out of the box: release-notes preview and breaking-change reporting for the exact range you're pushing — as one zero-dependency binary.

What does "zero dependencies" mean?

Everything is built on Node 18+ built-ins. Your install pulls exactly one package and nothing else.

How are breaking changes detected?

Two ways: a ! after the scope in the subject, or a BREAKING CHANGE:/BREAKING-CHANGE: footer in the body. Both are reported with their migration note when present.