Quick Commitlint documentation
Commitlint compatibility
See which commitlint behavior Quick Commitlint supports and where the native CLI deliberately differs.
Quick Commitlint is a focused native implementation of a tested subset of commitlint behavior. It is designed for projects that want the included Conventional or Angular rules without loading commitlint's JavaScript configuration and rule stack for every commit.
It is not a drop-in replacement for every commitlint configuration.
Supported behavior
- Built-in
conventionalandangularpresets matching the local commitlint 21.2 reference packages - The 14 rules listed in the Rules reference
- Commitlint-style severity, condition, and value tuples
- Conventional header, body, footer, scope, subject, and breaking-marker checks
- JSON rule overrides layered on a preset
- Warning-only success and rule-error failure statuses
The repository runs differential cases against @commitlint/cli, @commitlint/config-conventional, and @commitlint/config-angular 21.2 to protect the intended preset behavior.
Deliberate differences
| Area | Quick Commitlint | Full commitlint |
|---|---|---|
| Runtime | Small Node.js launcher plus a native Zig linting executable | Node.js |
| Default configuration | Built-in conventional when no config is found |
Normally requires a discovered or supplied configuration |
| Configuration files | Strict .quick-commitlint.json JSON |
Multiple JS/TS/JSON/YAML formats through its configuration stack |
| Presets | Exactly conventional and angular |
Shareable npm configurations and extends |
| Rules | Fixed 14-rule subset | Larger rule set plus plugins and local rules |
| Rule values | Static JSON values | Values may be supplied by JavaScript functions and promises |
| Parser | Fixed native parser | Configurable parser presets and parser options |
| Ignores | Every message is linted | Default and custom ignore functions are available |
| Output | Colored report is always written to stderr; help/version use stdout | More output and formatting controls |
Configuration features not supported
Quick Commitlint does not implement:
extendsparserPresetorparserOptsplugins- custom rule functions
ignoresordefaultIgnores- formatter selection
- prompt configuration
- help URLs
- configuration in
package.json - JavaScript, TypeScript, YAML, or extensionless configuration files
Adding any unknown top-level key or rule is an error rather than being silently ignored.
Parser differences
The native parser expects an exact : header separator and an ASCII alphanumeric or underscore type. It does not provide custom header patterns, custom scope delimiters, or multiple-scope parsing. Only a recognized final paragraph becomes the footer.
Generated commit messages—merge, revert, fixup, tag, and initial messages—are linted. If a workflow wants to ignore them, it must avoid invoking Quick Commitlint for those messages or preprocess the input before calling it.
Choosing Quick Commitlint
Quick Commitlint is a good fit when:
- one of the two built-in presets is close to the desired policy;
- the supported JSON overrides are sufficient;
- fast native linting and no additional runtime npm dependencies matter;
- macOS arm64/x64, Linux arm64/x64, or Windows x64 is the deployment platform.
Use full commitlint when the project depends on shareable npm configurations, plugins, custom parsers, custom ignores, or rules outside the supported subset.