Skip to content

Settings

The settings.json file configures Claude Code behavior. It can be located at ~/.claude/settings.json (global), .claude/settings.json (project), or .claude/settings.local.json (local, gitignored).

Fields

Permissions

FieldTypeRequiredDescription
allowstring[]noPermission patterns to auto-allow (e.g., "Bash(npm run *)")
denystring[]noPermission patterns to always deny
askstring[]noPermission patterns to always prompt
defaultModestringnoacceptEdits, bypassPermissions, default, or plan
disableBypassPermissionsModestringnoSet to "disable" to prevent bypass
additionalDirectoriesstring[]noExtra directories to allow access to

Attribution

FieldTypeRequiredDescription
commitstringnoCommit message template
prstringnoPR description template

Sandbox

FieldTypeRequiredDescription
enabledbooleannoEnable sandboxing
failIfUnavailablebooleannoFail rather than run unsandboxed when the sandbox is missing
autoAllowBashIfSandboxedbooleannoAuto-allow bash in sandbox
excludedCommandsstring[]noCommands excluded from sandbox
allowUnsandboxedCommandsbooleannoAllow the dangerouslyDisableSandbox escape hatch
enableWeakerNestedSandboxbooleannoAllow weaker nested sandbox
filesystemobjectnoFilesystem read/write allow and deny lists
credentialsobjectnoCredential file and env var protection
networkobjectnoNetwork restrictions (see below)

Sandbox network

FieldTypeRequiredDescription
allowedDomainsstring[]noDomains the sandbox may reach
deniedDomainsstring[]noDomains the sandbox may not reach
allowManagedDomainsOnlybooleannoRestrict to managed domains
allowUnixSocketsstring[]noUnix sockets the sandbox may connect to
allowAllUnixSocketsbooleannoAllow all Unix sockets
allowLocalBindingbooleannoAllow binding to local ports
allowMachLookupstring[]noMach services the sandbox may look up
httpProxyPortnumbernoHTTP proxy port
socksProxyPortnumbernoSOCKS proxy port

Example

json
{
  "permissions": {
    "allow": ["Bash(npm run *)", "Bash(git *)", "Read", "Edit"],
    "deny": ["Bash(rm -rf *)"]
  },
  "sandbox": {
    "enabled": true,
    "network": {
      "allowedDomains": ["registry.npmjs.org"]
    }
  }
}

Full field reference

Every top-level key SettingsSchema models, generated from the schema itself. Descriptions are abridged from the official settings reference.

