Skip to content

Config options ​

Generated from the JSON Schema, which is generated from the validation code, so this page always matches what the config loader accepts. Every option is optional.

language

Type: string · Default: "en"

Values: one of 13 values, see the JSON Schema

Language of the prompts.

template

Type: string · Default: "{{type}}{{scope}}{{bang}}: {{emoji}} {{title}}\n\n{{description}}\n\n{{comment}}\n\n{{#if breaking}}BREAKING CHANGE: {{breaking}}{{/if}}\n{{issueFooter}}"

Handlebars template of the commit message. Available: `type`, `emoji`, `code`, `component`, `scope` (the component in parentheses), `bang` (`!` for breaking changes), `title`, `description`, `comment`, `breaking`, `issues`, `issuePrefix` and `issueFooter` (one `<issuePrefix> <issue>` line per issue).

headerMaxLength

Type: integer · Default: 100

Maximum length of the first line. The title counter accounts for the type, scope and emoji.

bodyLineLength

Type: integer · Default: 100

Wrap body lines at this width; `0` turns wrapping off. Footer lines are never wrapped.

breaklineChar

Type: string · Default: "|"

Typing this in the description starts a new line; an empty string turns it off.

lowercaseTitle

Type: boolean · Default: true

Lower-case the first letter of the title and drop a trailing period, as commitlint expects.

scopes

Type: string[] · Default: []

Scopes offered with autocompletion in the component question. Free text when empty.

allowCustomScopes

Type: boolean · Default: true

Accept a scope that is not in `scopes`.

issuePrefix

Type: string · Default: "Closes"

Footer token written before each related issue.

inferFromBranch

Type: boolean · Default: true

In a terminal, suggest the type and the issue from the branch name, e.g. `feat/PROJ-12-login`.

useCommitlint

Type: boolean · Default: true

Take `scopes` and the length limits from the commitlint config when this config does not set them.

aliases

Type: Record<string, object> · Default: {}

Ready answers for frequent commits: `jazzer :name` commits them without questions.

aliases.<name>.type

Type: string

Commit type.

aliases.<name>.component

Type: string

Scope.

aliases.<name>.title

Type: string

Title.

aliases.<name>.description

Type: string

Description.

aliases.<name>.breaking

Type: string

Breaking change.

aliases.<name>.issues

Type: string

Related issues.

aliases.<name>.comment

Type: string

Extra body paragraph.

confirmCommit

Type: boolean · Default: true

Show the final message and ask to commit, edit it in $EDITOR or cancel.

availableCommitTypes

Type: string[] · Default: []

Values: one of 42 values, see the JSON Schema

Built-in commit types to offer; all of them when empty. Custom types are always offered.

availablePromptQuestions

Type: string[] · Default: ["type","component","title","description","breaking","issues"]

Values: "type" | "component" | "title" | "description" | "breaking" | "issues" | "comment"

Questions to ask, at least `type` and `title`. They are always asked in the built-in order.

baseCommitTypes

Type: Record<string, object> · Default: {}

Values: one of 42 values, see the JSON Schema

Overrides for built-in commit types.

baseCommitTypes.<name>.emoji

Type: string

Emoji inserted into the commit message.

baseCommitTypes.<name>.code

Type: string

Shortcode of the emoji.

baseCommitTypes.<name>.description

Type: string

Description shown in the type selection.

addCustomCommitTypes

Type: Record<string, object> · Default: {}

Additional commit types, keyed by name.

addCustomCommitTypes.<name>.emoji

Type: string

Emoji inserted into the commit message.

addCustomCommitTypes.<name>.code

Type: string

Shortcode of the emoji.

addCustomCommitTypes.<name>.description

Type: string

Description shown in the type selection.

baseQuestionsOptions

Type: object[] · Default: []

Overrides for the built-in questions.

baseQuestionsOptions[].key

Type: string

Values: "type" | "component" | "title" | "description" | "breaking" | "issues" | "comment"

