NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3115 most downloaded on npm
Lint your commit messages
Last release 15 days ago
19 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
167 releases · first in 2017
fix(types): correct breaking-change-exclamation-mark rule config type by @lazerg in #4954
Full Changelog: v21.2.2...v21.2.3
One column per quarter.
parse: require colon after note keywords (conventional-commits-parser 7.1.2) ( #4927 ) ( b83c515 ), closes conventional-changelog/conventional-changel
Full Changelog: v21.2.1...v21.2.2
chore(read): replace deprecated git-raw-commits with git-client by @igordanchenko in #4860
Full Changelog: v21.2.0...v21.2.1
Note: Version bump only for package @commitlint/root
Note: Version bump only for package @commitlint/cli
feat(resolve-extends): resolve pure-ESM presets (conventional-changelog v7/v9/v10) by @escapedcat in #4859
Full Changelog: v21.1.0...v21.2.0
fix: remove duplicate es-toolkit@1.47.1 keys from lockfile by @escapedcat in #4833
Full Changelog: v21.0.2...v21.1.0
fix: emit actionable error when --edit cannot find COMMIT_EDITMSG ( #589 ) by @escapedcat in #4755
Full Changelog: v21.0.1...v21.0.2
fix(load): only resolve relative formatter paths by @escapedcat in #4761
Full Changelog: v21.0.0...v21.0.1
widen cz-commitlint inquirer peer dep to support v9-v12 #4554 (#4682) (341f0c4)
chore!: minimum node version v22 (#4679) (ac2b3f4), closes #4679
Co-authored-by: Claude Opus 4.6 (1M context) noreply@anthropic.com
Note: Version bump only for package @commitlint/cli
Co-authored-by: Claude Opus 4.6 (1M context) noreply@anthropic.com
Heads-up: --legacy-output is a transitional escape hatch. It will be removed in a future major release. Plan to migrate your parsers / snapshots to th
Heads-up: --legacy-output is a transitional escape hatch. It will be removed in a future major release. Plan to migrate your parsers / snapshots to the new format during the v21 lifecycle.
Full Changelog: v20.5.3...v21.0.0
refactor: replace all lodash.* dependencies with es-toolkit/compat by @debuggingfuture in #4734
Full Changelog: v20.5.2...v20.5.3
Just minor dep updates before the next breaking change
Just minor dep updates before the next breaking change
Full Changelog: v20.5.1...v20.5.2
feat(cz-commitlint): add exclamation mark support for breaking changes by @mrt181 in https://github.com/conventional-changelog/commitlint/pull/4655
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v20.4.4...v20.5.0
fix(types): allow context parameter in QualifiedRuleConfig functions by @Br1an67 in https://github.com/conventional-changelog/commitlint/pull/4636
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v20.4.3...v20.4.4
fix: npx usage #613 by @escapedcat in https://github.com/conventional-changelog/commitlint/pull/4630
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v20.4.2...v20.4.3
fix(rules): ignore cherry-picks in signed-off-by by @mzedel in https://github.com/conventional-changelog/commitlint/pull/4625
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v20.4.1...v20.4.2
revert: replace all lodash string methods with kasi #4602 by @escapedcat in https://github.com/conventional-changelog/commitlint/pull/4621
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v20.4.0...v20.4.1
feat: upgrade conventional commit packages #4082 by @escapedcat in https://github.com/conventional-changelog/commitlint/pull/4597
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v20.3.1...v20.4.0
fix(types): add scope-delimiter-style types by @what1s1ove in https://github.com/conventional-changelog/commitlint/pull/4592
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v20.3.0...v20.3.1
update dependency tar-fs to v3.1.1 [security] (#4550) (273a43e)
feat(rules)!: make body-max-line-length ignore lines with URLs (#4486) (2f37a88), closes #4486
body-max-line-length will be ignoredNote: Version bump only for package @commitlint/cli
Note: Version bump only for package @commitlint/cli
Note: Version bump only for package @commitlint/cli
Note: Version bump only for package @commitlint/cli
Note: Version bump only for package @commitlint/cli
escapedcat committed Jan 8, 2026
Configuration menu
View commit details
Copy full SHA for be3a280
Browse repository at this point
Copy the full SHA
be3a280 View commit details
Browse the repository at this point in the history
Loading
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
feat: add support for .mts config file by @amir-rahmanii in https://github.com/conventional-changelog/commitlint/pull/4581
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v20.2.0...v20.3.0
feat(lint): update ESLint configuration to use Vitest and remove Jest by @alsmadi99 in https://github.com/conventional-changelog/commitlint/pull/4542
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v20.1.0...v20.2.0
feat(config-pnpm-scopes): allow global scope by @ya2s in https://github.com/conventional-changelog/commitlint/pull/4553
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v20.0.0...v20.1.0
feat(rules)!: make body-max-line-length ignore lines with URLs (#4486) (2f37a88), closes #4486 by @aspiers
body-max-line-length will be ignoredFull Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.9.1...v20.0.0
perf(rules): optimize header-trim by @felipecrs in https://github.com/conventional-changelog/commitlint/pull/4363
husky init to husky install by @Stautvis in https://github.com/conventional-changelog/commitlint/pull/4356Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.8.0...v19.8.1
fix(config-lerna-scopes): remove deprecated @lerna/project dependency by @janbiasi in https://github.com/conventional-changelog/commitlint/pull/4284
node: prefix to bypass require.cache call for builtins by @Fdawgs in https://github.com/conventional-changelog/commitlint/pull/4302'use strict' directives by @Fdawgs in https://github.com/conventional-changelog/commitlint/pull/4301Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.7.1...v19.8.0
fix(config-nx-scopes): fix for projects without explicit targets by @gperdomor in https://github.com/conventional-changelog/commitlint/pull/4261
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.7.0...v19.7.1
build: fix install git in container by @jeohist in https://github.com/conventional-changelog/commitlint/pull/4197
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.6.0...v19.6.1
feat: support using delimiter in scope-enum by @colinaaa in https://github.com/conventional-changelog/commitlint/pull/4161
scope-enum by @colinaaa in https://github.com/conventional-changelog/commitlint/pull/4161Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.5.0...v19.6.0
feat(cli): use special errorCode for missing rules/config #4142 by @escapedcat in https://github.com/conventional-changelog/commitlint/pull/4143
execa with tinyexec and Node's child_process.spawnSync by @ziebam in https://github.com/conventional-changelog/commitlint/pull/4134Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0
fix(rules): handle blank commit message in signed-off-by rule by @SetDefaultOne in https://github.com/conventional-changelog/commitlint/pull/4124
signed-off-by rule by @SetDefaultOne in https://github.com/conventional-changelog/commitlint/pull/4124Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1
Support command line options from a file by @benquarmby in https://github.com/conventional-changelog/commitlint/pull/4109
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.3.1...v19.4.0
feat(format): print full commit message for valid commits if -V by @weixinwu in https://github.com/conventional-changelog/commitlint/pull/4026
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.2.2...v19.3.0
fix(is-ignored): ignore "amend!" commits by @chalkygames123 in https://github.com/conventional-changelog/commitlint/pull/4024
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.2.1...v19.2.2
fix(config-nx-scopes): include file extension in nx imports by @timonmasberg in https://github.com/conventional-changelog/commitlint/pull/3979
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.2.0...v19.2.1
package.yaml config (#3976) (94eab40)main and types keys in package.json (#3953) (7ddaad4)conditions param for moduleResolve (#3962) (67baff9)Note: Version bump only for package @commitlint/cli
Note: Version bump only for package @commitlint/cli
feat(cli): introduce new --last flag, to stop recommending HEAD~1 by @knocte in https://github.com/conventional-changelog/commitlint/pull/3916
package.yaml config by @danielbayley in https://github.com/conventional-changelog/commitlint/pull/3976Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.1.0...v19.2.0
fix: add main and types keys in package.json by @marcalexiei in https://github.com/conventional-changelog/commitlint/pull/3953
main and types keys in package.json by @marcalexiei in https://github.com/conventional-changelog/commitlint/pull/3953conditions param for moduleResolve by @JounQin in https://github.com/conventional-changelog/commitlint/pull/3962Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.0.3...v19.1.0
fix: mark @types/conventional-commits-parser as dep for @commitlint/types by @JounQin in https://github.com/conventional-changelog/commitlint/pull/394
@types/conventional-commits-parser as dep for @commitlint/types by @JounQin in https://github.com/conventional-changelog/commitlint/pull/3944Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.0.2...v19.0.3
fix: fallback to resolve-from for Yarn P'n'P by @JounQin in https://github.com/conventional-changelog/commitlint/pull/3941
resolve-from for Yarn P'n'P by @JounQin in https://github.com/conventional-changelog/commitlint/pull/3941Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.0.1...v19.0.2
fix: drop resolve-from, resolve-global and import-fresh, resolve global packages correctly by @JounQin in https://github.com/conventional-changelog/co
resolve-from, resolve-global and import-fresh, resolve global packages correctly by @JounQin in https://github.com/conventional-changelog/commitlint/pull/3939Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v19.0.0...v19.0.1
resolve-from, resolve-global and import-fresh, resolve global packages correctly (#3939) (8793c63), closes #3938migrate to pure ESM
feat: migrate to pure ESM
chore: update snapshot
fix: load parserPreset with another await
test: migrate to vitest
test: remove no replacement --runInBand test-ci script
chore: fix code reviews
refactor(load): rewrite resolve logic
fix(config-nx-scopes): fix syntax error
feat(resolve-extends): add resolveFrom and loadParserPreset
feat(load): use resolveFrom and loadParserPreset from resolve-extends
test: include only @commitlint/* packages src in coverage
test: explicit import vitest utilities
test: remove @jest/globals from dependencies
fix(resolve-extends): resolveFrom output should be platform aware
test: restore NO_COLOR to test script
chore: fix linting issues
fix: should use fileURLToPath instead of pathname for Windows compatibility
Apply suggestions from code review
fix: should reuse cli instead call yargs()
feat(cli): set terminalWidth as wrap to avoid work break on help
Update .eslintrc.cjs
feat: migrate @commitlint/config-conventional to pure ESM
feat!: migrate to pure ESM (#3850) (3423735), closes #3850 by @JounQin Thanks to @marcalexiei and @knocte for the review and feedback
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v18.6.2...v19.0.0# 19.0.0 (2024-02-27)
Features
Docs
update dependency semver to v7.6.0
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v18.6.0...v18.6.1
feat(rules): add header-trim rule by @marcalexiei in https://github.com/conventional-changelog/commitlint/pull/3871
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v18.5.1...v18.6.0
config-nx-scopes: restore compatibility with nx 17.2.0 and higher (#3855) (1e08a17), closes #3820
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v18.4.4...v18.5.0
Fix subject-full-stop false positive when using ellipsis by @Mersho in https://github.com/conventional-changelog/commitlint/pull/3839
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v18.4.3...v18.4.4
@types/node dependency (#3801) (7b3f8b3)fix: update dependency read-pkg to v9.0.1 by @renovate in https://github.com/conventional-changelog/commitlint/pull/3777
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v18.4.2...v18.4.3
Fix/3768: Consider ESM when selecting cosmiconfig loaders by @joberstein in https://github.com/conventional-changelog/commitlint/pull/3776
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v18.4.1...v18.4.2
update cosmiconfig to specific version by @joberstein
drop node v14 and v16 support
chore: remove unused types
docs: prepare node update and new release
chore!: minimum TS version v5
drop TS v4 support
ci: remove node v14/16 checks
chore: adjust node types to minimal supported version
chore!: further major versions of other deps
upgrade conventional-changelog-conventionalcommits, conventional-commits-parser, conventional-changelog-atom,
docs: simplify releases and remove roadmap
Note: Version bump only for package @commitlint/cli
Note: Version bump only for package @commitlint/cli
Note: Version bump only for package @commitlint/cli
Note: Version bump only for package @commitlint/cli
drop node v14 and v16 support
chore: remove unused types
docs: prepare node update and new release
chore!: minimum TS version v5
drop TS v4 support
ci: remove node v14/16 checks
chore: adjust node types to minimal supported version
chore!: further major versions of other deps
upgrade conventional-changelog-conventionalcommits, conventional-commits-parser, conventional-changelog-atom,
docs: simplify releases and remove roadmap
bump cosmiconfig version and conditionally support mjs config by @joberstein
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v18.3.0...v18.4.0
load: use cosmiconfig-typescript-loader v5 to remove ts-node dependency for @commitlint/load
update dependency read-pkg to v8
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v18.0.0...v18.1.0
chore!: minimum node version v18 (#3644) (5b4aeaf), closes #3644
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v17.8.1...v18.0.0
updated some deps to support latest TS version https://github.com/conventional-changelog/commitlint/pull/3700
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v17.8.0...v17.8.1
Note: Version bump only for package @commitlint/root
Note: Version bump only for package @commitlint/cli
Note: Version bump only for package @commitlint/cli
chore(container): add pullrequest event to container build workflow trigger
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v17.7.2...v17.8.0
docs: clarify subject-case [resolves #3638] by @olets in https://github.com/conventional-changelog/commitlint/pull/3640
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v17.7.1...v17.7.2
Revert "feat(load): use cosmiconfig-typescript-loader v5 to remove ts-node dependency for @commitlint/load (#3633)" (8e41897), closes #3633
Note: Version bump only for package @commitlint/cli
Note: Version bump only for package @commitlint/cli
load: use cosmiconfig-typescript-loader v5 to remove ts-node dependency for @commitlint/load
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v17.6.7...v17.7.0
docs: fix grammar in sentence by @jschepke in https://github.com/conventional-changelog/commitlint/pull/3625
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v17.6.6...v17.6.7
build(deps): bump semver from 7.5.0 to 7.5.2 by @dependabot in https://github.com/conventional-changelog/commitlint/pull/3620
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v17.6.5...v17.6.6
add named export to @commitlint/parse
config-lerna-scopes: add missing dependency
rules: avoid processing strings with case-less Letter category symbols in subject-case (#3586) (70a4450), closes #3585
subject-case (#3586) (70a4450), closes #3585Note: Version bump only for package @commitlint/cli
Note: Version bump only for package @commitlint/cli
rules: expand Latin-only characters limitation for subject-case with Unicode support
subject-case with Unicode support (#3575) (5f83423)Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v17.5.1...v17.6.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →