@j4k-oss/conventional-commit-msg (1.0.12)
Installation
@j4k-oss:registry=npm config set @j4k-oss:registry=npm install @j4k-oss/conventional-commit-msg@1.0.12"@j4k-oss/conventional-commit-msg": "1.0.12"About this package
conventional-commit-msg
Source: https://code.j4k.dev/j4k-oss/conventional-commit-msg. github.com/Jercik/conventional-commit-msg is a read-only mirror; open issues and pull requests on the Forge.
Zero-config commitlint frontend for conventional commits.
Validates commit messages against the Conventional Commits specification using @commitlint/config-conventional.
Installation
Each release is published under two names with the same files:
conventional-commit-msgon npmjs.org, fornpxandnpm exec. All examples below use it.@j4k-oss/conventional-commit-msgon thecode.j4k.devregistry, for pnpm projects that exempt the@j4k-ossscope fromminimumReleaseAge. The registry reads anonymously.
To use the code.j4k.dev copy, map the scope to its registry and exempt it in pnpm-workspace.yaml, then add the package:
registries:
"@j4k-oss": https://code.j4k.dev/api/packages/j4k-oss/npm/
minimumReleaseAgeExclude:
- "@j4k-oss/*"
pnpm add -D @j4k-oss/conventional-commit-msg
Both packages install the same conventional-commit-msg command.
Quick Start: Git Hook
- Create
.githooks/commit-msg:
#!/bin/sh
npm exec --yes --package=conventional-commit-msg@latest -- conventional-commit-msg "$1"
npm exec --package=…@latest (not npx -y) keeps the hook working when an
npm_config_package env var is inherited (some tool wrappers set it) and when
the hook runs inside this package's own repository, where the local package name
would otherwise shadow the published binary.
- Make it executable and enable the hooks directory:
chmod +x .githooks/commit-msg
git config core.hooksPath .githooks
Now every commit message will be validated automatically.
Usage
# Validate last commit
npx -y conventional-commit-msg --last
# CI mode: validate PR commits
npx -y conventional-commit-msg --from origin/main --to HEAD
# Read commit message from stdin
echo "feat: add feature" | npx -y conventional-commit-msg
# Validate commit message file
npx -y conventional-commit-msg .git/COMMIT_EDITMSG
# Verbose mode: show output even on success
npx -y conventional-commit-msg --last --verbose
Options
| Option | Description |
|---|---|
<file> |
Commit message file (git hook mode) |
--last |
Validate the last commit |
--from <sha> |
Start of commit range (CI mode) |
--to <sha> |
End of commit range (CI mode) |
-v, --verbose |
Show output on success |
-V, --version |
Output the version number |
-h, --help |
Display help for command |
Pipeline Examples
# Check if last commit is valid (for CI scripts)
npx -y conventional-commit-msg --last && echo "Valid" || echo "Invalid"
# Validate message from a file (silent on success, shows errors)
cat .git/COMMIT_EDITMSG | npx -y conventional-commit-msg
# Validate multiple messages from a file (one per line)
while IFS= read -r msg; do
echo "$msg" | npx -y conventional-commit-msg || echo "Invalid: $msg"
done < messages.txt
License
MIT
Dependencies
Dependencies
| ID | Version |
|---|---|
| @commander-js/extra-typings | ^15.0.0 |
| @commitlint/config-conventional | ^21.0.2 |
| @commitlint/format | ^21.0.1 |
| @commitlint/lint | ^21.0.2 |
| @commitlint/load | ^21.0.2 |
| @commitlint/read | ^21.0.2 |
| @commitlint/types | ^21.0.1 |
| commander | ^15.0.0 |
Development dependencies
| ID | Version |
|---|---|
| @j4k-oss/fta-check | ^1.5.10 |
| @j4k/oxlint-config | ^2.14.2 |
| @j4k/semantic-release-forgejo | ^1.2.3 |
| @total-typescript/ts-reset | ^0.6.1 |
| @types/node | ^24.0.0 |
| @vitest/coverage-v8 | ^4.1.8 |
| conventional-changelog-conventionalcommits | ^9.3.1 |
| fta-cli | ^3.0.0 |
| knip | ^6.16.1 |
| oxfmt | ^0.57.0 |
| oxlint | ^1.88.0 |
| oxlint-tsgolint | ^7.0.2004 |
| semantic-release | ^25.0.3 |
| typescript | ^7.0.2 |
| vitest | ^4.1.8 |