frontmatter

Settings

Settings .claude/settings.json Vendor docs

config

name type required meaning concept
advisorModel string Model for the server-side advisor tool. Accepts a model alias such as `"opus"`, `"sonnet"`, or `"fable"` (v2.1.170+), or a full model ID. Written automatically when you run `/advisor`. Unset to disable the advisor. Requires Claude Code v... 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 notific... 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 config... 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: tru... 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. ... 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 thi... 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 inte... 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 answe... 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_DISAB... 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 po... 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-updat... 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 always uses the classic renderer, so the `tui` setting has no effect while it is active. The `CLAUDE_AX_SCREEN_READER` environme... 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 sour... 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... 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 ... 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 on Win... 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 ↗
disableBundledSkills string Set to `true` to disable the skills and workflows that ship with Claude Code: bundled skills and workflows are removed entirely, while built-in slash commands like `/init` stay typable but are hidden from the model. Skills from plugins, ... 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 p... docs ↗
disableDeepLinkRegistration string Set to `"disable"` to prevent Claude Code from registering the `claude-cli://` protocol handler with the operating system on startup. Deep links let external tools open a Claude Code session with a pre-filled prompt. Useful in environmen... 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 Co... 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 ... 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]` inst... 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... 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... 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 mo... docs ↗
env string Environment variables applied to every session and to subprocesses Claude Code spawns from it. As of v2.1.143, `NO_COLOR` and `FORCE_COLOR` set here are passed to subprocesses but do not change Claude Code's own interface colors. Set tho... 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. C... 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 Microsof... 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`... 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 a... 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. When set to any value in managed settings, sessio... 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. When... 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 wai... 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 H... 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... 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 notifi... 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, ... 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... 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 p... 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. Suggest... 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 inste... 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 notificat... docs ↗
prefersReducedMotion string Reduce or disable UI animations (spinners, shimmer, flash effects) for accessibility 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 defaul... 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 ... 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 ins... 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 generat... 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` (1%). Fraction of the model's context window reserved for the skill listing Claude sees each turn. When the listing exceeds the budget, descriptions for the least-used skills are collapsed to bare names so Claude can ... 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 ... 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 t... 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 Mic... 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 us... 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 h... 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 ... 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 `strictPl... 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, detecte... 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... 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` environmen... 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 --e... 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 ↗
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 triggers a dynamic workflow. Set to `false` to type the word without triggering one. The `ultracode` effort setting, `/workflows`, and saved workflow commands are unaffecte... 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 ... docs ↗