FieldTypeRequiredDescription
$schemastringNo
advisorModelstringNoModel for the server-side advisor tool. Accepts a model alias such as "opus", "sonnet", or `"fab
agentstringNoRun the main thread as a named subagent, and set the default agent for sessions dispatched from `cla
agentPushNotifEnabledbooleanNoDefault: false. When Remote Control is connected, allow Claude to send proactive push notifica
allowAllClaudeAiMcpsbooleanNo(Managed settings only) Load claude.ai connectors alongside a deployed managed-mcp.json, which oth
allowManagedHooksOnlybooleanNo(Managed settings only) Only managed hooks, SDK hooks, and hooks from plugins force-enabled in manag
allowManagedMcpServersOnlybooleanNoTreated as true
allowManagedPermissionRulesOnlybooleanNo(Managed settings only) Prevent user and project settings from defining allow, ask, or deny pe
allowedChannelPluginsarrayNo(Managed settings only) Allowlist of channel plugins that may push messages. Replaces the default An
allowedHttpHookUrlsarrayNoAllowlist of URL patterns that HTTP hooks may target. Supports * as a wildcard. When set, hooks wi
allowedMcpServersarrayNoEnforced as an empty allowlist, so no MCP servers are admitted until the value is fixed. An individu
alwaysThinkingEnabledbooleanNoEnable extended thinking by default for all sessions. Typically configured via the /config command
apiKeyHelperstringNoCustom command, run through the system shell (/bin/sh on macOS and Linux, cmd on Windows), to ge
askUserQuestionTimeoutstringNoDefault: "never". Idle time before an unanswered AskUserQuestion dialog auto-continues with
attributionobjectNoCustomize attribution for git commits and pull requests. See Attribution settings
autoCompactEnabledbooleanNoDefault: true. Automatically compact the conversation when context approaches the limit. Appea
autoMemoryDirectorystringNoCustom directory for auto memory storage. Accepts an absolute path or a ~/-prefixed path. From pro
autoMemoryEnabledbooleanNoDefault: true. Enable auto memory. When false, Claude does not read from or write to the aut
autoModeobjectNoCustomize what the auto mode classifier blocks and allows. Contains environment, allow, `soft_de
autoScrollEnabledbooleanNoDefault: true. In fullscreen rendering, follow new output to the bottom of the conversation. A
autoUpdatesChannelstringNoDefault: "latest". Release channel to follow for updates. Use "stable" for a version that is
availableModelsarrayNoEnforced as an empty allowlist, so only the Default model is available until the value is fixed. An
awaySummaryEnabledbooleanNoShow a one-line session recap when you return to the terminal after a few minutes away. Set to `fals
awsAuthRefreshstringNoCustom script that modifies the .aws directory (see advanced credential configuration)
awsCredentialExportstringNoCustom script that outputs JSON with AWS credentials (see advanced credential configuration)
axScreenReaderbooleanNoRender screen-reader friendly output: flat text without decorative borders or animations. Screen-rea
blockedMarketplacesarrayNo(Managed settings only) Blocklist of marketplace sources. Enforced on marketplace add and on plugin
browserExternalPageToolsstringNo(Managed settings only) Set to "disabled" to prevent Claude from using tools to read or act on ext
channelsEnabledbooleanNo(Managed settings only) Allow channels for the organization. On claude.ai Team and Enterprise plans,
claudeMdstringNo(Managed settings only) CLAUDE.md-style instructions injected as organization-managed memory. Only h
claudeMdExcludesarrayNoGlob patterns or absolute paths of CLAUDE.md files to skip when loading memory. Patterns match aga
cleanupPeriodDaysnumberNoDefault: 30 days, minimum 1. Claude Code deletes session files and other application data ol
companyAnnouncementsarrayNoAnnouncement to display to users at startup. If multiple announcements are provided, they will be cy
defaultShellstringNoDefault: "bash", or "powershell" on Windows when Bash isn't available. Default shell for inp
deniedMcpServersarrayNoAn individual invalid entry is stripped and the valid subset is enforced. A wholly invalid value is
disableAgentViewbooleanNoSet to true to turn off background agents and agent view: claude agents, --bg, /background,
disableAllHooksbooleanNoDisable all hooks and any custom status line
disableArtifactbooleanNoSet to true to disable the Artifact tool, which publishes session output as a private web page on
disableAutoModestringNoSet to "disable" to prevent auto mode from being activated. Removes auto from the Shift+Tab cy
disableBundledSkillsbooleanNoSet to true to disable the skills and workflows included with Claude Code: bundled skills and work
disableClaudeAiConnectorsbooleanNoDisable claude.ai MCP connectors so they are not auto-fetched or connected. Set in any settings scop
disableDeepLinkRegistrationstringNoSet to "disable" to prevent Claude Code from registering the claude-cli:// protocol handler with
disableRemoteControlbooleanNoDisable Remote Control: blocks claude remote-control, the --remote-control flag, auto-start, and
disableSideloadFlagsbooleanNo(Managed settings only) Reject the --plugin-dir, --plugin-url, --agents, and --mcp-config CL
disableSkillShellExecutionbooleanNoDisable inline shell execution for !`...` and ```! blocks in skills and custom commands fr
disableWorkflowsbooleanNoDefault: false. Disable dynamic workflows and the bundled workflow commands. Equivalent to set
disabledMcpjsonServersarrayNoList of specific MCP servers from .mcp.json files to reject
editorModestringNoDefault: "normal". Key binding mode for the input prompt: "normal" or "vim". Appears in `/
effortLevelstringNoPersist the effort level across sessions. Accepts "low", "medium", "high", or "xhigh". Writt
enableAllProjectMcpServersbooleanNoAutomatically approve all MCP servers defined in project .mcp.json files. As of v2.1.196, `claude
enableArtifactbooleanNoEnable or disable the Artifact tool for this user. When unset, the default follows the feature's ava
enabledMcpjsonServersarrayNoList of specific MCP servers from .mcp.json files to approve. As of v2.1.196, claude mcp list an
enabledPluginsobjectNo
enforceAvailableModelsbooleanNoTreated as true. Applies in v2.1.175 and later
envobjectNoEnvironment variables applied to every session and to subprocesses Claude Code spawns from it. As of
extraKnownMarketplacesobjectNo
fallbackModelarrayNoFallback model(s) to try in order when the primary model is overloaded or unavailable. Claude Code s
fastModePerSessionOptInbooleanNoWhen true, fast mode does not persist across sessions. Each session starts with fast mode off, req
feedbackSurveyRatenumberNoProbability (0–1) that the session quality survey appears when eligible. Set to 0 to suppress enti
fileCheckpointingEnabledbooleanNoDefault: true. Snapshot files before each edit so /rewind can restore them. Appears in `/con
fileSuggestionobjectNoConfigure a custom script for @ file autocomplete. See File suggestion settings
footerLinksRegexesarrayNoRender extra clickable badges in the footer when a regex matches turn output. Each entry has a `patt
forceLoginGatewayUrlstringNoPre-fills and locks the gateway URL on the /login Cloud gateway screen. Either this key or `forceL
forceLoginMethodstringNoUse claudeai to restrict login to Claude.ai accounts, console to restrict login to Claude Consol
forceLoginOrgUUIDstringNoNo organization is permitted to log in until the value is fixed
forceRemoteSettingsRefreshbooleanNo(Managed settings only) Block CLI startup until remote managed settings are freshly fetched from the
gcpAuthRefreshstringNoCustom script that refreshes GCP Application Default Credentials when they expire or cannot be loade
hooksobjectNoConfigure custom commands to run at lifecycle events. See hooks documentation for format
httpHookAllowedEnvVarsarrayNoAllowlist of environment variable names HTTP hooks may interpolate into headers. When set, each hook
includeGitInstructionsbooleanNoDefault: true. Include built-in commit and PR workflow instructions and the git status snapsho
inputNeededNotifEnabledbooleanNoDefault: false. When Remote Control is connected, send a push notification to your phone when
languagestringNoConfigure Claude's preferred response language (e.g., "japanese", "spanish", "french"). Claude
minimumVersionstringNoFloor that prevents background auto-updates and claude update from installing a version below this
modelstringNoOverride the default model to use for Claude Code. --model and ANTHROPIC_MODEL override this for
modelOverridesobjectNoMap Anthropic model IDs to provider-specific model IDs such as Amazon Bedrock inference profile ARNs
otelHeadersHelperstringNoScript to generate dynamic OpenTelemetry headers. Runs at startup and periodically. Set the refresh
outputStylestringNoConfigure an output style to adjust the system prompt. See output styles documentation
parentSettingsBehaviorstringNo(Managed settings only) Default: "first-wins". Controls whether managed settings supplied prog
permissionsobjectNoSee table below for structure of permissions
plansDirectorystringNoDefault: ~/.claude/plans. Customize where plan files are stored. Path is relative to project r
pluginSuggestionMarketplacesarrayNo(Managed settings only) Marketplace names whose plugins can appear as contextual install suggestions
pluginTrustMessagestringNo(Managed settings only) Custom message appended to the plugin trust warning shown before installatio
policyHelperobjectNoAdmin-deployed executable that computes managed settings dynamically at startup. Only honored from M
prUrlTemplatestringNoURL template for the PR badge shown in the footer and in tool-result summaries. Substitutes {host}
preferredNotifChannelstringNoDefault: "auto". Method for task-complete and permission-prompt notifications: "auto", `"ter
prefersReducedMotionbooleanNoReduce or disable UI animations (spinners, shimmer, flash effects) for accessibility
remoteControlAtStartupbooleanNoConnect Remote Control automatically when each interactive session starts, instead of waiting for `/
requiredMaximumVersionstringNoManaged settings only. Maximum Claude Code version allowed to start. If the running version is newer
requiredMinimumVersionstringNoManaged settings only. Minimum Claude Code version required to start. If the running version is olde
respectGitignorebooleanNoDefault: true. Control whether the @ file picker respects .gitignore patterns. When true
respondToBashCommandsbooleanNoDefault: true. Whether Claude responds after an input-box ! shell command runs. Set to `fals
sandboxobjectNo
showClearContextOnPlanAcceptbooleanNoDefault: false. Show the "clear context" option on the plan accept screen. Set to true to re
showThinkingSummariesbooleanNoDefault: false. Show extended thinking summaries in interactive sessions. When unset or `false
showTurnDurationbooleanNoDefault: true. Show turn duration messages after responses, e.g. "Cooked for 1m 6s". Appears i
skillListingBudgetFractionnumberNoDefault: 0.01. Fraction of the model's context window reserved for the skill listing Claude se
skillListingMaxDescCharsnumberNoDefault: 1536. Per-skill character cap on the combined description and when_to_use text in
skillOverridesobjectNoPer-skill visibility overrides keyed by skill name. Value is "on", "name-only", `"user-invocable
skipWebFetchPreflightbooleanNoSkip the WebFetch domain safety check that sends each requested hostname to api.anthropic.com befo
spinnerTipsEnabledbooleanNoDefault: true. Show tips in the spinner while Claude is working. Set to false to disable tip
spinnerTipsOverrideobjectNoOverride spinner tips with custom strings. tips: array of tip strings. excludeDefault: if true
spinnerVerbsobjectNoCustomize the action verbs shown while a turn is in progress. Set mode to "replace" to use only
sshConfigsarrayNoSSH connections to show in the Desktop environment dropdown. Each entry requires id, name, and `
statusLineobjectNoConfigure a custom status line to display context. The object's optional padding, `refreshInterval
strictKnownMarketplacesarrayNo(Managed settings only) Allowlist of plugin marketplace sources. Undefined = no restrictions, empty
strictPluginOnlyCustomizationarrayNo(Managed settings only) Block skills, agents, hooks, and MCP servers from user and project sources,
syntaxHighlightingDisabledbooleanNoDisable syntax highlighting in diffs, code blocks, and file previews
teammateModestringNoDefault: in-process. How agent team teammates display: in-process, auto (split panes when
terminalProgressBarEnabledbooleanNoDefault: true. Show the terminal progress bar in supported terminals: ConEmu, Ghostty 1.2.0+,
themestringNoDefault: "dark". Color theme for the interface: "auto", "dark", "light", `"dark-daltoniz
tuistringNoTerminal UI renderer. Use "fullscreen" for the flicker-free alt-screen renderer with virtualized s
ultracodebooleanNoTurn on ultracode for the current session. This key isn't read from settings.json. Set it through
useAutoModeDuringPlanbooleanNoDefault: true. Whether plan mode uses auto mode semantics when auto mode is available. Not rea
verbosebooleanNoDefault: false. Show full tool output instead of truncated summaries. Appears in /config as
viewModestringNoDefault transcript view mode on startup: "default", "verbose", or "focus". Overrides the stick
voiceobjectNoVoice dictation settings: enabled turns dictation on, mode selects "hold" or "tap", and `aut
voiceEnabledbooleanNoLegacy alias for voice.enabled. Prefer the voice object
wheelScrollAccelerationEnabledbooleanNoDefault: true. In fullscreen rendering, accelerate mouse-wheel scroll speed during fast scroll
workflowKeywordTriggerEnabledbooleanNoDefault: true. Whether the keyword ultracode in a prompt triggers a dynamic workflow. Set to
wslInheritsWindowsSettingsbooleanNo(Windows managed settings only) When true, Claude Code on WSL reads managed settings from the Wind