Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · claude-code

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
/
lines

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
Feedback