Every key and its default
| Key | Default | What it does |
|---|---|---|
maxCommentLines | 2 | Line limit for one contiguous comment run. |
maxFileLines | 300 | Line limit for a new file. |
maxPrBodyParagraphs | 1 | Prose paragraph limit for a gh body. |
maxPrBodySentences | 3 | Sentence limit for one paragraph of a gh body. |
maxRetries | 2 | Denials on one target before the hook allows and flags it. |
ignoreGlobs | 9 globs | Paths exempt from every check. |
checks.comments | true | Runs the comment length check. |
checks.fileSize | true | Runs the file length check. |
checks.prBody | true | Runs the gh body check. |
scan.codeFiles | true | Runs code-scope packs and dictionary entries over whole code files, string literals included. |
scan.notebooks | true | Checks notebook cells that NotebookEdit writes. |
scan.heredocWrites | true | Checks files that cat or tee writes from a heredoc, before the command runs. |
scan.shellWrites | true | Checks the lines a shell command added to files in a git work tree, after it runs. |
scan.mcp | true | Checks the text and files that MCP tools post or write. |
scan.plans | true | Checks the plan that ExitPlanMode shows for approval. |
scan.tasks | true | Checks TaskCreate and TaskUpdate text. |
scan.questions | true | Checks AskUserQuestion questions and options. |
stopHook | true | Runs reply checks on Stop and SubagentStop. |
context.enabled | true | Sends resolved rules at startup, resume, compaction, and subagent creation. |
context.perTurn | false | Also sends rules on UserPromptSubmit. |
subagentStop.enabled | true | Checks subagent replies when stopHook is enabled. |
subagentStop.exemptAgentTypes | [] | Agent types exempt from subagent reply checks. |
testFilter.codexPostToolUse | false | Opts Codex into filtering completed test output instead of rewriting the command. |
softFail | false | Turns every deny, ask, and block into a flagged allow. |
styleIgnoreGlobs | 28 globs | Paths exempt from the style checks only. |
allowList.phrases | [] | Phrases that drop a finding on the line that holds them. |
allowList.patterns | [] | Regex strings that drop a finding on the line they match. |
bypass.phrases | [] | Phrases that exempt the whole tool call. |
bypass.patterns | [] | Regex strings that exempt the whole tool call. |
log.enabled | false | Writes one record per hook invocation. |
log.path | null | Log file path. null uses ~/.cache/concise/concise.log. |
log.maxSize | "5m" | Size that triggers rotation. |
log.maxFiles | 5 | Rotated files kept. |
log.rotate | "size" | size, daily, or both. |
log.format | "json" | json or plaintext. |
monitor.persist | false | Appends each hook record, with its request and response, to the project’s record file. When it is off, the hook appends records only while concise-web --all runs. |
features.emDash.enabled | false | Runs the dash check. |
features.emDash.enDash | true | Flags the en dash (U+2013) as well. |
features.emDash.doubleHyphen | false | Flags -- between word characters or between spaces. |
features.emDash.mode | "confirm" | confirm, ask, or deny. |
features.emDash.replies | true | Scans the agent’s final reply. |
features.aiWriting.enabled | false | Runs the AI writing check. |
features.aiWriting.preset | "default" | One of the 8 preset names. |
features.aiWriting.categories | null | An explicit category list that replaces the preset’s list. |
features.aiWriting.allow | [] | Words or phrases that are never flagged. |
features.aiWriting.mode | "confirm" | confirm, ask, or deny. |
features.aiWriting.replies | true | Scans the agent’s final reply. |
features.aiWriting.packs | [] | Extra pack files or directories. |
features.aiWriting.excludePacks | [] | Pack ids to drop. |
features.aiWriting.enablePatterns | [] | Category ids, pack ids, or tag:<tag> to add. |
features.aiWriting.disablePatterns | [] | Category ids, pack ids, or tag:<tag> to drop. |
features.aiWriting.options | {} | Script pack thresholds, keyed by pack id. |
features.dictionary.enabled | true | Runs the dictionary check. It does no work until it has an entry. |
features.dictionary.mode | "confirm" | confirm, ask, or deny. |
features.dictionary.entries | [] | Terms to flag, each with its own match rule and fix. See dictionary. |
The default ignoreGlobs list: **/node_modules/**, **/vendor/**, **/dist/**, **/build/**, **/.next/**, **/*.generated.*, **/*.min.js, **/package-lock.json, **/*.lock.