Settings
Settings
.claude/settings.json
Vendor docs
config
| name | type | required | meaning | concept | |
|---|---|---|---|---|---|
| advisorModel | string |
Model for the server-side advisor tool. Accepts the model aliases `"opus"` and `"sonnet"`, or a full model ID. Written automatically when you run `/advisor`. Unset to disable the advisor. Claude Code doesn't offer Fable 5 as the advisor: a saved `"fable"` value attaches no advisor and raises no error.
|
docs ↗ | ||
| agent | string |
Run the main thread as a named subagent, and set the default agent for sessions dispatched from `claude agents`. Applies that subagent's system prompt, tool restrictions, and model. See Invoke subagents explicitly
|
docs ↗ | ||
| agentPushNotifEnabled | string |
**Default**: `false`. When Remote Control is connected, allow Claude to send proactive push notifications to your phone, for example when a long task finishes. Appears in `/config` as **Push when Claude decides**. See Mobile push notifications. Requires Claude Code v2.1.119 or later
|
docs ↗ | ||
| allowAllClaudeAiMcps | string |
(Managed settings only) Load claude.ai connectors alongside a deployed `managed-mcp.json`, which otherwise takes exclusive control and suppresses them. See Managed MCP configuration
|
docs ↗ | ||
| allowManagedHooksOnly | string |
(Managed settings only) Only managed hooks, SDK hooks, and hooks from plugins force-enabled in managed settings `enabledPlugins` are loaded. User, project, and all other plugin hooks are blocked. See Hook configuration
|
docs ↗ | ||
| allowManagedMcpServersOnly | string |
(Managed settings only) Only `allowedMcpServers` from managed settings are respected. `deniedMcpServers` still merges from all sources. Users can still add MCP servers, but only the admin-defined allowlist applies. See Managed MCP configuration
|
docs ↗ | ||
| allowManagedPermissionRulesOnly | string |
(Managed settings only) Prevent user and project settings from defining `allow`, `ask`, or `deny` permission rules. Only rules in managed settings apply. See Managed-only settings
|
docs ↗ | ||
| allowedChannelPlugins | string |
(Managed settings only) Allowlist of channel plugins that may push messages. Replaces the default Anthropic allowlist when set. Undefined = fall back to the default, empty array = block all channel plugins. Requires `channelsEnabled: true`. See Restrict which channel plugins can run
|
docs ↗ | ||
| allowedHttpHookUrls | string |
Allowlist of URL patterns that HTTP hooks may target. Supports `*` as a wildcard. When set, hooks with non-matching URLs are blocked. Undefined = no restrictions, empty array = block all HTTP hooks. Arrays merge across settings sources. See Hook configuration
|
docs ↗ | ||
| allowedMcpServers | string |
When set in managed-settings.json, allowlist of MCP servers users can configure. Undefined = no restrictions, empty array = lockdown. Applies to all scopes. Denylist takes precedence. See Managed MCP configuration
|
docs ↗ | ||
| alwaysThinkingEnabled | string |
Enable extended thinking by default for all sessions. Typically configured via the `/config` command rather than editing directly. To force thinking off regardless of this setting, set `MAX_THINKING_TOKENS=0` in `env`, which disables thinking on the Anthropic API except on Fable 5, which cannot have thinking turned off. On third-party providers this omits the `thinking` parameter instead, and adaptive-reasoning models may still think
|
docs ↗ | ||
| apiKeyHelper | string |
Custom command, run through the system shell (`/bin/sh` on macOS and Linux, `cmd` on Windows), to generate an auth value. This value will be sent as `X-Api-Key` and `Authorization: Bearer` headers for model requests. Set the refresh interval with `CLAUDE_CODE_API_KEY_HELPER_TTL_MS`
|
docs ↗ | ||
| askUserQuestionTimeout | string |
**Default**: `"never"`. Idle time before an unanswered `AskUserQuestion` dialog auto-continues with whatever options you'd already selected. Accepts `"60s"`, `"5m"`, `"10m"`, or `"never"`. With the default, questions wait until you answer them. Appears in `/config` as **Question auto-continue timeout**, which writes this key to user settings. Not read from project or local settings. Requires Claude Code v2.1.200 or later
|
docs ↗ | ||
| attribution | string |
Customize attribution for git commits and pull requests. See Attribution settings
|
docs ↗ | ||
| autoCompactEnabled | string |
**Default**: `true`. Automatically compact the conversation when context approaches the limit. Appears in `/config` as **Auto-compact**. To disable via environment variable, set `DISABLE_AUTO_COMPACT` in `env`
|
docs ↗ | ||
| autoMemoryDirectory | string |
Custom directory for auto memory storage. Accepts an absolute path or a `~/`-prefixed path. From project or local settings, this is honored only after you accept the workspace trust dialog, since a cloned repository can supply this file
|
docs ↗ | ||
| autoMemoryEnabled | string |
**Default**: `true`. Enable auto memory. When `false`, Claude does not read from or write to the auto memory directory. You can also toggle this with `/memory` during a session. To disable via environment variable, set `CLAUDE_CODE_DISABLE_AUTO_MEMORY` in `env`
|
docs ↗ | ||
| autoMode | string |
Customize what the auto mode classifier blocks and allows. Contains `environment`, `allow`, `soft_deny`, and `hard_deny` arrays of prose rules. Include the literal string `"$defaults"` in an array to inherit the built-in rules at that position. See Configure auto mode. Read from user settings, the `--settings` flag, and managed settings only. Ignored in project `.claude/settings.json` and local `.claude/settings.local.json`. Before v2.1.207, `.claude/settings.local.json` was also read
|
docs ↗ | ||
| autoScrollEnabled | string |
**Default**: `true`. In fullscreen rendering, follow new output to the bottom of the conversation. Appears in `/config` as **Auto-scroll**. Permission prompts still scroll into view when this is off
|
docs ↗ | ||
| autoUpdatesChannel | string |
**Default**: `"latest"`. Release channel to follow for updates. Use `"stable"` for a version that is typically about one week old and skips versions with major regressions, or `"latest"` for the most recent release. To disable auto-updates entirely, set `DISABLE_AUTOUPDATER` in `env`
|
docs ↗ | ||
| availableModels | string |
Restrict which models users can select for the main session, subagents, skills, and the advisor. Does not affect the Default option unless `enforceAvailableModels` is also set. See Restrict model selection
|
docs ↗ | ||
| awaySummaryEnabled | string |
Show a one-line session recap when you return to the terminal after a few minutes away. Set to `false` or turn off Session recap in `/config` to disable. Same as `CLAUDE_CODE_ENABLE_AWAY_SUMMARY`
|
docs ↗ | ||
| awsAuthRefresh | string |
Custom script that modifies the `.aws` directory (see advanced credential configuration)
|
docs ↗ | ||
| awsCredentialExport | string |
Custom script that outputs JSON with AWS credentials (see advanced credential configuration)
|
docs ↗ | ||
| axScreenReader | string |
Render screen-reader friendly output: flat text without decorative borders or animations. Screen-reader mode uses the classic renderer, so the `tui` setting has no effect while it is active; attached background sessions still render fullscreen. The `CLAUDE_AX_SCREEN_READER` environment variable and the `--ax-screen-reader` flag take precedence. Requires Claude Code v2.1.181 or later
|
docs ↗ | ||
| blockedMarketplaces | string |
(Managed settings only) Blocklist of marketplace sources. Enforced on marketplace add and on plugin install, update, refresh, and auto-update, so a marketplace added before the policy was set cannot be used to fetch plugins. Blocked sources are checked before downloading, so they never touch the filesystem. See Managed marketplace restrictions
|
docs ↗ | ||
| browserExternalPageTools | string |
(Managed settings only) Set to `"disabled"` to prevent Claude from using tools to read or act on external pages in the desktop app's Browser pane. Users can still navigate to external sites themselves, and local dev server previews are unaffected
|
docs ↗ | ||
| channelsEnabled | string |
(Managed settings only) Allow channels for the organization. On claude.ai Team and Enterprise plans, channels are blocked when this is unset or `false`. For Anthropic Console accounts using API key authentication, channels are allowed by default unless your organization deploys managed settings, in which case this key must be set to `true`
|
docs ↗ | ||
| claudeMd | string |
(Managed settings only) CLAUDE.md-style instructions injected as organization-managed memory. Only honored when set in managed or policy settings and ignored in user, project, and local settings. See organization-wide CLAUDE.md
|
docs ↗ | ||
| claudeMdExcludes | string |
Glob patterns or absolute paths of `CLAUDE.md` files to skip when loading memory. Patterns match against absolute file paths. Only applies to user, project, and local memory; managed policy files cannot be excluded
|
docs ↗ | ||
| cleanupPeriodDays | string |
**Default**: `30` days, minimum `1`. Claude Code deletes session files and other application data older than this period at startup. Setting `0` fails with a validation error. The same age cutoff applies to automatic removal of orphaned worktrees at startup. If Claude Code can't read or parse a settings file, it pauses the retention cleanup sweep and shows a warning in `/status` until you fix the file, unless managed settings provide `cleanupPeriodDays`, in which case the sweep runs at the managed value. Before v2.1.203, cleanup ran at the 30-day default in that state and could delete transcripts a longer `cleanupPeriodDays` was meant to keep; files newer than 30 days were never removed. To disable transcript writes entirely, set the `CLAUDE_CODE_SKIP_PROMPT_HISTORY` environment variable. In non-interactive mode, pass `--no-session-persistence` alongside `-p` or set `persistSession: false` in the Agent SDK.
|
docs ↗ | ||
| companyAnnouncements | string |
Announcement to display to users at startup. If multiple announcements are provided, they will be cycled through at random.
|
docs ↗ | ||
| defaultShell | string |
**Default**: `"bash"`, or `"powershell"` on Windows when Bash isn't available. Default shell for input-box `!` commands. Accepts `"bash"` or `"powershell"`. Setting `"powershell"` routes interactive `!` commands through PowerShell when the PowerShell tool is enabled: it's on by default on Windows without Git Bash, and `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` enables it elsewhere
|
docs ↗ | ||
| deniedMcpServers | string |
When set in managed-settings.json, denylist of MCP servers that are explicitly blocked. Applies to all scopes including managed servers. Denylist takes precedence over allowlist. See Managed MCP configuration
|
docs ↗ | ||
| disableAgentView | string |
Set to `true` to turn off background agents and agent view: `claude agents`, `--bg`, `/background`, and the on-demand supervisor. Typically set in managed settings. Equivalent to setting `CLAUDE_CODE_DISABLE_AGENT_VIEW` to `1`
|
docs ↗ | ||
| disableAllHooks | string |
Disable all hooks and any custom status line
|
docs ↗ | ||
| disableArtifact | string |
Set to `true` to disable the Artifact tool, which publishes session output as a private web page on claude.ai. Equivalent to setting `CLAUDE_CODE_DISABLE_ARTIFACT` to `1`
|
docs ↗ | ||
| disableAutoMode | string |
Set to `"disable"` to prevent auto mode from being activated. Removes `auto` from the `Shift+Tab` cycle and rejects `--permission-mode auto` at startup. Most useful in managed settings where users cannot override it
|
docs ↗ | ||
| disableBrowserExternalNavigation | string |
(Managed settings only) Set to `true` to turn off external browsing in the desktop app's Browser pane. Neither users nor Claude can navigate to external sites, and localhost dev server previews are unaffected. The value must be the JSON boolean `true`; the string `"true"` is ignored
|
docs ↗ | ||
| disableBundledSkills | string |
Set to `true` to disable the skills and workflows included with Claude Code: bundled skills and workflows are removed entirely, while built-in commands like `/init` stay typable but are hidden from the model. `/doctor` stays typable like the built-in commands; hide it with `DISABLE_DOCTOR_COMMAND` instead. Skills from plugins, `.claude/skills/`, and `.claude/commands/` are unaffected. Equivalent to setting `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` to `1`
|
docs ↗ | ||
| disableClaudeAiConnectors | string |
Disable claude.ai MCP connectors so they are not auto-fetched or connected. Set in any settings scope. `true` in any source takes precedence, so a checked-in project `.claude/settings.json` can opt a repo out of cloud connectors, but a project-level `false` cannot override a user- or policy-level `true`. Servers passed explicitly via `--mcp-config` are unaffected. To deny individual connectors instead of all of them, use `deniedMcpServers`. Requires Claude Code v2.1.182 or later
|
docs ↗ | ||
| disableDeepLinkRegistration | string |
Set to `"disable"` to prevent Claude Code from registering the `claude-cli://` protocol handler with the operating system when you send the first prompt of an interactive session. Deep links let external tools open a Claude Code session with a pre-filled prompt. Useful in environments where protocol handler registration is restricted or managed separately
|
docs ↗ | ||
| disableRemoteControl | string |
Disable Remote Control: blocks `claude remote-control`, the `--remote-control` flag, auto-start, and the in-session toggle. Typically placed in managed settings for per-device MDM enforcement, but works from any scope. Requires Claude Code v2.1.128 or later
|
docs ↗ | ||
| disableSideloadFlags | string |
(Managed settings only) Reject the `--plugin-dir`, `--plugin-url`, `--agents`, and `--mcp-config` CLI flags at startup, which users could otherwise pass to bypass `strictKnownMarketplaces` for a single run. Also rejects these flags from any surface that spawns the CLI with them internally, currently Cowork local sessions in the desktop app. A `--mcp-config` whose servers are all in-process `type: "sdk"` entries is still accepted, so the Agent SDK and VS Code extension keep working. Doesn't block `claude mcp add`, `.mcp.json`, or SDK `setMcpServers()`; pair with `allowedMcpServers` for per-server MCP control. Requires Claude Code v2.1.193 or later
|
docs ↗ | ||
| disableSkillShellExecution | string |
Disable inline shell execution for `` !`...` `` and ` ```! ` blocks in skills and custom commands from user, project, plugin, or additional-directory sources. Commands are replaced with `[shell command execution disabled by policy]` instead of being run. Bundled and managed skills are not affected. Most useful in managed settings where users cannot override it
|
docs ↗ | ||
| disableWorkflows | string |
**Default**: `false`. Disable dynamic workflows and the bundled workflow commands. Equivalent to setting `CLAUDE_CODE_DISABLE_WORKFLOWS` to `1`
|
docs ↗ | ||
| disabledMcpjsonServers | string |
List of specific MCP servers from `.mcp.json` files to reject
|
docs ↗ | ||
| editorMode | string |
**Default**: `"normal"`. Key binding mode for the input prompt: `"normal"` or `"vim"`. Appears in `/config` as **Editor mode**
|
docs ↗ | ||
| effortLevel | string |
Persist the effort level across sessions. Accepts `"low"`, `"medium"`, `"high"`, or `"xhigh"`. Written automatically when you run `/effort` with one of those values. `--effort` and `CLAUDE_CODE_EFFORT_LEVEL` override this for one session. See Adjust effort level for supported models
|
docs ↗ | ||
| enableAllProjectMcpServers | string |
Automatically approve all MCP servers defined in project `.mcp.json` files. As of v2.1.196, `claude mcp list` and `claude mcp get` honor this key in an untrusted folder only from settings files that aren't checked into the repository
|
docs ↗ | ||
| enableArtifact | string |
Enable or disable the Artifact tool for this user. When unset, the default follows the feature's availability for your account. The **Artifacts** row in `/config` writes this key. A managed `disableArtifact` and your organization's admin setting take precedence, and the key is ignored in project and local settings (`.claude/settings.json`, `.claude/settings.local.json`), which a repository could otherwise commit. Requires Claude Code v2.1.196 or later
|
docs ↗ | ||
| enabledMcpjsonServers | string |
List of specific MCP servers from `.mcp.json` files to approve. As of v2.1.196, `claude mcp list` and `claude mcp get` honor this key in an untrusted folder only from settings files that aren't checked into the repository
|
docs ↗ | ||
| enforceAvailableModels | string |
Extend the `availableModels` allowlist to the Default model. When `true` in managed settings and `availableModels` is a non-empty array, the Default option falls back to the first allowlisted entry that is available, but only when the model Default would resolve to (the organization default when one applies, otherwise the account-type default) is not in the allowlist; an allowlisted default is kept as-is. Has no effect when `availableModels` is unset or empty. See Enforce the allowlist for the Default model. Requires Claude Code v2.1.175 or later
|
docs ↗ | ||
| env | string |
Environment variables applied to every session and to subprocesses Claude Code spawns from it. Set a variable to `""` to override a shell export with an empty string, which Claude Code treats as unset for provider selection. Subprocesses still inherit the empty value. `NO_COLOR` and `FORCE_COLOR` set here reach only subprocesses; to change Claude Code's own interface colors, set them in your shell before launching `claude`. As of v2.1.195, identity variables that Claude Code's hosting environments set, for example `CLAUDE_CODE_REMOTE` and `CLAUDE_CODE_ACCOUNT_UUID`, are ignored when set here
|
docs ↗ | ||
| fallbackModel | string |
Fallback model(s) to try in order when the primary model is overloaded or unavailable. Claude Code switches to the next available model in the chain for the rest of the turn and shows a notice. `"default"` expands to the default model. Chains are capped at three models; extra entries are ignored. Unlike most array settings, this key does not merge across settings files: the highest-precedence file that defines it supplies the entire chain. The `--fallback-model` flag overrides this for one session. See Fallback model chains
|
docs ↗ | ||
| fastMode | string |
Turn fast mode on for sessions where it's available. Toggling with `/fast` writes `true` here in user settings and removes the key when you turn fast mode off
|
docs ↗ | ||
| fastModePerSessionOptIn | string |
When `true`, fast mode does not persist across sessions. Each session starts with fast mode off, requiring users to enable it with `/fast`. The user's fast mode preference is still saved. See Require per-session opt-in
|
docs ↗ | ||
| feedbackSurveyRate | string |
Probability (0–1) that the session quality survey appears when eligible. Set to `0` to suppress entirely, or set `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` in `env`. Useful when using Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry where the default sample rate does not apply
|
docs ↗ | ||
| fileCheckpointingEnabled | string |
**Default**: `true`. Snapshot files before each edit so `/rewind` can restore them. Appears in `/config` as **Rewind code (checkpoints)**. To disable via environment variable, set `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` in `env`
|
docs ↗ | ||
| fileSuggestion | string |
Configure a custom script for `@` file autocomplete. See File suggestion settings
|
docs ↗ | ||
| footerLinksRegexes | string |
Render extra clickable badges in the footer when a regex matches turn output. Each entry has a `pattern`, a `url` template with `{name}` placeholders filled from named capture groups, and an optional `label`. Read from user, `--settings` flag, and managed settings only. See Footer link badges for URL constraints, scheme allowlist, and limits. Requires Claude Code v2.1.176 or later
|
docs ↗ | ||
| forceLoginGatewayUrl | string |
Pre-fills and locks the gateway URL on the `/login` Cloud gateway screen. Either this key or `forceLoginMethod: "gateway"` surfaces that screen; set both so the URL is filled in. Honored only at the managed policy tier; ignored in user and project settings. See Claude apps gateway
|
docs ↗ | ||
| forceLoginMethod | string |
Use `claudeai` to restrict login to Claude.ai accounts, `console` to restrict login to Claude Console accounts, or `gateway` to restrict login to a cloud gateway; see Claude apps gateway. On Claude Code v2.1.212 or later, every first-party login path enforces the restriction, including the VS Code extension, the Agent SDK, `claude setup-token`, and `/install-github-app`; before v2.1.212, only terminal logins enforced it. See Restrict login to your organization for how each login path, environment credentials, and third-party providers are handled
|
docs ↗ | ||
| forceLoginOrgUUID | string |
Require login to belong to a specific Anthropic organization. Accepts a single UUID string, which also pre-selects that organization during login, or an array of UUIDs where any listed organization is accepted without pre-selection. An empty array fails closed and blocks login with a misconfiguration message. See Restrict login to your organization for which login paths and credentials enforce the check
|
docs ↗ | ||
| forceRemoteSettingsRefresh | string |
(Managed settings only) Block CLI startup until remote managed settings are freshly fetched from the server. If the fetch fails, the CLI exits rather than continuing with cached or no settings. When not set, startup continues without waiting for remote settings. See fail-closed enforcement
|
docs ↗ | ||
| gcpAuthRefresh | string |
Custom script that refreshes GCP Application Default Credentials when they expire or cannot be loaded. See advanced credential configuration
|
docs ↗ | ||
| hooks | string |
Configure custom commands to run at lifecycle events. See hooks documentation for format
|
docs ↗ | ||
| httpHookAllowedEnvVars | string |
Allowlist of environment variable names HTTP hooks may interpolate into headers. When set, each hook's effective `allowedEnvVars` is the intersection with this list. Undefined = no restriction. Arrays merge across settings sources. See Hook configuration
|
docs ↗ | ||
| includeGitInstructions | string |
**Default**: `true`. Include built-in commit and PR workflow instructions and the git status snapshot in Claude's system prompt. Set to `false` to remove both, for example when using your own git workflow skills. The `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` environment variable takes precedence over this setting when set
|
docs ↗ | ||
| inputNeededNotifEnabled | string |
**Default**: `false`. When Remote Control is connected, send a push notification to your phone when a permission prompt or question is waiting for your input. Appears in `/config` as **Push when actions required**. See Mobile push notifications. Requires Claude Code v2.1.119 or later
|
docs ↗ | ||
| language | string |
Configure Claude's preferred response language (e.g., `"japanese"`, `"spanish"`, `"french"`). Claude will respond in this language by default. Also sets the language for voice dictation and auto-generated session titles. As of v2.1.176, when not set, session titles match the language of your conversation
|
docs ↗ | ||
| minimumVersion | string |
Floor that prevents background auto-updates and `claude update` from installing a version below this one. Switching from the `"latest"` channel to `"stable"` via `/config` prompts you to stay on the current version or allow the downgrade. Choosing to stay sets this value. Also useful in managed settings to pin an organization-wide minimum. For a hard floor that blocks startup entirely, see `requiredMinimumVersion`
|
docs ↗ | ||
| model | string |
Override the default model to use for Claude Code. `--model` and `ANTHROPIC_MODEL` override this for one session
|
docs ↗ | ||
| modelOverrides | string |
Map Anthropic model IDs to provider-specific model IDs such as Amazon Bedrock inference profile ARNs. Each model picker entry uses its mapped value when calling the provider API. See Override model IDs per version
|
docs ↗ | ||
| otelHeadersHelper | string |
Script to generate dynamic OpenTelemetry headers. Runs at startup and periodically. Set the refresh interval with `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`. See Dynamic headers
|
docs ↗ | ||
| outputStyle | string |
Configure an output style to adjust the system prompt. See output styles documentation
|
docs ↗ | ||
| parentSettingsBehavior | string |
(Managed settings only) **Default**: `"first-wins"`. Controls whether managed settings supplied programmatically by an embedding host process, such as the Agent SDK or an IDE extension, apply when an admin-deployed managed tier is also present. `"first-wins"`: the parent-supplied settings are dropped and only the admin tier applies. `"merge"`: the parent-supplied settings apply under the admin tier through a restrictive-only filter. Only the highest-priority managed source's value of this key is read. Unless the `allowManaged*Only` locks are set, allow-direction entries such as permission allow rules and sandbox allowlists still apply; see Restrict parent settings. Has no effect when no admin tier is deployed, or when a `policyHelper` is configured: the helper's output replaces every other managed source and parent settings are never merged. Requires Claude Code v2.1.133 or later
|
docs ↗ | ||
| permissions | string |
See table below for structure of permissions.
|
docs ↗ | ||
| plansDirectory | string |
**Default**: `~/.claude/plans`. Customize where plan files are stored. Path is relative to project root.
|
docs ↗ | ||
| pluginSuggestionMarketplaces | string |
(Managed settings only) Marketplace names whose plugins can appear as contextual install suggestions. No marketplace-declared suggestions surface without this allowlist; the built-in first-party frontend-design tip is unaffected. Suggestions come from each plugin's `relevance` declaration in its marketplace entry. A name only takes effect when the marketplace is registered on the machine and its registered source is also declared in managed settings, either as the `extraKnownMarketplaces` entry for that name or as an entry of `strictKnownMarketplaces`. A marketplace registered from a different source under an allowlisted name is ignored. The official marketplace is exempt from the source requirement: allowlisting its name alone suffices, since that name can only register from the official Anthropic source.
|
docs ↗ | ||
| pluginTrustMessage | string |
(Managed settings only) Custom message appended to the plugin trust warning shown before installation. Use this to add organization-specific context, for example to confirm that plugins from your internal marketplace are vetted.
|
docs ↗ | ||
| policyHelper | string |
Admin-deployed executable that computes managed settings dynamically at startup. Only honored from MDM or a system `managed-settings.json` file. See Compute managed settings with a policy helper. Requires Claude Code v2.1.136 or later
|
docs ↗ | ||
| prUrlTemplate | string |
URL template for the PR badge shown in the footer and in tool-result summaries. Substitutes `{host}`, `{owner}`, `{repo}`, `{number}`, and `{url}` from the `gh`-reported PR URL. Use to point PR links at an internal code-review tool instead of `github.com`. Does not affect `#123` autolinks in Claude's prose
|
docs ↗ | ||
| preferredNotifChannel | string |
**Default**: `"auto"`. Method for task-complete and permission-prompt notifications: `"auto"`, `"terminal_bell"`, `"iterm2"`, `"iterm2_with_bell"`, `"kitty"`, `"ghostty"`, or `"notifications_disabled"`. `"auto"` sends a desktop notification in iTerm2, Ghostty, and Kitty and does nothing in other terminals. Set `"terminal_bell"` to ring the bell character in any terminal. Appears in `/config` as **Notifications**. See Get a terminal bell or notification
|
docs ↗ | ||
| prefersReducedMotion | string |
Reduce or disable UI animations (spinners, shimmer, flash effects) for accessibility
|
docs ↗ | ||
| processWrapper | string |
Corporate launcher command placed in front of the background processes Claude Code starts. Honored from managed settings, a `--settings` file, and user settings only; the `CLAUDE_CODE_PROCESS_WRAPPER` environment variable takes precedence when both are set. See Run Claude Code behind a corporate launcher for the launcher contract. Requires Claude Code v2.1.210 or later
|
docs ↗ | ||
| remoteControlAtStartup | string |
Connect Remote Control automatically when each interactive session starts, instead of waiting for `/remote-control`. Set to `true` to always auto-connect, `false` to never auto-connect, or leave unset to follow your organization's default. Appears in `/config` as **Enable Remote Control for all sessions**. See Enable Remote Control for all sessions
|
docs ↗ | ||
| requiredMaximumVersion | string |
Managed settings only. Maximum Claude Code version allowed to start. If the running version is newer, Claude Code exits at startup and instructs the user to install an approved version through the organization's approved method; `claude install <version>` may also work. Background auto-updates and `claude update` skip versions above the ceiling, so an in-range installation stays in range. `claude update`, `claude install`, and `claude doctor` keep working above the ceiling so users can recover. Versions that predate this setting ignore it
|
docs ↗ | ||
| requiredMinimumVersion | string |
Managed settings only. Minimum Claude Code version required to start. If the running version is older, Claude Code exits at startup and instructs the user to update through the organization's approved method. `claude update`, `claude install`, and `claude doctor` keep working below the floor so users can recover. Differs from `minimumVersion`, which prevents downgrades but never blocks startup. Versions that predate this setting ignore it
|
docs ↗ | ||
| respectGitignore | string |
**Default**: `true`. Control whether the `@` file picker respects `.gitignore` patterns. When `true`, files matching `.gitignore` patterns are excluded from suggestions
|
docs ↗ | ||
| respondToBashCommands | string |
**Default**: `true`. Whether Claude responds after an input-box `!` shell command runs. Set to `false` to add the command output to context without a response. See Shell mode with `!` prefix. Requires Claude Code v2.1.186 or later
|
docs ↗ | ||
| showClearContextOnPlanAccept | string |
**Default**: `false`. Show the "clear context" option on the plan accept screen. Set to `true` to restore the option
|
docs ↗ | ||
| showThinkingSummaries | string |
**Default**: `false`. Show extended thinking summaries in interactive sessions. When unset or `false`, thinking blocks are redacted by the API and shown as a collapsed stub. Redaction only changes what you see, not what the model generates: to reduce thinking spend, lower the budget or disable thinking instead. This setting has no effect in non-interactive mode (`-p`), the Agent SDK, or IDE extensions such as VS Code
|
docs ↗ | ||
| showTurnDuration | string |
**Default**: `true`. Show turn duration messages after responses, e.g. "Cooked for 1m 6s". Appears in `/config` as **Show turn duration**
|
docs ↗ | ||
| skillListingBudgetFraction | string |
**Default**: `0.01`. Fraction of the model's context window reserved for the skill listing Claude sees each turn, so the default reserves 1%. When the listing exceeds the budget, descriptions for the least-used skills are dropped and only their names are listed, so Claude can still invoke them but can't see what they do. Raise to keep more descriptions visible at the cost of more context per turn. `/doctor` estimates the listing cost against the budget
|
docs ↗ | ||
| skillListingMaxDescChars | string |
**Default**: `1536`. Per-skill character cap on the combined `description` and `when_to_use` text in the skill listing Claude sees each turn. Text longer than this is truncated. Raise to keep long descriptions intact at the cost of more context per turn; lower to fit more skills under `skillListingBudgetFraction`
|
docs ↗ | ||
| skillOverrides | string |
Per-skill visibility overrides keyed by skill name. Value is `"on"`, `"name-only"`, `"user-invocable-only"`, or `"off"`. Lets you hide or collapse a skill without editing its SKILL.md. Does not apply to plugin skills, which are managed through `/plugin`. The `/skills` menu writes these to `.claude/settings.local.json`. See Override skill visibility from settings. Requires Claude Code v2.1.129 or later
|
docs ↗ | ||
| skipWebFetchPreflight | string |
Skip the WebFetch domain safety check that sends each requested hostname to `api.anthropic.com` before fetching. Set to `true` in environments that block traffic to Anthropic, such as Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry deployments with restrictive egress. When skipped, WebFetch attempts any URL without consulting the blocklist
|
docs ↗ | ||
| spinnerTipsEnabled | string |
**Default**: `true`. Show tips in the spinner while Claude is working. Set to `false` to disable tips
|
docs ↗ | ||
| spinnerTipsOverride | string |
Override spinner tips with custom strings. `tips`: array of tip strings. `excludeDefault`: if `true`, only show custom tips; if `false` or absent, custom tips are merged with built-in tips
|
docs ↗ | ||
| spinnerVerbs | string |
Customize the action verbs shown while a turn is in progress. Set `mode` to `"replace"` to use only your verbs, or `"append"` to add them to the defaults
|
docs ↗ | ||
| sshConfigs | string |
SSH connections to show in the Desktop environment dropdown. Each entry requires `id`, `name`, and `sshHost`; `sshPort`, `sshIdentityFile`, and `startDirectory` are optional. When set in managed settings, connections are read-only for users. Read from managed and user settings only
|
docs ↗ | ||
| statusLine | string |
Configure a custom status line to display context. The object's optional `padding`, `refreshInterval`, and `hideVimModeIndicator` fields control spacing, periodic re-runs, and whether the built-in vim mode indicator below the prompt is hidden. See `statusLine` documentation
|
docs ↗ | ||
| strictKnownMarketplaces | string |
(Managed settings only) Allowlist of plugin marketplace sources. Undefined = no restrictions, empty array = lockdown. Enforced on marketplace add and on plugin install, update, refresh, and auto-update, so a marketplace added before the policy was set cannot be used to fetch plugins. See Managed marketplace restrictions
|
docs ↗ | ||
| strictPluginOnlyCustomization | string |
(Managed settings only) Block skills, agents, hooks, and MCP servers from user and project sources, so they can only come from plugins or managed settings. `true` locks all four surfaces; an array locks only the named ones. See `strictPluginOnlyCustomization`
|
docs ↗ | ||
| syntaxHighlightingDisabled | string |
Disable syntax highlighting in diffs, code blocks, and file previews
|
docs ↗ | ||
| teammateMode | string |
**Default**: `in-process`. How agent team teammates display: `in-process`, `auto` (split panes when running inside tmux, or inside iTerm2 with `it2` on your `PATH`; in-process otherwise), `tmux` (split panes using tmux or iTerm2, detected from your terminal), or `iterm2` (iTerm2 native split panes via the `it2` CLI, added in v2.1.186). The default changed from `auto` in v2.1.179. `--teammate-mode` overrides this for one session. See choose a display mode
|
docs ↗ | ||
| terminalProgressBarEnabled | string |
**Default**: `true`. Show the terminal progress bar in supported terminals: ConEmu, Ghostty 1.2.0+, and iTerm2 3.6.6+. Appears in `/config` as **Terminal progress bar**
|
docs ↗ | ||
| theme | string |
**Default**: `"dark"`. Color theme for the interface: `"auto"`, `"dark"`, `"light"`, `"dark-daltonized"`, `"light-daltonized"`, `"dark-ansi"`, `"light-ansi"`, or a custom theme reference such as `"custom:<slug>"` or `"custom:<plugin-name>:<slug>"`. See Create a custom theme. Appears in `/config` as **Theme**
|
docs ↗ | ||
| tui | string |
Terminal UI renderer. Use `"fullscreen"` for the flicker-free alt-screen renderer with virtualized scrollback. Use `"default"` for the classic main-screen renderer. Set via `/tui`. You can also set the `CLAUDE_CODE_NO_FLICKER` environment variable. Background sessions opened from agent view always use the fullscreen renderer regardless of this setting
|
docs ↗ | ||
| ultracode | string |
Turn on ultracode for the current session. This key isn't read from `settings.json`. Set it through `/effort ultracode`, `--settings`, or an Agent SDK control request. To start a session with ultracode already on, launch with `claude --effort ultracode`, which requires Claude Code v2.1.203 or later
|
docs ↗ | ||
| useAutoModeDuringPlan | string |
**Default**: `true`. Whether plan mode uses auto mode semantics when auto mode is available. Not read from shared project settings. Appears in `/config` as "Use auto mode during plan"
|
docs ↗ | ||
| verbose | string |
**Default**: `false`. Show full tool output instead of truncated summaries. Appears in `/config` as **Verbose output**. The `--verbose` flag overrides this for one session
|
docs ↗ | ||
| viewMode | string |
Default transcript view mode on startup: `"default"`, `"verbose"`, or `"focus"`. Overrides the sticky `/focus` selection when set. The `--verbose` flag overrides this for one session
|
docs ↗ | ||
| vimInsertModeRemaps | string |
Map two-key INSERT-mode sequences to Escape in vim editor mode. Each key is exactly two printable characters typed in sequence, and `"<Esc>"` is the only supported target; other entries are ignored. Read from user, `--settings` flag, and managed settings only, so a repository's checked-in settings can't remap your keystrokes. Has no effect unless `editorMode` is `"vim"`. See Remap INSERT-mode key sequences. Requires Claude Code v2.1.208 or later
|
docs ↗ | ||
| voice | string |
Voice dictation settings: `enabled` turns dictation on, `mode` selects `"hold"` or `"tap"`, and `autoSubmit` sends the prompt on key release in hold mode. Written automatically when you run `/voice`. Requires a Claude.ai account
|
docs ↗ | ||
| voiceEnabled | string |
Legacy alias for `voice.enabled`. Prefer the `voice` object
|
docs ↗ | ||
| wheelScrollAccelerationEnabled | string |
**Default**: `true`. In fullscreen rendering, accelerate mouse-wheel scroll speed during fast scrolls. Set to `false` for a constant scroll rate per wheel notch. Requires Claude Code v2.1.174 or later
|
docs ↗ | ||
| workflowKeywordTriggerEnabled | string |
**Default**: `true`. Whether the keyword `ultracode` in a prompt you type triggers a dynamic workflow. Set to `false` to type the word without triggering one. The `ultracode` effort setting, `/workflows`, and saved workflow commands are unaffected. Appears in `/config` as **Ultracode keyword trigger**. Added in v2.1.157; before v2.1.160 the trigger keyword was `workflow`
|
docs ↗ | ||
| wslInheritsWindowsSettings | string |
(Windows managed settings only) When `true`, Claude Code on WSL reads managed settings from the Windows policy chain in addition to `/etc/claude-code`, with Windows sources taking priority. Only honored when set in the HKLM registry key or `C:\Program Files\ClaudeCode\managed-settings.json`, both of which require Windows admin to write. For HKCU policy to also apply on WSL, the flag must additionally be set in HKCU itself. Has no effect on native Windows
|
docs ↗ |