{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://www.schemastore.org/claude-code-settings.json", "$ref": "#/definitions/ClaudeCodeSettings", "definitions": { "ClaudeCodeSettings": { "type": "object", "properties": { "$schema": { "type": "string", "const": "https://json.schemastore.org/claude-code-settings.json", "description": "JSON Schema reference for Claude Code settings" }, "apiKeyHelper": { "type": "string", "description": "Path to a script that outputs authentication values" }, "awsCredentialExport": { "type": "string", "description": "Path to a script that exports AWS credentials" }, "awsAuthRefresh": { "type": "string", "description": "Path to a script that refreshes AWS authentication" }, "cleanupPeriodDays": { "type": "integer", "minimum": 0, "description": "Number of days to retain chat transcripts (0 to disable cleanup)" }, "env": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Environment variables to set for Claude Code sessions" }, "includeCoAuthoredBy": { "type": "boolean", "description": "Whether to include Claude's co-authored by attribution in commits and PRs (defaults to true)" }, "permissions": { "type": "object", "properties": { "allow": { "type": "array", "items": { "type": "string" }, "description": "List of permission rules for allowed operations" }, "deny": { "type": "array", "items": { "type": "string" }, "description": "List of permission rules for denied operations" }, "ask": { "type": "array", "items": { "type": "string" }, "description": "List of permission rules that should always prompt for confirmation" }, "defaultMode": { "type": "string", "enum": [ "acceptEdits", "bypassPermissions", "default", "dontAsk", "plan" ], "description": "Default permission mode when Claude Code needs access" }, "disableBypassPermissionsMode": { "type": "string", "enum": [ "disable" ], "description": "Disable the ability to bypass permission prompts" }, "additionalDirectories": { "type": "array", "items": { "type": "string" }, "description": "Additional directories to include in the permission scope" } }, "additionalProperties": false, "description": "Tool usage permissions configuration" }, "model": { "type": "string", "description": "Override the default model used by Claude Code" }, "enableAllProjectMcpServers": { "type": "boolean", "description": "Whether to automatically approve all MCP servers in the project" }, "enabledMcpjsonServers": { "type": "array", "items": { "type": "string" }, "description": "List of approved MCP servers from .mcp.json" }, "disabledMcpjsonServers": { "type": "array", "items": { "type": "string" }, "description": "List of rejected MCP servers from .mcp.json" }, "allowedMcpServers": { "type": "array", "items": { "type": "object", "properties": { "serverName": { "type": "string", "pattern": "^[a-zA-Z0-9_-]+$", "description": "Name of the MCP server that users are allowed to configure" } }, "required": [ "serverName" ], "additionalProperties": false }, "description": "Enterprise allowlist of MCP servers that can be used. Applies to all scopes including enterprise servers from managed-mcp.json. If undefined, all servers are allowed. If empty array, no servers are allowed. Denylist takes precedence - if a server is on both lists, it is denied." }, "deniedMcpServers": { "type": "array", "items": { "type": "object", "properties": { "serverName": { "type": "string", "pattern": "^[a-zA-Z0-9_-]+$", "description": "Name of the MCP server that is explicitly blocked" } }, "required": [ "serverName" ], "additionalProperties": false }, "description": "Enterprise denylist of MCP servers that are explicitly blocked. If a server is on the denylist, it will be blocked across all scopes including enterprise. Denylist takes precedence over allowlist - if a server is on both lists, it is denied." }, "hooks": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "string", "description": "String pattern to match (e.g. tool names like \"Write\")" }, "hooks": { "type": "array", "items": { "anyOf": [ { "type": "object", "properties": { "type": { "type": "string", "const": "command", "description": "Bash command hook type" }, "command": { "type": "string", "description": "Shell command to execute" }, "timeout": { "type": "number", "exclusiveMinimum": 0, "description": "Timeout in seconds for this specific command" }, "statusMessage": { "type": "string", "description": "Custom status message to display in spinner while hook runs" } }, "required": [ "type", "command" ], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "const": "prompt", "description": "LLM prompt hook type" }, "prompt": { "type": "string", "description": "Prompt to evaluate with LLM. Use $ARGUMENTS placeholder for hook input JSON." }, "timeout": { "type": "number", "exclusiveMinimum": 0, "description": "Timeout in seconds for this specific prompt evaluation" }, "model": { "type": "string", "description": "Model to use for this prompt hook (e.g., \"claude-sonnet-4-5-20250929\"). If not specified, uses the default small fast model." }, "statusMessage": { "type": "string", "description": "Custom status message to display in spinner while hook runs" } }, "required": [ "type", "prompt" ], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "const": "agent", "description": "Agentic verifier hook type" }, "prompt": { "type": "string", "description": "Prompt describing what to verify (e.g. \"Verify that unit tests ran and passed.\"). Use $ARGUMENTS placeholder for hook input JSON." }, "timeout": { "type": "number", "exclusiveMinimum": 0, "description": "Timeout in seconds for agent execution (default 60)" }, "model": { "type": "string", "description": "Model to use for this agent hook (e.g., \"claude-sonnet-4-5-20250929\"). If not specified, uses Haiku." }, "statusMessage": { "type": "string", "description": "Custom status message to display in spinner while hook runs" } }, "required": [ "type", "prompt" ], "additionalProperties": false } ] }, "description": "List of hooks to execute when the matcher matches" } }, "required": [ "hooks" ], "additionalProperties": false } }, "description": "Custom commands to run before/after tool executions" }, "disableAllHooks": { "type": "boolean", "description": "Disable all hooks and statusLine execution" }, "statusLine": { "type": "object", "properties": { "type": { "type": "string", "const": "command" }, "command": { "type": "string" }, "padding": { "type": "number" } }, "required": [ "type", "command" ], "additionalProperties": false, "description": "Custom status line display configuration" }, "enabledPlugins": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "boolean" }, { "not": {} } ] }, "description": "Enabled plugins using plugin-id@marketplace-id format. Example: { \"formatter@anthropic-tools\": true }. Also supports extended format with version constraints." }, "extraKnownMarketplaces": { "type": "object", "additionalProperties": { "type": "object", "properties": { "source": { "anyOf": [ { "type": "object", "properties": { "source": { "type": "string", "const": "url" }, "url": { "type": "string", "format": "uri", "description": "Direct URL to marketplace.json file" } }, "required": [ "source", "url" ], "additionalProperties": false }, { "type": "object", "properties": { "source": { "type": "string", "const": "github" }, "repo": { "type": "string", "description": "GitHub repository in owner/repo format" }, "ref": { "type": "string", "description": "Git branch or tag to use (e.g., \"main\", \"v1.0.0\"). Defaults to repository default branch." }, "path": { "type": "string", "description": "Path to marketplace.json within repo (defaults to .claude-plugin/marketplace.json)" } }, "required": [ "source", "repo" ], "additionalProperties": false }, { "type": "object", "properties": { "source": { "type": "string", "const": "git" }, "url": { "type": "string", "pattern": "\\.git$", "description": "Full git repository URL" }, "ref": { "type": "string", "description": "Git branch or tag to use (e.g., \"main\", \"v1.0.0\"). Defaults to repository default branch." }, "path": { "type": "string", "description": "Path to marketplace.json within repo (defaults to .claude-plugin/marketplace.json)" } }, "required": [ "source", "url" ], "additionalProperties": false }, { "type": "object", "properties": { "source": { "type": "string", "const": "npm" }, "package": { "type": "string", "description": "NPM package containing marketplace.json" } }, "required": [ "source", "package" ], "additionalProperties": false }, { "type": "object", "properties": { "source": { "type": "string", "const": "file" }, "path": { "type": "string", "description": "Local file path to marketplace.json" } }, "required": [ "source", "path" ], "additionalProperties": false }, { "type": "object", "properties": { "source": { "type": "string", "const": "directory" }, "path": { "type": "string", "description": "Local directory containing .claude-plugin/marketplace.json" } }, "required": [ "source", "path" ], "additionalProperties": false } ], "description": "Where to fetch the marketplace from" }, "installLocation": { "type": "string", "description": "Local cache path where marketplace manifest is stored (auto-generated if not provided)" } }, "required": [ "source" ], "additionalProperties": false }, "description": "Additional marketplaces to make available for this repository. Typically used in repository .claude/settings.json to ensure team members have required plugin sources." }, "skippedMarketplaces": { "type": "array", "items": { "type": "string" }, "description": "List of marketplace names the user has chosen not to install when prompted" }, "skippedPlugins": { "type": "array", "items": { "type": "string" }, "description": "List of plugin IDs (plugin@marketplace format) the user has chosen not to install when prompted" }, "forceLoginMethod": { "type": "string", "enum": [ "claudeai", "console" ], "description": "Force a specific login method: \"claudeai\" for Claude Pro/Max, \"console\" for Console billing" }, "forceLoginOrgUUID": { "type": "string", "description": "Organization UUID to use for OAuth login" }, "otelHeadersHelper": { "type": "string", "description": "Path to a script that outputs OpenTelemetry headers" }, "outputStyle": { "type": "string", "description": "Controls the output style for assistant responses" }, "skipWebFetchPreflight": { "type": "boolean", "description": "Skip the WebFetch blocklist check for enterprise environments with restrictive security policies" }, "sandbox": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "autoAllowBashIfSandboxed": { "type": "boolean" }, "allowUnsandboxedCommands": { "type": "boolean", "description": "Allow commands to run outside the sandbox via the dangerouslyDisableSandbox parameter. When false, the dangerouslyDisableSandbox parameter is completely ignored and all commands must run sandboxed. Default: true." }, "network": { "type": "object", "properties": { "allowUnixSockets": { "type": "array", "items": { "type": "string" } }, "allowAllUnixSockets": { "type": "boolean" }, "allowLocalBinding": { "type": "boolean" }, "httpProxyPort": { "type": "number" }, "socksProxyPort": { "type": "number" } }, "additionalProperties": false }, "ignoreViolations": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } }, "enableWeakerNestedSandbox": { "type": "boolean" }, "excludedCommands": { "type": "array", "items": { "type": "string" } }, "ripgrep": { "type": "object", "properties": { "command": { "type": "string" }, "args": { "type": "array", "items": { "type": "string" } } }, "required": [ "command" ], "additionalProperties": false, "description": "Custom ripgrep configuration for bundled ripgrep support" } }, "additionalProperties": false }, "spinnerTipsEnabled": { "type": "boolean", "description": "Whether to show tips in the spinner" }, "alwaysThinkingEnabled": { "type": "boolean", "description": "Whether extended thinking is always enabled (default: false)" }, "companyAnnouncements": { "type": "array", "items": { "type": "string" }, "description": "Company announcements to display at startup (one will be randomly selected if multiple are provided)" }, "pluginConfigs": { "type": "object", "additionalProperties": { "type": "object", "properties": { "mcpServers": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "array", "items": { "type": "string" } } ] } }, "description": "User configuration values for MCP servers keyed by server name" } }, "additionalProperties": false }, "description": "Per-plugin configuration including MCP server user configs, keyed by plugin ID (plugin@marketplace format)" }, "remote": { "type": "object", "properties": { "defaultEnvironmentId": { "type": "string", "description": "Default environment ID to use for remote sessions" } }, "additionalProperties": false, "description": "Remote session configuration" } }, "additionalProperties": false } }, "title": "Claude Code Settings", "description": "Configuration settings for Claude Code. Learn more: https://docs.claude.com/en/docs/claude-code/settings", "$comment": "Generated on 2025-11-21T17:28:36.100Z" }