Add full verbatim settings schema (129KB, extracted from JSONL)

This commit is contained in:
Ásgeir Thor Johnson
2026-06-16 22:20:37 +00:00
parent a18eaa5a1b
commit fcd7a52bd8
2 changed files with 3059 additions and 465 deletions
File diff suppressed because it is too large Load Diff
@@ -423,469 +423,6 @@ If a hook isn't running:
## Full Settings JSON Schema
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"$schema": {
"description": "JSON Schema reference for Claude Code settings",
"type": "string"
},
"apiKeyHelper": {
"description": "Path to a script that outputs authentication values",
"type": "string"
},
"proxyAuthHelper": {
"description": "Shell command that outputs a Proxy-Authorization header value (EAP)",
"type": "string"
},
"awsCredentialExport": {
"description": "Path to a script that exports AWS credentials",
"type": "string"
},
"awsAuthRefresh": {
"description": "Path to a script that refreshes AWS authentication",
"type": "string"
},
"gcpAuthRefresh": {
"description": "Command to refresh GCP authentication (e.g., gcloud auth application-default login)",
"type": "string"
},
"policyHelper": {
"description": "Executable that computes managed settings at startup. Honored only from admin-controlled policy sources.",
"type": "object",
"properties": {
"path": {
"description": "Absolute path to the helper executable",
"type": "string"
},
"timeoutMs": {
"type": "integer",
"minimum": 1000,
"maximum": 9007199254740991
},
"refreshIntervalMs": {
"anyOf": [
{ "type": "number", "const": 0 },
{ "type": "integer", "minimum": 60000, "maximum": 9007199254740991 }
]
}
},
"required": ["path"]
},
"fileSuggestion": {
"description": "Custom file suggestion configuration for @ mentions",
"type": "object",
"properties": {
"type": { "type": "string", "const": "command" },
"command": { "type": "string" }
},
"required": ["type", "command"]
},
"respectGitignore": {
"description": "Whether file picker should respect .gitignore files (default: true). Note: .ignore files are always respected.",
"type": "boolean"
},
"breakReminder": {
"description": "@internal Opt-in break reminder. When enabled, shows a dismissible nudge after sustained continuous use. Never blocks — just a friendly heads-up.",
"type": "object",
"properties": {
"enabled": { "description": "Show a friendly nudge after sustained continuous use (default false).", "type": "boolean" },
"intervalMinutes": { "description": "Minutes of continuous use before the reminder fires (default 120).", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 },
"breakThresholdMinutes": { "description": "Minutes of inactivity that count as a break and reset the timer (default 15)", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 },
"message": { "description": "Custom reminder text. Leave unset for a rotating set of friendly nudges.", "type": "string" }
}
},
"quietHours": {
"description": "@internal Opt-in quiet hours. When enabled, shows a single soft nudge per session while inside the configured local-time window. Never blocks.",
"type": "object",
"properties": {
"enabled": { "type": "boolean" },
"start": { "description": "Start of the quiet-hours window, 24-hour local time \"HH:MM\".", "type": "string", "pattern": "^([01]?\\d|2[0-3]):[0-5]\\d$" },
"end": { "description": "End of the quiet-hours window, 24-hour local time \"HH:MM\". May be earlier than start for an overnight range.", "type": "string", "pattern": "^([01]?\\d|2[0-3]):[0-5]\\d$" }
}
},
"cleanupPeriodDays": {
"description": "Number of days to retain chat transcripts before automatic cleanup (default: 30). Minimum 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"skillListingMaxDescChars": {
"description": "Per-skill description character cap in the skill listing sent to Claude (default: 1536).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"skillListingBudgetFraction": {
"description": "Fraction of the context window reserved for the skill listing (default: 0.01 = 1%).",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1
},
"env": {
"description": "Environment variables to set for Claude Code sessions",
"type": "object",
"propertyNames": { "type": "string" },
"additionalProperties": { "type": "string" }
},
"attribution": {
"description": "Customize attribution text for commits and PRs. Each field defaults to the standard Claude Code attribution if not set.",
"type": "object",
"properties": {
"commit": { "description": "Attribution text for git commits. Empty string hides attribution.", "type": "string" },
"pr": { "description": "Attribution text for pull request descriptions. Empty string hides attribution.", "type": "string" }
}
},
"includeCoAuthoredBy": {
"description": "Deprecated: Use attribution instead. Whether to include Claude's co-authored by attribution in commits and PRs (defaults to true)",
"type": "boolean"
},
"includeGitInstructions": {
"description": "Include built-in commit and PR workflow instructions in Claude's system prompt (default: true)",
"type": "boolean"
},
"permissions": {
"description": "Tool usage permissions configuration",
"type": "object",
"properties": {
"allow": { "type": "array", "items": { "type": "string" } },
"deny": { "type": "array", "items": { "type": "string" } },
"ask": { "type": "array", "items": { "type": "string" } },
"defaultMode": { "type": "string", "enum": ["acceptEdits", "auto", "bypassPermissions", "default", "dontAsk", "plan"] },
"disableBypassPermissionsMode": { "type": "string", "enum": ["disable"] },
"disableAutoMode": { "type": "string", "enum": ["disable"] },
"additionalDirectories": { "type": "array", "items": { "type": "string" } }
}
},
"model": { "description": "Override the default model used by Claude Code", "type": "string" },
"fallbackModel": {
"description": "Fallback model(s) tried in order when the primary model is overloaded or unavailable.",
"type": "array",
"items": { "type": "string" }
},
"availableModels": {
"description": "Allowlist of models that users can select. If undefined, all models are available. If empty array, only the default model is available.",
"type": "array",
"items": { "type": "string" }
},
"enforceAvailableModels": { "type": "boolean" },
"modelOverrides": {
"description": "Override mapping from Anthropic model ID to provider-specific model ID.",
"type": "object",
"propertyNames": { "type": "string" },
"additionalProperties": { "type": "string" }
},
"enableAllProjectMcpServers": { "description": "Whether to automatically approve all MCP servers in the project", "type": "boolean" },
"enabledMcpjsonServers": { "type": "array", "items": { "type": "string" } },
"disabledMcpjsonServers": { "type": "array", "items": { "type": "string" } },
"skillOverrides": {
"description": "Per-skill listing overrides keyed by skill name. \"name-only\" lists the skill without its description; \"user-invocable-only\" hides it from the model but keeps /name; \"off\" hides it from both.",
"type": "object",
"propertyNames": { "type": "string" },
"additionalProperties": { "type": "string", "enum": ["on", "name-only", "user-invocable-only", "off"] }
},
"disableBundledSkills": { "description": "Disable the skills and workflows that ship with Claude Code.", "type": "boolean" },
"hooks": {
"description": "Custom commands to run before/after tool executions",
"type": "object",
"propertyNames": {
"anyOf": [
{ "type": "string", "enum": ["PreToolUse", "PostToolUse", "PostToolUseFailure", "PostToolBatch", "Notification", "UserPromptSubmit", "UserPromptExpansion", "SessionStart", "SessionEnd", "Stop", "StopFailure", "SubagentStart", "SubagentStop", "PreCompact", "PostCompact", "PermissionRequest", "PermissionDenied", "Setup", "TeammateIdle", "TaskCreated", "TaskCompleted", "Elicitation", "ElicitationResult", "ConfigChange", "WorktreeCreate", "WorktreeRemove", "InstructionsLoaded", "CwdChanged", "FileChanged", "MessageDisplay"] },
{ "not": {} }
]
},
"additionalProperties": {
"type": "array",
"items": {
"type": "object",
"properties": {
"matcher": { "description": "String pattern to match (e.g. tool names like \"Write\")", "type": "string" },
"hooks": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"type": { "type": "string", "const": "command" },
"command": { "type": "string" },
"args": { "type": "array", "items": { "type": "string" } },
"if": { "description": "Permission rule syntax to filter when this hook runs.", "type": "string" },
"shell": { "type": "string", "enum": ["bash", "powershell"] },
"timeout": { "type": "number", "exclusiveMinimum": 0 },
"statusMessage": { "type": "string" },
"once": { "type": "boolean" },
"async": { "type": "boolean" },
"asyncRewake": { "type": "boolean" },
"rewakeMessage": { "type": "string", "minLength": 1 },
"rewakeSummary": { "type": "string", "minLength": 1 }
},
"required": ["type", "command"]
},
{
"type": "object",
"properties": {
"type": { "type": "string", "const": "prompt" },
"prompt": { "type": "string" },
"if": { "type": "string" },
"timeout": { "type": "number", "exclusiveMinimum": 0 },
"model": { "type": "string" },
"continueOnBlock": { "type": "boolean" },
"statusMessage": { "type": "string" },
"once": { "type": "boolean" }
},
"required": ["type", "prompt"]
},
{
"type": "object",
"properties": {
"type": { "type": "string", "const": "agent" },
"prompt": { "type": "string" },
"if": { "type": "string" },
"timeout": { "type": "number", "exclusiveMinimum": 0 },
"model": { "type": "string" },
"statusMessage": { "type": "string" },
"once": { "type": "boolean" }
},
"required": ["type", "prompt"]
},
{
"type": "object",
"properties": {
"type": { "type": "string", "const": "http" },
"url": { "type": "string", "format": "uri" },
"if": { "type": "string" },
"timeout": { "type": "number", "exclusiveMinimum": 0 },
"headers": { "type": "object", "additionalProperties": { "type": "string" } },
"allowedEnvVars": { "type": "array", "items": { "type": "string" } },
"statusMessage": { "type": "string" },
"once": { "type": "boolean" }
},
"required": ["type", "url"]
},
{
"type": "object",
"properties": {
"type": { "type": "string", "const": "mcp_tool" },
"server": { "type": "string" },
"tool": { "type": "string" },
"input": { "type": "object" },
"if": { "type": "string" },
"timeout": { "type": "number", "exclusiveMinimum": 0 },
"statusMessage": { "type": "string" },
"once": { "type": "boolean" }
},
"required": ["type", "server", "tool"]
}
]
}
}
},
"required": ["hooks"]
}
}
},
"worktree": {
"type": "object",
"properties": {
"symlinkDirectories": { "type": "array", "items": { "type": "string" } },
"sparsePaths": { "type": "array", "items": { "type": "string" } },
"baseRef": { "type": "string", "enum": ["fresh", "head"] },
"bgIsolation": { "type": "string", "enum": ["worktree", "none"] }
}
},
"disableAllHooks": { "type": "boolean" },
"disableAgentView": { "type": "boolean" },
"disableRemoteControl": { "type": "boolean" },
"disableWorkflows": { "type": "boolean" },
"disableArtifact": { "type": "boolean" },
"enableWorkflows": { "type": "boolean" },
"workflowKeywordTriggerEnabled": { "type": "boolean" },
"disableSkillShellExecution": { "type": "boolean" },
"defaultShell": { "type": "string", "enum": ["bash", "powershell"] },
"allowManagedHooksOnly": { "type": "boolean" },
"allowedHttpHookUrls": { "type": "array", "items": { "type": "string" } },
"httpHookAllowedEnvVars": { "type": "array", "items": { "type": "string" } },
"allowManagedPermissionRulesOnly": { "type": "boolean" },
"allowManagedMcpServersOnly": { "type": "boolean" },
"allowAllClaudeAiMcps": { "type": "boolean" },
"statusLine": {
"type": "object",
"properties": {
"type": { "type": "string", "const": "command" },
"command": { "type": "string" },
"padding": { "type": "number" },
"refreshInterval": { "type": "number", "minimum": 1 },
"hideVimModeIndicator": { "type": "boolean" }
},
"required": ["type", "command"]
},
"enabledPlugins": {
"type": "object",
"propertyNames": { "type": "string" },
"additionalProperties": { "anyOf": [{ "type": "array", "items": { "type": "string" } }, { "type": "boolean" }, { "not": {} }] }
},
"outputStyle": { "type": "string" },
"viewMode": { "type": "string", "enum": ["default", "verbose", "focus"] },
"language": { "description": "Preferred language for Claude responses and voice dictation", "type": "string" },
"sandbox": {
"type": "object",
"properties": {
"enabled": { "type": "boolean" },
"failIfUnavailable": { "type": "boolean" },
"autoAllowBashIfSandboxed": { "type": "boolean" },
"allowUnsandboxedCommands": { "type": "boolean" },
"network": {
"type": "object",
"properties": {
"allowedDomains": { "type": "array", "items": { "type": "string" } },
"deniedDomains": { "type": "array", "items": { "type": "string" } },
"allowManagedDomainsOnly": { "type": "boolean" },
"allowUnixSockets": { "type": "array", "items": { "type": "string" } },
"allowAllUnixSockets": { "type": "boolean" },
"allowLocalBinding": { "type": "boolean" },
"allowMachLookup": { "type": "array", "items": { "type": "string" } },
"httpProxyPort": { "type": "number" },
"socksProxyPort": { "type": "number" }
}
},
"filesystem": {
"type": "object",
"properties": {
"allowWrite": { "type": "array", "items": { "type": "string" } },
"denyWrite": { "type": "array", "items": { "type": "string" } },
"denyRead": { "type": "array", "items": { "type": "string" } },
"allowRead": { "type": "array", "items": { "type": "string" } }
}
},
"excludedCommands": { "type": "array", "items": { "type": "string" } }
}
},
"feedbackSurveyRate": { "type": "number", "minimum": 0, "maximum": 1 },
"spinnerTipsEnabled": { "type": "boolean" },
"spinnerVerbs": {
"type": "object",
"properties": {
"mode": { "type": "string", "enum": ["append", "replace"] },
"verbs": { "type": "array", "items": { "type": "string" } }
},
"required": ["mode", "verbs"]
},
"spinnerTipsOverride": {
"type": "object",
"properties": {
"excludeDefault": { "type": "boolean" },
"tips": { "type": "array", "items": { "type": "string" } }
},
"required": ["tips"]
},
"syntaxHighlightingDisabled": { "type": "boolean" },
"alwaysThinkingEnabled": { "type": "boolean" },
"effortLevel": { "type": "string", "enum": ["low", "medium", "high", "xhigh"] },
"ultracode": { "type": "boolean" },
"autoCompactWindow": { "type": "integer", "minimum": 100000, "maximum": 1000000 },
"advisorModel": { "type": "string" },
"fastMode": { "type": "boolean" },
"fastModePerSessionOptIn": { "type": "boolean" },
"promptSuggestionEnabled": { "type": "boolean" },
"showClearContextOnPlanAccept": { "type": "boolean" },
"agent": { "description": "Name of an agent to use for the main thread.", "type": "string" },
"companyAnnouncements": { "type": "array", "items": { "type": "string" } },
"remote": {
"type": "object",
"properties": {
"defaultEnvironmentId": { "type": "string" }
}
},
"autoUpdatesChannel": { "type": "string", "enum": ["latest", "stable", "rc"] },
"minimumVersion": { "type": "string" },
"requiredMinimumVersion": { "type": "string" },
"requiredMaximumVersion": { "type": "string" },
"plansDirectory": { "type": "string" },
"tui": { "type": "string", "enum": ["default", "fullscreen"] },
"voice": {
"type": "object",
"properties": {
"enabled": { "type": "boolean" },
"mode": { "type": "string", "enum": ["hold", "tap"] },
"autoSubmit": { "type": "boolean" }
}
},
"channelsEnabled": { "type": "boolean" },
"prefersReducedMotion": { "type": "boolean" },
"autoMemoryEnabled": { "type": "boolean" },
"autoMemoryDirectory": { "type": "string" },
"autoDreamEnabled": { "type": "boolean" },
"showThinkingSummaries": { "type": "boolean" },
"skipDangerousModePermissionPrompt": { "type": "boolean" },
"skipWorkflowUsageWarning": { "type": "boolean" },
"theme": {
"anyOf": [
{ "type": "string", "enum": ["auto", "dark", "light", "light-daltonized", "dark-daltonized", "light-ansi", "dark-ansi"] },
{ "type": "string", "pattern": "^custom:.*" }
]
},
"editorMode": { "type": "string", "enum": ["normal", "vim"] },
"verbose": { "type": "boolean" },
"preferredNotifChannel": { "type": "string", "enum": ["auto", "iterm2", "iterm2_with_bell", "terminal_bell", "kitty", "ghostty", "notifications_disabled"] },
"autoCompactEnabled": { "type": "boolean" },
"precomputeCompactionEnabled": { "type": "boolean" },
"switchModelsOnFlag": { "type": "boolean" },
"autoScrollEnabled": { "type": "boolean" },
"wheelScrollAccelerationEnabled": { "type": "boolean" },
"fileCheckpointingEnabled": { "type": "boolean" },
"showTurnDuration": { "type": "boolean" },
"showMessageTimestamps": { "type": "boolean" },
"terminalProgressBarEnabled": { "type": "boolean" },
"todoFeatureEnabled": { "type": "boolean" },
"teammateMode": { "type": "string", "enum": ["auto", "tmux", "in-process"] },
"remoteControlAtStartup": { "type": "boolean" },
"isolatePeerMachines": { "type": "boolean" },
"daemonColdStart": { "type": "string", "enum": ["transient", "ask"] },
"autoUploadSessions": { "type": "boolean" },
"inputNeededNotifEnabled": { "type": "boolean" },
"agentPushNotifEnabled": { "type": "boolean" },
"skipAutoPermissionPrompt": { "type": "boolean" },
"useAutoModeDuringPlan": { "type": "boolean" },
"autoMode": {
"type": "object",
"properties": {
"allow": { "type": "array", "items": { "type": "string" } },
"soft_deny": { "type": "array", "items": { "type": "string" } },
"hard_deny": { "type": "array", "items": { "type": "string" } },
"environment": { "type": "array", "items": { "type": "string" } }
}
},
"disableDeepLinkRegistration": { "type": "string", "enum": ["disable"] },
"voiceEnabled": { "type": "boolean" },
"defaultView": { "type": "string", "enum": ["chat", "transcript"] },
"claudeMd": { "description": "CLAUDE.md-style instructions injected as organization-managed memory. Only honored from managed/policy settings.", "type": "string" },
"claudeMdExcludes": { "type": "array", "items": { "type": "string" } },
"sshConfigs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"name": { "type": "string" },
"sshHost": { "type": "string" },
"sshPort": { "type": "integer" },
"sshIdentityFile": { "type": "string" },
"startDirectory": { "type": "string" }
},
"required": ["id", "name", "sshHost"]
}
},
"forceLoginMethod": { "type": "string", "enum": ["claudeai", "console", "gateway"] },
"forceLoginOrgUUID": { "anyOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }] },
"forceRemoteSettingsRefresh": { "type": "boolean" },
"doneMeansMerged": { "type": "boolean" },
"totalTokensReminder": { "type": "string", "enum": ["off", "infinite", "fixed", "countdown"] }
},
"additionalProperties": {}
}
```
The full schema is in [update-config-schema.json](update-config-schema.json).
> Note: The full runtime schema includes deeply nested `extraKnownMarketplaces`, `strictKnownMarketplaces`, `blockedMarketplaces`, `allowedMcpServers`, `deniedMcpServers`, and `pluginConfigs` objects with extensive marketplace/plugin source type definitions (github, git, npm, url, file, directory, git-subdir, hostPattern, pathPattern, settings, skills-dir, unsupported). These are omitted here for readability but are present in the schema injected into conversation context. The `strictPluginOnlyCustomization` field accepts `boolean | ("skills" | "agents" | "hooks" | "mcp")[]`.
IMPORTANT: Do not update the env unless explicitly instructed to do so.