Field the question fills.

baseQuestionsOptions[].message

Type: string

Question text. Overrides the translation.

baseQuestionsOptions[].options

Type: object

How the question behaves.

baseQuestionsOptions[].options.required

Type: boolean

The answer cannot be empty.

baseQuestionsOptions[].options.skip

Type: boolean

Do not ask this question.

baseQuestionsOptions[].options.validations

Type: object

Answer validation.

baseQuestionsOptions[].options.validations.length

Type: object

Length limits of the answer.

baseQuestionsOptions[].options.validations.length.minMessageLength

Type: integer

Minimum answer length.

baseQuestionsOptions[].options.validations.length.maxMessageLength

Type: integer

Maximum answer length.

validateCommitBadWords

Type: boolean · Default: true

Run the profanity filter.

badWordsOptions

Type: object · Default: {}

What the profanity filter does with blocked words.

badWordsOptions.checkHasProfaneWords

Type: boolean · Default: true

Reject answers that contain blocked words.

badWordsOptions.replaceProfaneWords

Type: boolean · Default: false

Mask blocked words with the placeholder.

badWordsOptions.clearMessage

Type: boolean · Default: false

Remove blocked words from the message.

badWordsOptions.options

Type: object · Default: {}

The word list.

badWordsOptions.options.additionalBlockWords

Type: string[] · Default: []

Extra words to block.

badWordsOptions.options.excludedWords

Type: string[] · Default: []

Words that are never blocked.

badWordsOptions.options.placeholder

Type: string · Default: "*"

Character a blocked word is masked with; not "#".

badWordsOptions.options.overrideBlockWords

Type: boolean · Default: false

Block only `additionalBlockWords`, without the built-in list.

showBanner

Type: boolean · Default: false

Show a figlet banner before the questions.

showBannerOptions

Type: object · Default: {}

What the banner shows when `showBanner` is on.

showBannerOptions.bannerText

Type: string · Default: "Commit Jazzer"

Text rendered with figlet.

showBannerOptions.figletOptions

Type: object · Default: {}

Options passed to figlet.

showBannerOptions.figletOptions.font

Type: string · Default: "Standard"

Values: one of 332 values, see the JSON Schema

Figlet font name.

showBannerOptions.figletOptions.horizontalLayout

Type: string · Default: "default"

Values: "default" | "full" | "fitted" | "controlled smushing" | "universal smushing"

Horizontal letter spacing.

showBannerOptions.figletOptions.verticalLayout

Type: string · Default: "default"

Values: "default" | "full" | "fitted" | "controlled smushing" | "universal smushing"

Vertical line spacing.

showBannerOptions.figletOptions.width

Type: integer

Maximum width before figlet wraps the text.

showBannerOptions.figletOptions.whitespaceBreak

Type: boolean · Default: true

Wrap only at spaces.

showBannerOptions.options

Type: object · Default: {}

Colors, separators and footer of the banner.

showBannerOptions.options.color

Type: string · Default: "blue"

Values: one of 44 values, see the JSON Schema

Style of the banner text.

showBannerOptions.options.separator

Type: string · Default: "⭐"

Characters of the line under the banner.

showBannerOptions.options.separatorColor

Type: string · Default: "gray"

Values: one of 44 values, see the JSON Schema

Style of both separator lines.

showBannerOptions.options.footerMessages

Type: object[] · Default: []

Lines printed between the separators.

showBannerOptions.options.footerMessages[].text

Type: string

showBannerOptions.options.footerMessages[].color

Type: string

Values: one of 44 values, see the JSON Schema

A `util.styleText` style, e.g. `blue` or `bgGray`.

showBannerOptions.options.footerSeparator

Type: string · Default: "⭐"

Characters of the line after the footer.

showBannerOptions.options.bottomSpacing

Type: integer · Default: 1

Empty lines after the banner.

Released under the MIT License.