651 lines
23 KiB
JSON
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"
|
|
}
|