Files
2025-12-02 16:27:21 +00:00

651 lines
23 KiB
JSON

{
"$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-21T00:14:56.745Z"
}