Skip to content
zero-conf conventional commit helper
TypeScript JavaScript
Branch: master
Clone or download
Latest commit 35e0b2d Nov 11, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.


npm version

A zero-config opiniated, commitizen like command line utility to enforce the conventional commits and have a clean changelog with standard-version.

  • standard-commit: Same as git commit but with prompt and formating of the commit message.

  • standard-commitlint runs commitlint based on your standard-commit config.

  • standard-commithook is meant to be run as a commit-msg git hook to enforce the convention.


npm install -g standard-commit
standard-commit --help

git alias

# you can create an alias:
git config --global '!standard-commit'
# then use:
git cc <option>


# Usage: standard-commitlint [options...]
# Where <options> is one of:
#   -f --from  lower end of the commit range to lint.
#   -t --to    upper end of the commit range to lint.
standard-commitlint --help

ci checks

# CI check before merge request
npx -p standard-commit standard-commitlint --from origin/master

repo setup

install yorkie (or husky@next)

npm install --save-dev yorkie standard-commit standard-version

and setup the scripts and commit-msg hook in your package.json

  "scripts": {
    "commit": "standard-commit",
    "commitlint": "standard-commitlint",
    "release": "standard-version"
  "gitHooks": {
    "commit-msg": "standard-commithook"
# use commit script to commit
npm -s run commit

# use commitlint script to check commit history
npm -s run commitlint -- --from  origin/master

# use release script to create a version commit
npm -s run release


standard-commit --init

you can configure standard-commit via:

  • A .standard-commitrc file, written in YAML or JSON, with optional extensions: .yaml/.yml/.json.
  • A standard-commit.config.js file that exports an object.
  • A standard-commit key in your package.json file.
   * Allowed types
   * @default ['feat','fix','chore','docs','style','refactor','test']
  types?: string[]

   * When set to 'staged', suggest from staged files (git).
   * When set to 'packages, suggest from package names (monorepo).
   * When set to an array, the list of scopes.
   * @default 'staged'
  scopes?: 'staged' | 'packages' | string[]

   * When set to 'suggest', scope is optional.
   * When set to 'enforce, scope can not be empty.
   * When set to false, scope prompt is skipped.
   * @default false
  promptScope?: 'suggest' | 'enforce' | false

   * whether to strip the scope for scoped packages
   * @default true
  stripPackageScope?: boolean

   * set to false to skip.
   * @default true
  promptBody?: boolean

   * set to false to skip.
   * @default true
  promptBreaking?: boolean

   * set to false to skip.
   * @default true
  promptIssues?: boolean

   * set to false to skip.
   * @default true
  promptConfirm?: boolean

   * extra commitlint rules
   * see
  rules?: {}
You can’t perform that action at this time.