All settings changedsettings-reference
Nearest release: v2.1.243, published an hour before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Recorded here
Lines+45added
Lines−0removed
From line
700
where the diff opens
First seen
21 Aug 2026
this site's first read of the page
Recorded edits143to this page, all time
### `promptCacheTtl` ### `subagentPromptCacheTtl`
The whole hunk
from line 700, old and new numbered
/
This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.
from line 700
700700| [`preferredNotifChannel`](#preferrednotifchannel) | Choose a [terminal bell or desktop notification](/docs/en/terminal-config#get-a-terminal-bell-or-notification) for task completion | Remote, desktop, and notifications | Any file |
701701| [`prefersReducedMotion`](#prefersreducedmotion) | [Reduce or turn off](/docs/en/accessibility#accessibility-settings) spinner, shimmer, and flash animations | Interface and terminal | Any file |
702702| [`processWrapper`](#processwrapper) | Run Claude Code's background processes through a [corporate launcher](/docs/en/corporate-launcher) on macOS and Linux | Agents, sessions, and worktrees | User or managed |
703| [`promptCacheTtl`](#promptcachettl) | Choose the [prompt cache lifetime](/docs/en/prompt-caching#cache-lifetime) for the main conversation | Model and responses | Any file |
703704| [`promptSuggestionEnabled`](#promptsuggestionenabled) | Hide the grayed-out [prompt suggestions](/docs/en/interactive-mode#prompt-suggestions) in the input box | Interface and terminal | Any file |
704705| [`prUrlTemplate`](#prurltemplate) | Point PR links at an internal code-review tool instead of github.com | Git and attribution | Any file |
705706| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | Pick the default [cloud environment](/docs/en/cloud-environments) for `claude --cloud`; a self-hosted `ccpool_` ID is read only from user and managed settings and `--settings` | Remote, desktop, and notifications | Any file |
from line 769
768769| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | Lock [hooks](/docs/en/hooks) to plugin and managed sources | Plugins and skills | Managed |
769770| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | Lock [MCP servers](/docs/en/mcp) to plugin and managed sources | Plugins and skills | Managed |
770771| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | Lock [skills](/docs/en/skills) to plugin and managed sources | Plugins and skills | Managed |
772| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Choose the [prompt cache lifetime](/docs/en/prompt-caching#cache-lifetime) for subagents and other requests outside the main conversation | Model and responses | Any file |
771773| [`subagentStatusLine`](#subagentstatusline) | Rewrite rows in the [subagent](/docs/en/sub-agents) task display with your own command | Interface and terminal | Any file |
772774| [`switchModelsOnFlag`](#switchmodelsonflag) | Switch models automatically or pause when a [safety classifier](/docs/en/model-config#ask-before-switching) flags a request | Model and responses | Any file |
773775| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Stop downloading the [skills enabled on your claude.ai account](/docs/en/skills#how-synced-skills-behave) and hide the ones already synced | Plugins and skills | User, local, or managed |
from line 1076
10741076}
10751077```
10761078
1079### `promptCacheTtl`
1080
1081Choose how long the [prompt cache](/docs/en/prompt-caching) holds the main conversation. This key applies to your interactive, `-p`, and Agent SDK turns, together with the helpers Claude Code runs inline with them. The one-hour lifetime keeps the cache warm across longer breaks, and the API [bills each cache write at a higher rate](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) than at the five-minute lifetime. Requires Claude Code v2.1.242 or later.
1082
1083* **Scope**: [`Any file`](#scopes)
1084* **Type**: string, one of:
1085 * `"5m"`: the cache holds for five minutes
1086 * `"1h"`: the cache holds for an hour
1087* **Default**: unset, so each main-conversation request gets [its default lifetime](/docs/en/prompt-caching#which-ttl-each-request-gets)
1088* **Per-session overrides**: [`FORCE_PROMPT_CACHING_5M`](/docs/en/env-vars) takes precedence over everything else, then [`CLAUDE_CODE_PROMPT_CACHE_TTL`](/docs/en/env-vars), then this key, and last [`ENABLE_PROMPT_CACHING_1H`](/docs/en/env-vars)
1089
1090This example keeps the main conversation on the one-hour lifetime and leaves subagents on five minutes:
1091
1092```json settings.json theme={null}
1093{
1094 "promptCacheTtl": "1h",
1095 "subagentPromptCacheTtl": "5m"
1096}
1097```
1098
1099For what each lifetime costs, see [Cache lifetime](/docs/en/prompt-caching#cache-lifetime).
1100
10771101### `showThinkingSummaries`
10781102
10791103See summaries of Claude's [extended thinking](/docs/en/model-config#extended-thinking) in interactive sessions. Set it if you want the full summaries when you expand thinking with `Ctrl+O`. When unset or `false`, the Anthropic API redacts thinking blocks and Claude Code shows a collapsed stub; third-party providers don't redact.
from line 1116
10921116
10931117Redaction only changes what you see, not what the model generates: to reduce thinking spend, [lower the budget or disable thinking](/docs/en/model-config#extended-thinking) instead. This setting has no effect in non-interactive mode (`-p`), the Agent SDK, or IDE extensions such as VS Code.
10941118
1119### `subagentPromptCacheTtl`
1120
1121Choose how long the [prompt cache](/docs/en/prompt-caching) holds the requests Claude Code makes outside the main conversation. This key applies to [subagents](/docs/en/sub-agents), [workflows](/docs/en/workflows), and Claude Code's own background and helper requests, such as compaction and session titles. The one-hour lifetime keeps the cache warm across longer breaks, and the API [bills each cache write at a higher rate](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) than at the five-minute lifetime. Requires Claude Code v2.1.242 or later.
1122
1123* **Scope**: [`Any file`](#scopes)
1124* **Type**: string, one of:
1125 * `"5m"`: the cache holds for five minutes
1126 * `"1h"`: the cache holds for an hour
1127* **Default**: unset, so each of these requests gets [its default lifetime](/docs/en/prompt-caching#which-ttl-each-request-gets)
1128* **Per-session overrides**: [`FORCE_PROMPT_CACHING_5M`](/docs/en/env-vars) takes precedence over everything else, then [`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`](/docs/en/env-vars), then this key, and last [`ENABLE_PROMPT_CACHING_1H`](/docs/en/env-vars), which asks for the one-hour lifetime on every request
1129
1130This example gives subagents and the other requests outside the main conversation the one-hour lifetime:
1131
1132```json settings.json theme={null}
1133{
1134 "subagentPromptCacheTtl": "1h"
1135}
1136```
1137
1138This key covers the requests [`promptCacheTtl`](#promptcachettl) doesn't, so set both to choose a lifetime for every request Claude Code makes. For how a subagent's cache differs from the main conversation's, see [Subagents and the cache](/docs/en/prompt-caching#subagents-and-the-cache).
1139
10951140### `switchModelsOnFlag`
10961141
10971142Choose what happens when a [safety classifier flags a request](/docs/en/model-config#automatic-model-fallback): switch to the fallback model and continue, or pause so you can choose between switching and editing the prompt.
from line 3590
35453590
35463591* **Scope**: [`Any file`](#scopes)
35473592* **Type**: Boolean
3548 * `true`: Claude Code turns dynamic workflows on for you
3549 * `false`: Claude Code turns dynamic workflows off for you
3550* **Default**: unset, so workflows are on unless you're on the Pro plan, where they're off
3551* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/en/env-vars) turns workflows off for one session, and `true` here can't turn them back on while it's set
3552
3553```json settings.json theme={null}
3554{
3555 "enableWorkflows": true
3556}
3557```
3558
3559[`disableWorkflows`](#disableworkflows) and your organization's workflows policy also take precedence: `enableWorkflows: true` can't turn workflows back on while any source turns workflows off. Claude Code hides the `/config` row while a source other than your user settings sets `enableWorkflows`, or sets `disableWorkflows` to `true`.
3560
3561### `hooks`
3562
3563Run your own commands, prompts, agents, HTTP requests, or MCP tools as [hooks](/docs/en/hooks) at points in Claude Code's lifecycle, such as before a tool call or when a session starts; the [hooks reference](/docs/en/hooks#hook-events) lists every event, its payload, and its exit codes. Each event maps to a list of matcher groups, and each group lists the handlers to run when the matcher applies.
3564
3565* **Scope**: [`Any file`](#scopes). Hooks merge across files rather than replacing each other, and hooks from managed settings can't be removed from other files.
3566* **Type**: object keyed by [hook event](/docs/en/hooks#hook-events); each value is an array of `{ "matcher", "hooks" }` groups whose `hooks` entries have a `type` of `"command"`, `"prompt"`, `"agent"`, `"http"`, or `"mcp_tool"`
3567* **Default**: unset, so no hooks run
3568
3569This example runs a script before every Bash tool call:
3570
3571```json settings.json theme={null}
3572{
3573 "hooks": {
3574 "PreToolUse": [
3575 {
3576 "matcher": "Bash",
3577 "hooks": [
3578 { "type": "command", "command": "~/.claude/hooks/check-bash.sh" }
3579 ]
3580 }
3581 ]
3582 }
3583}
3584```
3585
3586For every event, matcher pattern, and handler field, see the [hooks reference](/docs/en/hooks#configuration). To turn hooks off, see [`disableAllHooks`](#disableallhooks); to limit hooks to the ones your organization deploys, see [`allowManagedHooksOnly`](#allowmanagedhooksonly).
3587
3588### `httpHookAllowedEnvVars`
3589
3590An [HTTP hook](/docs/en/hooks#http-hook-fields) can put the value of an environment variable into a request header, for example an `Authorization: Bearer $HOOK_TOKEN` header, but only for variables the hook lists in its own `allowedEnvVars`. This key sets an outer limit on that list for every HTTP hook: a hook can use a variable only if both its own `allowedEnvVars` and this key name it. Use it to stop a hook from reading a secret it shouldn't, even when the hook's definition asks for it.
3591
3592* **Scope**: [`Any file`](#scopes). Arrays merge across settings files.
3593* **Type**: array of environment variable names
3594* **Default**: unset, so each hook's own `allowedEnvVars` list applies
3595
3596This example limits header interpolation to `MY_TOKEN` and `HOOK_SECRET`:
3597
3598```json settings.json theme={null}
3599{
3600 "httpHookAllowedEnvVars": ["MY_TOKEN", "HOOK_SECRET"]
3601}
3602```
3603
3604The allowlist applies to hooks from every source, including managed settings.
3605
3606### `workflowKeywordTriggerEnabled`
3607
3608Choose whether typing the keyword `ultracode` in a prompt triggers a [dynamic workflow](/docs/en/workflows#ask-for-a-workflow-in-your-prompt). Set it to `false` to type the word without triggering one. Requires Claude Code v2.1.157 or later.
3609
3610* **Scope**: [`Any file`](#scopes). Appears in `/config` as **Ultracode keyword trigger**.
3611* **Type**: Boolean
3612 * `true`: typing `ultracode` in a prompt triggers a dynamic workflow
3613 * `false`: you can type the word without triggering one
3614* **Default**: `true`
3615
3616```json settings.json theme={null}
3617{
3618 "workflowKeywordTriggerEnabled": false
3619}
3620```
3621
3622The `ultracode` effor
3593 * `true`: Claude Code turns dynamic wor
No line in this hunk matches that.