NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3100 most downloaded on npm
Lint your commit messages
Last release 15 days ago
19 Sep 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
95 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
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
Note: Version bump only for package @commitlint/rules
Note: Version bump only for package @commitlint/rules
Note: Version bump only for package @commitlint/rules
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
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
Co-authored-by: Claude Opus 4.6 (1M context) noreply@anthropic.com
Note: Version bump only for package @commitlint/rules
refactor: replace all lodash.* dependencies with es-toolkit/compat by @debuggingfuture in #4734
Full Changelog: v20.5.2...v20.5.3
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
Note: Version bump only for package @commitlint/rules
Note: Version bump only for package @commitlint/rules
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 ignoredescapedcat 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(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
body-max-line-length will be ignoredperf(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
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
Note: Version bump only for package @commitlint/rules
Note: Version bump only for package @commitlint/rules
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
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
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
migrate 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
Note: Version bump only for package @commitlint/rules
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
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
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
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
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/rules
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
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
Note: Version bump only for package @commitlint/rules
Note: Version bump only for package @commitlint/rules
Note: Version bump only for package @commitlint/rules
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
add named export to @commitlint/parse
rules: avoid processing strings with case-less Letter category symbols in subject-case (#3586) (70a4450), closes #3585
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
subject-case with Unicode support (#3575) (5f83423)Note: Version bump only for package @commitlint/rules
Note: Version bump only for package @commitlint/rules
parse: allow setting fieldPattern in parserOpts
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v17.4.3...v17.4.4
## 17.4.3 (2023-02-13) ### Bug Fixes * subject-full-stop rule bugfix (#3531) (5d3d529) Full Changelog: https://github.com/conventional-changelog/commi
load: fixes a bug when a ts commitlint config is compiled twice
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v17.4.1...v17.4.2
stop truncating the body in presence of dashes
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v17.3.0...v17.4.0
config-pnpm-scopes: implement config-pnpm-scopes
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v17.2.1...v17.3.0
update dependency cosmiconfig-typescript-loader to v4.1.0
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v17.1.2...v17.2.0
update dependency yargs to v17.5.1
drop node v12 support
chore: rename circleci windows job
Migrate @nrwl/tao to nx following 13.9.0 release by @fguitton in https://github.com/conventional-changelog/commitlint/pull/3135
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v16.3.0...v17.0.0
drop node v12 support
chore: rename circleci windows job
node version is not defned by the name anyways (i think)
Note: Version bump only for package @commitlint/rules
rules: footer-leading-blank should work with body comments
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v16.2.3...v16.2.4
update dependency cosmiconfig-typescript-loader to v1.0.5
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v16.2.0...v16.2.1
is-ignored: ignore merge tag commit messages
Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v15.0.0...v16.0.0
prompt: correct import kind in prompt package
Co-authored-by: Renovate Bot bot@renovateapp.com Co-authored-by: escapedcat github@htmlcss.de
test(config-lerna-scopes): reuse npm bootstrap to simplify tests
test(config-lerna-scopes): reuse npm bootstrap to simplify tests
test: fix issue after merge
test: one more fix after merge
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Renovate Bot bot@renovateapp.com Co-authored-by: escapedcat github@htmlcss.de
Big thanks to @armano2 ❤️
extend helpUrl from shareable config
support multiple scopes and multiple cases & fix sentence-case is not consistent with commitlint/cli (#2806) (2c71a7e), closes #2806 #2782
parse: enforce secure version of conventional-commits-parser
conventional-commits-parser (#2776) (a351801)cz-commitlint: fix minor formatting issues
COMMIT_EDIT_MSG (#2618) (5badf6d), closes #2351update dependency chalk to v4.1.1
add subject-exclamation-mark rule to improve error messages (#2593) (be701bd)
chore!: remove node 10 support (#2596) (4db4ba1), closes #2596
add subject-exclamation-mark rule to improve error messages (#2593) (be701bd)
chore!: remove node 10 support (#2596) (4db4ba1), closes #2596
Note: Version bump only for package @commitlint/rules
Note: Version bump only for package @commitlint/rules
Note: Version bump only for package @commitlint/rules
Nothing published for this version
update dependency read-pkg to v6
next)Note: Version bump only for package @commitlint/rules
Note: Version bump only for package @commitlint/rules
Note: Version bump only for package @commitlint/rules
update dependency conventional-commits-parser to v3.2.1
Rule | AsyncRule | SyncRule as rule value type in Plugin (#2146) (75b67b8)extends field should be resolved from left to right (#2070) (c0a86f5)extends resolution is changed from right-to-left to left-to-rightupdate dependency @types/fs-extra to ^9.0.1 (#2088) (cb1028e)
refactor!: drop support for lerna v2 (59667b3)
also remove node 13 because we do not support experimental versions
Co-authored-by: Cedric van Putten me@bycedric.com
Co-authored-by: Cedric van Putten me@bycedric.com
Your coding agent can read these notes before it upgrades. Set up the MCP server →