Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 82 additions & 4 deletions src/schemas/json/claude-code-settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,48 @@
"description": "Custom spinner message displayed while the hook runs"
}
}
},
{
"type": "object",
"description": "HTTP webhook hook. POST JSON to a URL and receive JSON response. See https://code.claude.com/docs/en/hooks#http-hooks",
"additionalProperties": false,
"required": ["type", "url"],
"properties": {
"type": {
"type": "string",
"description": "Hook type",
"const": "http"
},
"url": {
"type": "string",
"description": "URL to POST hook input JSON to. Endpoint must accept POST requests and return JSON.",
"minLength": 1
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Custom HTTP headers (e.g., Authorization: Bearer token). Values support $VAR_NAME or ${VAR_NAME} interpolation."
},
"allowedEnvVars": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "List of environment variable names permitted for interpolation in headers. If not set, no env var interpolation is allowed."
},
"timeout": {
"type": "number",
"description": "Optional timeout in seconds (default: 30)",
"exclusiveMinimum": 0
},
"statusMessage": {
"type": "string",
"description": "Custom spinner message displayed while the hook runs"
}
}
}
]
},
Expand Down Expand Up @@ -159,10 +201,15 @@
"examples": ["/bin/generate_temp_api_key.sh"],
"minLength": 1
},
"autoMemoryEnabled": {
"type": "boolean",
"description": "Enable automatic memory saves that capture useful context to .claude/memory/. Also configurable via CLAUDE_CODE_DISABLE_AUTO_MEMORY environment variable (set to 1 to disable, 0 to enable). See https://code.claude.com/docs/en/memory#auto-memory",
"default": true
},
"autoUpdatesChannel": {
"type": "string",
"enum": ["stable", "latest"],
"description": "Release channel to follow for updates. Use \"stable\" for a version that is typically about one week old and skips versions with major regressions, or \"latest\" (default) for the most recent release",
"description": "Release channel to follow for updates. Use \"stable\" for a version that is typically about one week old and skips versions with major regressions, or \"latest\" (default) for the most recent release. Set DISABLE_AUTOUPDATER=1 to disable updates entirely.",
"default": "latest"
},
"awsCredentialExport": {
Expand All @@ -187,7 +234,7 @@
"env": {
"type": "object",
"additionalProperties": false,
"description": "Environment variables to set for Claude Code sessions. See https://code.claude.com/docs/en/model-config#environment-variables for notable variables like CLAUDE_CODE_DISABLE_1M_CONTEXT (disables 1M token context window variants)",
"description": "Environment variables to set for Claude Code sessions. Many environment variables provide settings dimensions not available as dedicated settings.json properties (e.g., thinking tokens, prompt caching, bash timeouts, shell configuration). See https://code.claude.com/docs/en/settings#environment-variables for the full list.\nUNDOCUMENTED: CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS (plugin marketplace git timeout in ms, default 120000, see https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2151).\nUNDOCUMENTED: ENABLE_CLAUDEAI_MCP_SERVERS (set to false to opt out of claude.ai MCP servers, see https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2163).",
"examples": [
{
"ANTHROPIC_MODEL": "claude-opus-4-1",
Expand Down Expand Up @@ -306,7 +353,7 @@
},
"model": {
"type": "string",
"description": "Override the default model used by Claude Code. See https://code.claude.com/docs/en/model-config"
"description": "Override the default model used by Claude Code. For finer control, use environment variables: ANTHROPIC_MODEL (runtime override), ANTHROPIC_DEFAULT_OPUS_MODEL, ANTHROPIC_DEFAULT_SONNET_MODEL, ANTHROPIC_DEFAULT_HAIKU_MODEL (per-class pinning), CLAUDE_CODE_SUBAGENT_MODEL (subagent model). See https://code.claude.com/docs/en/model-config"
},
"availableModels": {
"type": "array",
Expand All @@ -319,7 +366,7 @@
"effortLevel": {
"type": "string",
"enum": ["low", "medium", "high"],
"description": "Control Opus 4.6 adaptive reasoning effort. Lower effort is faster and cheaper for straightforward tasks, higher effort provides deeper reasoning. See https://code.claude.com/docs/en/model-config#adjust-effort-level",
"description": "Control Opus 4.6 adaptive reasoning effort. Lower effort is faster and cheaper for straightforward tasks, higher effort provides deeper reasoning. Also configurable via CLAUDE_CODE_EFFORT_LEVEL environment variable. See https://code.claude.com/docs/en/model-config#adjust-effort-level",
"default": "high"
},
"fastMode": {
Expand Down Expand Up @@ -1098,6 +1145,37 @@
"enabled": {
"type": "boolean",
"description": "Enable sandboxed bash"
},
"filesystem": {
"type": "object",
"description": "Filesystem access control for sandboxed commands. See https://code.claude.com/docs/en/sandboxing#filesystem-isolation",
"properties": {
"allowWrite": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Paths where subprocesses are allowed to write. Supports prefixes: // (absolute), ~/ (home directory), / (relative to settings file), ./ or no prefix (relative path)"
},
"denyWrite": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Paths where subprocesses are explicitly denied write access. Takes precedence over allowWrite"
},
"denyRead": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Paths where subprocesses are explicitly denied read access"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
Expand Down
10 changes: 10 additions & 0 deletions src/test/claude-code-settings/hooks-complete.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,16 @@
{
"command": "osascript -e 'display notification \"Claude task complete\" with title \"Claude Code\"'",
"type": "command"
},
{
"allowedEnvVars": ["WEBHOOK_SECRET"],
"headers": {
"X-Hook-Secret": "$WEBHOOK_SECRET"
},
"statusMessage": "Sending notification webhook",
"timeout": 15,
"type": "http",
"url": "http://localhost:8080/hooks/notification"
}
]
}
Expand Down
16 changes: 16 additions & 0 deletions src/test/claude-code-settings/modern-complete-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>",
"pr": ""
},
"autoMemoryEnabled": false,
"autoUpdatesChannel": "latest",
"availableModels": ["sonnet", "haiku"],
"awsAuthRefresh": "aws sso login --profile myprofile",
Expand Down Expand Up @@ -93,6 +94,16 @@
"command": "osascript -e 'display notification \"Task completed\" with title \"Claude Code\"'",
"timeout": 3,
"type": "command"
},
{
"allowedEnvVars": ["HOOK_TOKEN"],
"headers": {
"Authorization": "Bearer $HOOK_TOKEN"
},
"statusMessage": "Notifying webhook",
"timeout": 10,
"type": "http",
"url": "https://hooks.example.com/session-end"
}
]
}
Expand Down Expand Up @@ -166,6 +177,11 @@
"enableWeakerNestedSandbox": false,
"enabled": true,
"excludedCommands": ["docker", "git"],
"filesystem": {
"allowWrite": ["~/.kube", "//tmp/build"],
"denyRead": ["~/.ssh/id_rsa"],
"denyWrite": ["//etc", "//usr"]
},
"network": {
"allowAllUnixSockets": false,
"allowLocalBinding": true,
Expand Down