Skip to content

Guide: Use prompt

@commitlint/prompt-cli helps with fast authoring of commit messages and ensures they adhere to the commit convention configured in commitlint.config.js.

Install

  1. Create a git repository if needed

    sh
    git init
  2. Create a package.json if needed

    sh
    npm init
    sh
    yarn init
    sh
    pnpm init
    sh
    bun init
  3. Install and configure if needed

    sh
    npm install --save-dev @commitlint/cli @commitlint/config-conventional @commitlint/prompt-cli
    
    echo "export default { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js
    sh
    yarn add --dev @commitlint/cli @commitlint/config-conventional @commitlint/prompt-cli
    
    echo "export default { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js
    sh
    pnpm add --save-dev @commitlint/cli @commitlint/config-conventional @commitlint/prompt-cli
    
    echo "export default { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js
    sh
    bun add --dev @commitlint/cli @commitlint/config-conventional @commitlint/prompt-cli
    
    echo "export default { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js
    sh
    deno add --dev npm:@commitlint/cli npm:@commitlint/config-conventional npm:@commitlint/prompt-cli
    
    echo "export default { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js

Provide a shortcut

To make prompt-cli easy to use, add a npm run-script to your package.json

json
{
  "scripts": {
    "commit": "commit"
  }
}

Test the prompt by executing

sh
git add .
npm run commit
sh
git add .
yarn commit
sh
git add .
pnpm commit
sh
git add .
bun commit
sh
git add .
deno task commit

An alternative to @commitlint/prompt-cli: commitizen

Another way to author commit messages that adhere to the commit convention configured in commitlint.config.js is to use commitizen. For more information, checkout their official website.

commitlint provides two adapters for commitizen:

  1. @commitlint/prompt provides a way to interact same as @commitlint/prompt-cli
  2. @commitlint/cz-commitlint is inspired by cz-conventional-changelog, it provides a more modern way to interact.