diff --git a/catalog/cli-reference.json b/catalog/cli-reference.json index 27cee14..c101afb 100644 --- a/catalog/cli-reference.json +++ b/catalog/cli-reference.json @@ -1,8 +1,8 @@ { "source": "https://code.claude.com/docs/en/cli-reference.md", - "fetchedAt": "2026-05-18T12:35:00.301Z", - "commandCount": 25, - "flagCount": 64, + "fetchedAt": "2026-07-06T12:50:20.123Z", + "commandCount": 30, + "flagCount": 70, "commands": [ { "name": "cat file | claude -p \"query\"", @@ -41,8 +41,8 @@ }, { "name": "claude agents", - "description": "Open [agent view](/en/agent-view) to monitor and dispatch parallel background sessions. Use `--cwd ` to show only sessions started under that directory", - "example": "`claude agents`" + "description": "Open [agent view](/en/agent-view) to monitor and dispatch parallel background sessions. Use `--cwd ` to show only sessions started under that directory, or `--json` to print active sessions as a JSON array for scripting (`--json --all` also includes completed background sessions). Pass `--permission-mode`, `--model`, `--effort`, or `--agent` to set [defaults for dispatched sessions](/en/agent-view#permission-mode-model-and-effort). Accepts `--settings`, `--add-dir`, `--plugin-dir`, and `--mcp-config` like the top-level `claude` command. Opening agent view requires an interactive terminal", + "example": "`claude agents --json`" }, { "name": "claude attach ", @@ -69,6 +69,21 @@ "description": "Print the built-in [auto mode](/en/permission-modes#eliminate-prompts-with-auto-mode) classifier rules as JSON. Use `claude auto-mode config` to see your effective config with settings applied", "example": "`claude auto-mode defaults > rules.json`" }, + { + "name": "claude daemon status", + "description": "Print the background-session [supervisor's](/en/agent-view#the-supervisor-process) state, version, socket directory, and worker count for diagnostics. Exits 1 if the supervisor isn't running", + "example": "`claude daemon status`" + }, + { + "name": "claude daemon stop --any", + "description": "Stop the background-session [supervisor](/en/agent-view#the-supervisor-process) and the sessions it hosts. Pass `--keep-workers` to leave background sessions running so the next supervisor reconnects to them. `--any` confirms stopping an on-demand supervisor, which is the default. Use this to recover from an [unresponsive supervisor](/en/agent-view#agent-view-says-the-background-service-did-not-respond)", + "example": "`claude daemon stop --any --keep-workers`" + }, + { + "name": "claude gateway", + "description": "Start the self-hosted [Claude apps gateway](/en/claude-apps-gateway) server, for administrators deploying SSO and policy in front of Claude Code on Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry. Requires `--config` pointing at a [`gateway.yaml`](/en/claude-apps-gateway-config). Available in Claude Code v2.1.195 and later.", + "example": "`claude gateway --config gateway.yaml`" + }, { "name": "claude install [version]", "description": "Install or reinstall the native binary. Accepts a version like `2.1.118`, or `stable` or `latest`. See [Install a specific version](/en/setup#install-a-specific-version)", @@ -84,6 +99,16 @@ "description": "Configure Model Context Protocol (MCP) servers", "example": "See the [Claude Code MCP documentation](/en/mcp)." }, + { + "name": "claude mcp login ", + "description": "{/* min-version: 2.1.186 */}Run a configured MCP server's OAuth flow without opening the interactive `/mcp` panel. Works for HTTP, SSE, and claude.ai connector servers. Add `--no-browser` over SSH to print the authorization URL instead of opening a browser, then paste the redirect URL back at the prompt. Requires Claude Code v2.1.186 or later. See [Authenticate from the command line](/en/mcp#authenticate-from-the-command-line)", + "example": "`claude mcp login sentry`" + }, + { + "name": "claude mcp logout ", + "description": "{/* min-version: 2.1.186 */}Clear stored OAuth credentials for an MCP server. Requires Claude Code v2.1.186 or later", + "example": "`claude mcp logout sentry`" + }, { "name": "claude plugin", "description": "Manage Claude Code [plugins](/en/plugins). Alias: `claude plugins`. See [plugin reference](/en/plugins-reference#cli-commands-reference) for subcommands", @@ -101,12 +126,12 @@ }, { "name": "claude respawn ", - "description": "Restart a stopped [background session](/en/agent-view#manage-sessions-from-the-shell) with its conversation intact. Use `--all` to restart every stopped session", + "description": "Restart a [background session](/en/agent-view#manage-sessions-from-the-shell), running or stopped, with its conversation intact. Use `--all` to restart every running session, e.g. to pick up an updated Claude Code binary", "example": "`claude respawn 7c5dcf5d`" }, { "name": "claude rm ", - "description": "Remove a [background session](/en/agent-view#manage-sessions-from-the-shell) from the list", + "description": "Remove a [background session](/en/agent-view#manage-sessions-from-the-shell) from the list. The conversation transcript stays on your local machine, available through `claude --resume`", "example": "`claude rm 7c5dcf5d`" }, { @@ -136,6 +161,11 @@ "description": "Add additional working directories for Claude to read and edit files. Grants file access; most `.claude/` configuration is [not discovered](/en/permissions#additional-directories-grant-file-access-not-configuration) from these directories. Validates each path exists as a directory. To persist these directories across sessions, set [`permissions.additionalDirectories`](/en/settings#permission-settings) in settings", "example": "`claude --add-dir ../apps ../lib`" }, + { + "name": "--advisor ", + "description": "{/* min-version: 2.1.98 */}Enable the server-side [advisor tool](/en/advisor) for this session with a model alias: `opus`, `sonnet`, or `fable` ({/* min-version: 2.1.170 */}v2.1.170+), or a full model ID. Takes precedence over the `advisorModel` setting for the session. Requires Claude Code v2.1.98 or later", + "example": "`claude --advisor opus`" + }, { "name": "--agent", "description": "Specify an agent for the current session (overrides the `agent` setting)", @@ -151,11 +181,6 @@ "description": "Add `bypassPermissions` to the `Shift+Tab` mode cycle without starting in it. Lets you begin in a different mode like `plan` and switch to `bypassPermissions` later. See [permission modes](/en/permission-modes#skip-all-checks-with-bypasspermissions-mode)", "example": "`claude --permission-mode plan --allow-dangerously-skip-permissions`" }, - { - "name": "--allowedTools", - "description": "Tools that execute without prompting for permission. See [permission rule syntax](/en/settings#permission-rule-syntax) for pattern matching. To restrict which tools are available, use `--tools` instead", - "example": "`\"Bash(git log *)\" \"Bash(git diff *)\" \"Read\"`" - }, { "name": "--append-system-prompt", "description": "Append custom text to the end of the default system prompt", @@ -166,6 +191,11 @@ "description": "Load additional system prompt text from a file and append to the default prompt", "example": "`claude --append-system-prompt-file ./extra-rules.txt`" }, + { + "name": "--ax-screen-reader", + "description": "{/* min-version: 2.1.181 */}Render screen-reader friendly output: flat text without decorative borders or animations. Forces the classic renderer, so the [`tui`](/en/settings#available-settings) setting has no effect for the session. Takes precedence over [`CLAUDE_AX_SCREEN_READER`](/en/env-vars) and the [`axScreenReader`](/en/settings#available-settings) setting. Requires Claude Code v2.1.181 or later", + "example": "`claude --ax-screen-reader`" + }, { "name": "--bare", "description": "Minimal mode: skip auto-discovery of hooks, skills, plugins, MCP servers, auto memory, and CLAUDE.md so scripted calls start faster. Claude has access to Bash, file read, and file edit tools. Sets [`CLAUDE_CODE_SIMPLE`](/en/env-vars). See [bare mode](/en/headless#start-faster-with-bare-mode)", @@ -176,11 +206,6 @@ "description": "Beta headers to include in API requests (API key users only)", "example": "`claude --betas interleaved-thinking`" }, - { - "name": "--bg", - "description": "Start the session as a [background agent](/en/agent-view) and return immediately. Prints the session ID and management commands. Combine with `--agent` to run a specific subagent", - "example": "`claude --bg \"investigate the flaky test\"`" - }, { "name": "--channels", "description": "(Research preview) MCP servers whose [channel](/en/channels) notifications Claude should listen for in this session. Space-separated list of `plugin:@` entries. Requires Claude.ai authentication", @@ -191,6 +216,11 @@ "description": "Enable [Chrome browser integration](/en/chrome) for web automation and testing", "example": "`claude --chrome`" }, + { + "name": "--cloud", + "description": "Create a new [web session](/en/claude-code-on-the-web) on claude.ai with the provided task description", + "example": "`claude --cloud \"Fix the login bug\"`" + }, { "name": "--dangerously-load-development-channels", "description": "Enable [channels](/en/channels-reference#test-during-the-research-preview) that are not on the approved allowlist, for local development. Accepts `plugin:@` and `server:` entries. Prompts for confirmation", @@ -216,11 +246,6 @@ "description": "Disable all skills and commands for this session", "example": "`claude --disable-slash-commands`" }, - { - "name": "--disallowedTools", - "description": "Tools that are removed from the model's context and cannot be used", - "example": "`\"Bash(git log *)\" \"Bash(git diff *)\" \"Edit\"`" - }, { "name": "--effort", "description": "Set the [effort level](/en/model-config#adjust-effort-level) for the current session. Options: `low`, `medium`, `high`, `xhigh`, `max`; available levels depend on the model. Overrides the [`effortLevel`](/en/settings#available-settings) setting for this session and does not persist", @@ -236,10 +261,15 @@ "description": "Move per-machine sections from the system prompt (working directory, environment info, memory paths, git-repo flag) into the first user message. Improves prompt-cache reuse across different users and machines running the same task. Only applies with the default system prompt; ignored when `--system-prompt` or `--system-prompt-file` is set. Use with `-p` for scripted, multi-user workloads", "example": "`claude -p --exclude-dynamic-system-prompt-sections \"query\"`" }, + { + "name": "--exec", + "description": "Run a shell command as a PTY-backed background job instead of starting a Claude session. Use with `--bg` to launch from the shell", + "example": "`claude --bg --exec 'pytest -x'`" + }, { "name": "--fallback-model", - "description": "Enable automatic fallback to specified model when default model is overloaded (print mode only)", - "example": "`claude -p --fallback-model sonnet \"query\"`" + "description": "Enable automatic fallback to the specified model(s) when the primary model is overloaded or not available, for example a retired model. Accepts a comma-separated list tried in order. See [Fallback model chains](/en/model-config#fallback-model-chains). To persist a chain across sessions, use the [`fallbackModel` setting](/en/settings#available-settings), which this flag overrides", + "example": "`claude --fallback-model sonnet,haiku`" }, { "name": "--fork-session", @@ -259,12 +289,12 @@ { "name": "--include-hook-events", "description": "Include all hook lifecycle events in the output stream. Requires `--output-format stream-json`", - "example": "`claude -p --output-format stream-json --include-hook-events \"query\"`" + "example": "`claude -p --output-format stream-json --verbose --include-hook-events \"query\"`" }, { "name": "--include-partial-messages", "description": "Include partial streaming events in output. Requires `--print` and `--output-format stream-json`", - "example": "`claude -p --output-format stream-json --include-partial-messages \"query\"`" + "example": "`claude -p --output-format stream-json --verbose --include-partial-messages \"query\"`" }, { "name": "--init", @@ -308,8 +338,8 @@ }, { "name": "--model", - "description": "Sets the model for the current session with an alias for the latest model (`sonnet` or `opus`) or a model's full name. Overrides the [`model`](/en/settings#available-settings) setting and [`ANTHROPIC_MODEL`](/en/model-config#environment-variables)", - "example": "`claude --model claude-sonnet-4-6`" + "description": "Sets the model for the current session with an alias for the latest model (`sonnet`, `opus`, `haiku`, or `fable`) or a model's full name. Overrides the [`model`](/en/settings#available-settings) setting and [`ANTHROPIC_MODEL`](/en/model-config#environment-variables)", + "example": "`claude --model claude-sonnet-5`" }, { "name": "--no-chrome", @@ -328,12 +358,12 @@ }, { "name": "--permission-mode", - "description": "Begin in a specified [permission mode](/en/permission-modes). Accepts `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, or `bypassPermissions`. Overrides `defaultMode` from settings files", + "description": "Begin in a specified [permission mode](/en/permission-modes). Accepts `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, or {/* min-version: 2.1.200 */}`manual` as an alias for `default`. The `manual` alias selects the mode the UI labels Manual and requires Claude Code v2.1.200 or later; `claude --help` lists it in place of `default`, and both values work. Overrides `defaultMode` from settings files", "example": "`claude --permission-mode plan`" }, { "name": "--permission-prompt-tool", - "description": "Specify an MCP tool to handle permission prompts in non-interactive mode", + "description": "Specify an MCP tool to handle permission prompts in non-interactive mode. {/* min-version: 2.1.199 */}As of v2.1.199, the prompt tool can't approve an MCP tool marked as [requiring user interaction](/en/mcp#require-approval-for-a-specific-tool): an `allow` result for one is converted to a deny", "example": "`claude -p --permission-prompt-tool mcp_auth_tool \"query\"`" }, { @@ -346,9 +376,14 @@ "description": "Fetch a plugin `.zip` archive from a URL for this session only. Repeat the flag for multiple plugins, or pass space-separated URLs in a single quoted value", "example": "`claude --plugin-url https://example.com/plugin.zip`" }, + { + "name": "--prompt-suggestions", + "description": "Emit a `prompt_suggestion` message after each turn with a predicted next user prompt. Requires `--print`, `--output-format stream-json`, and `--verbose`. See [Prompt suggestions](/en/interactive-mode#prompt-suggestions)", + "example": "`claude -p --prompt-suggestions --output-format stream-json --verbose \"query\"`" + }, { "name": "--remote", - "description": "Create a new [web session](/en/claude-code-on-the-web) on claude.ai with the provided task description", + "description": "Deprecated alias for `--cloud`", "example": "`claude --remote \"Fix the login bug\"`" }, { @@ -359,7 +394,12 @@ { "name": "--replay-user-messages", "description": "Re-emit user messages from stdin back on stdout for acknowledgment. Requires `--input-format stream-json` and `--output-format stream-json`", - "example": "`claude -p --input-format stream-json --output-format stream-json --replay-user-messages`" + "example": "`claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages`" + }, + { + "name": "--safe-mode", + "description": "{/* min-version: 2.1.169 */}Start with all customizations disabled to troubleshoot a broken configuration: CLAUDE.md, skills, plugins, hooks, MCP servers, custom commands and agents, output styles, workflows, custom themes, custom keybindings, status line and file-suggestion commands, LSP servers, and auto-memory do not load. Authentication, model selection, built-in tools, and permissions work normally, which differs from [`--bare`](/en/headless#start-faster-with-bare-mode). Managed settings policy still applies, including policy-configured hooks, status line, and file-suggestion commands; managed plugins, managed skills, managed CLAUDE.md, and policy-configured MCP servers do not. Useful for checking whether a customization is what triggers [automatic fallback from Fable 5](/en/model-config#automatic-model-fallback). Sets [`CLAUDE_CODE_SAFE_MODE`](/en/env-vars)", + "example": "`claude --safe-mode`" }, { "name": "--session-id", @@ -393,8 +433,8 @@ }, { "name": "--teammate-mode", - "description": "Set how [agent team](/en/agent-teams) teammates display: `auto` (default), `in-process`, or `tmux`. Overrides the [`teammateMode`](/en/settings#available-settings) setting for this session. See [Choose a display mode](/en/agent-teams#choose-a-display-mode)", - "example": "`claude --teammate-mode in-process`" + "description": "Set how [agent team](/en/agent-teams) teammates display: `in-process` (default), `auto`, `tmux`, or {/* min-version: 2.1.186 */}`iterm2` (added in v2.1.186). The default changed from `auto` in v2.1.179. Overrides the [`teammateMode`](/en/settings#available-settings) setting for this session. See [Choose a display mode](/en/agent-teams#choose-a-display-mode)", + "example": "`claude --teammate-mode auto`" }, { "name": "--teleport", @@ -408,7 +448,7 @@ }, { "name": "--tools", - "description": "Restrict which built-in tools Claude can use. Use `\"\"` to disable all, `\"default\"` for all, or tool names like `\"Bash,Edit,Read\"`", + "description": "Restrict which built-in tools Claude can use. Use `\"\"` to disable all, `\"default\"` for all, or tool names like `\"Bash,Edit,Read\"`. MCP tools are not affected; to deny those too, use `--disallowedTools \"mcp__*\"`, or pass `--strict-mcp-config` without `--mcp-config` so no MCP servers load", "example": "`claude --tools \"Bash,Edit,Read\"`" }, { @@ -416,11 +456,26 @@ "description": "Enable verbose logging, shows full turn-by-turn output. Overrides the [`viewMode`](/en/settings#available-settings) setting for this session", "example": "`claude --verbose`" }, + { + "name": "`--allowedTools`, `--allowed-tools`", + "description": "Tools that execute without prompting for permission. See [permission rule syntax](/en/settings#permission-rule-syntax) for pattern matching. To restrict which tools are available, use `--tools` instead", + "example": "`\"Bash(git log *)\" \"Bash(git diff *)\" \"Read\"`" + }, + { + "name": "`--bg`, `--background`", + "description": "Start the session as a [background agent](/en/agent-view) and return immediately. Prints the session ID and management commands. Combine with `--exec` to run a shell command as a background job instead of a Claude session, or with `--agent` to run a specific subagent. {/* min-version: 2.1.198 */}Cannot be combined with `-p`/`--print`; see the [error reference](/en/errors#command-line-errors)", + "example": "`claude --bg \"investigate the flaky test\"`" + }, { "name": "`--continue`, `-c`", "description": "Load the most recent conversation in the current directory. Includes sessions that added this directory with `/add-dir`", "example": "`claude --continue`" }, + { + "name": "`--disallowedTools`, `--disallowed-tools`", + "description": "Deny rules. A bare tool name removes the matching tools from the model's context: `\"Edit\"` removes Edit, `\"*\"` removes every tool, and `\"mcp__*\"` removes every MCP tool. A scoped rule such as `Bash(rm *)` leaves the tool available and denies only matching calls", + "example": "`\"Bash(git log *)\" \"Bash(git diff *)\" \"Edit\"`" + }, { "name": "`--name`, `-n`", "description": "Set a display name for the session, shown in `/resume` and the terminal title. You can resume a named session with `claude --resume `.

[`/rename`](/en/commands) changes the name mid-session and also shows it on the prompt bar", @@ -438,7 +493,7 @@ }, { "name": "`--resume`, `-r`", - "description": "Resume a specific session by ID or name, or show an interactive picker to choose a session. Includes sessions that added this directory with `/add-dir`", + "description": "Resume a specific session by ID or name, or show an interactive picker to choose a session. The picker and name search include sessions that added this directory with `/add-dir`; passing a session ID searches only the current project directory and its git worktrees. As of v2.1.144, [background sessions](/en/agent-view) appear in the picker marked with `bg`", "example": "`claude --resume auth-refactor`" }, { diff --git a/catalog/env-vars.json b/catalog/env-vars.json index b86d810..3fcad28 100644 --- a/catalog/env-vars.json +++ b/catalog/env-vars.json @@ -1,7 +1,7 @@ { "source": "https://code.claude.com/docs/en/env-vars.md", - "fetchedAt": "2026-05-18T12:34:58.586Z", - "count": 241, + "fetchedAt": "2026-07-06T12:50:14.866Z", + "count": 288, "envVars": [ { "name": "ANTHROPIC_API_KEY", @@ -30,22 +30,22 @@ }, { "name": "ANTHROPIC_BASE_URL", - "purpose": "Override the API endpoint to route requests through a proxy or gateway. When set to a non-first-party host, [MCP tool search](/en/mcp#scale-with-mcp-tool-search) is disabled by default. Set `ENABLE_TOOL_SEARCH=true` if your proxy forwards `tool_reference` blocks", + "purpose": "Override the API endpoint to route requests through a proxy or gateway. When set to a non-first-party host, [MCP tool search](/en/mcp#scale-with-mcp-tool-search) is disabled by default. Set `ENABLE_TOOL_SEARCH=true` if your proxy forwards `tool_reference` blocks. {/* min-version: 2.1.196 */}As of v2.1.196, [Remote Control](/en/remote-control#requirements) is disabled when this points at a host other than `api.anthropic.com`, matching its behavior on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry", "default": null }, { "name": "ANTHROPIC_BEDROCK_BASE_URL", - "purpose": "Override the Bedrock endpoint URL. Use for custom Bedrock endpoints or when routing through an [LLM gateway](/en/llm-gateway). See [Amazon Bedrock](/en/amazon-bedrock)", + "purpose": "Override the Amazon Bedrock endpoint URL. Use for custom Amazon Bedrock endpoints or when routing through an [LLM gateway](/en/llm-gateway). See [Amazon Bedrock](/en/amazon-bedrock)", "default": null }, { "name": "ANTHROPIC_BEDROCK_MANTLE_BASE_URL", - "purpose": "Override the Bedrock Mantle endpoint URL. See [Mantle endpoint](/en/amazon-bedrock#use-the-mantle-endpoint)", + "purpose": "Override the Amazon Bedrock Mantle endpoint URL. See [Mantle endpoint](/en/amazon-bedrock#use-the-mantle-endpoint)", "default": null }, { "name": "ANTHROPIC_BEDROCK_SERVICE_TIER", - "purpose": "Bedrock [service tier](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) (`default`, `flex`, or `priority`). Sent as the `X-Amzn-Bedrock-Service-Tier` header. See [Amazon Bedrock](/en/amazon-bedrock#service-tiers)", + "purpose": "Amazon Bedrock [service tier](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) (`default`, `flex`, or `priority`). Sent as the `X-Amzn-Bedrock-Service-Tier` header. See [Amazon Bedrock](/en/amazon-bedrock#service-tiers)", "default": null }, { @@ -78,6 +78,26 @@ "purpose": "See [Model configuration](/en/model-config#customize-pinned-model-display-and-capabilities)", "default": null }, + { + "name": "ANTHROPIC_DEFAULT_FABLE_MODEL", + "purpose": "See [Model configuration](/en/model-config#environment-variables)", + "default": null + }, + { + "name": "ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION", + "purpose": "See [Model configuration](/en/model-config#customize-pinned-model-display-and-capabilities)", + "default": null + }, + { + "name": "ANTHROPIC_DEFAULT_FABLE_MODEL_NAME", + "purpose": "See [Model configuration](/en/model-config#customize-pinned-model-display-and-capabilities)", + "default": null + }, + { + "name": "ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES", + "purpose": "See [Model configuration](/en/model-config#customize-pinned-model-display-and-capabilities)", + "default": null + }, { "name": "ANTHROPIC_DEFAULT_HAIKU_MODEL", "purpose": "See [Model configuration](/en/model-config#environment-variables)", @@ -145,12 +165,12 @@ }, { "name": "ANTHROPIC_FOUNDRY_BASE_URL", - "purpose": "Full base URL for the Foundry resource (for example, `https://my-resource.services.ai.azure.com/anthropic`). Alternative to `ANTHROPIC_FOUNDRY_RESOURCE` (see [Microsoft Foundry](/en/microsoft-foundry))", + "purpose": "Full base URL for the Microsoft Foundry resource (for example, `https://my-resource.services.ai.azure.com/anthropic`). Alternative to `ANTHROPIC_FOUNDRY_RESOURCE` (see [Microsoft Foundry](/en/microsoft-foundry))", "default": null }, { "name": "ANTHROPIC_FOUNDRY_RESOURCE", - "purpose": "Foundry resource name (for example, `my-resource`). Required if `ANTHROPIC_FOUNDRY_BASE_URL` is not set (see [Microsoft Foundry](/en/microsoft-foundry))", + "purpose": "Microsoft Foundry resource name (for example, `my-resource`). Required if `ANTHROPIC_FOUNDRY_BASE_URL` is not set (see [Microsoft Foundry](/en/microsoft-foundry))", "default": null }, { @@ -165,17 +185,17 @@ }, { "name": "ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION", - "purpose": "Override AWS region for the Haiku-class model when using Bedrock or Bedrock Mantle. On Bedrock, this only takes effect when `ANTHROPIC_DEFAULT_HAIKU_MODEL` or the deprecated `ANTHROPIC_SMALL_FAST_MODEL` is also set, since Bedrock otherwise uses the primary model for background tasks", + "purpose": "Override AWS region for the Haiku-class model when using Amazon Bedrock or Amazon Bedrock Mantle. On Amazon Bedrock, this only takes effect when `ANTHROPIC_DEFAULT_HAIKU_MODEL` or the deprecated `ANTHROPIC_SMALL_FAST_MODEL` is also set, since Amazon Bedrock otherwise uses the primary model for background tasks", "default": null }, { "name": "ANTHROPIC_VERTEX_BASE_URL", - "purpose": "Override the Vertex AI endpoint URL. Use for custom Vertex endpoints or when routing through an [LLM gateway](/en/llm-gateway). See [Google Vertex AI](/en/google-vertex-ai)", + "purpose": "Override Google Cloud's Agent Platform endpoint URL. Use for custom Google Cloud's Agent Platform endpoints or when routing through an [LLM gateway](/en/llm-gateway). See [Google Cloud's Agent Platform](/en/google-vertex-ai)", "default": null }, { "name": "ANTHROPIC_VERTEX_PROJECT_ID", - "purpose": "GCP project ID for Vertex AI requests. Overridden by `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT`, or the project in your `GOOGLE_APPLICATION_CREDENTIALS` credential file. See [Google Vertex AI](/en/google-vertex-ai)", + "purpose": "GCP project ID for Google Cloud's Agent Platform requests. Overridden by `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT`, or the project in your `GOOGLE_APPLICATION_CREDENTIALS` credential file. See [Google Cloud's Agent Platform](/en/google-vertex-ai)", "default": null }, { @@ -183,6 +203,11 @@ "purpose": "Workspace ID for [workload identity federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Set this when your federation rule is scoped to more than one workspace so the token exchange knows which workspace to target", "default": null }, + { + "name": "API_FORCE_IDLE_TIMEOUT", + "purpose": "{/* min-version: 2.1.169 */}Override the 5-minute idle timeout that aborts a streaming model response when no bytes arrive. Set to `0` to disable the timeout, for example when a slow [gateway](/en/llm-gateway) or local model pauses longer than 5 minutes between chunks. Set to `1` to keep the timeout on every provider. When unset, the timeout is inactive on direct Anthropic API and [Claude Platform on AWS](/en/claude-platform-on-aws) connections, where Claude Code's own byte-level stream watchdog runs, and active on every other provider, including [Google Cloud's Agent Platform](/en/google-vertex-ai), [Microsoft Foundry](/en/microsoft-foundry), [Mantle](/en/amazon-bedrock#use-the-mantle-endpoint), [Amazon Bedrock](/en/amazon-bedrock), and gateway connections, so a stalled stream aborts instead of hanging. As of v2.1.169", + "default": null + }, { "name": "API_TIMEOUT_MS", "purpose": "Timeout for API requests in milliseconds (default: 600000, or 10 minutes; maximum: 2147483647). Increase this when requests time out on slow networks or when routing through a proxy. Values above the maximum overflow the underlying timer and cause requests to fail immediately", @@ -190,7 +215,7 @@ }, { "name": "AWS_BEARER_TOKEN_BEDROCK", - "purpose": "Bedrock API key for authentication (see [Bedrock API keys](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/))", + "purpose": "Amazon Bedrock API key for authentication (see [Amazon Bedrock API keys](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/))", "default": null }, { @@ -210,7 +235,17 @@ }, { "name": "CCR_FORCE_BUNDLE", - "purpose": "Set to `1` to force [`claude --remote`](/en/claude-code-on-the-web#send-local-repositories-without-github) to bundle and upload your local repository even when GitHub access is available", + "purpose": "Set to `1` to force [`claude --cloud`](/en/claude-code-on-the-web#send-local-repositories-without-github) to bundle and upload your local repository even when GitHub access is available", + "default": null + }, + { + "name": "CLAUDE_AFK_COUNTDOWN_MS", + "purpose": "{/* min-version: 2.1.198 */}How many milliseconds before auto-continue the on-screen countdown appears on an unanswered [`AskUserQuestion`](/en/tools-reference) dialog. Default `20000` (20 seconds), capped at the auto-continue timeout. Has no effect unless auto-continue is on; see the [`askUserQuestionTimeout`](/en/settings#available-settings) setting and `CLAUDE_AFK_TIMEOUT_MS`. Requires Claude Code v2.1.198 or later", + "default": null + }, + { + "name": "CLAUDE_AFK_TIMEOUT_MS", + "purpose": "{/* min-version: 2.1.198 */}How many milliseconds of idle time before an unanswered [`AskUserQuestion`](/en/tools-reference) dialog auto-continues without you. {/* min-version: 2.1.200 */}Auto-continue is off by default; opt in with the [`askUserQuestionTimeout`](/en/settings#available-settings) setting. This variable is an override for demos and automated tests: when set, it takes precedence over that setting and turns auto-continue on even when the setting is unset or `never`. Setting `0` doesn't turn the timeout off; it closes the dialog immediately. In v2.1.198 and v2.1.199, auto-continue was on by default with a `60000` (60 seconds) timeout. Requires Claude Code v2.1.198 or later", "default": null }, { @@ -235,7 +270,12 @@ }, { "name": "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE", - "purpose": "Set the percentage of context capacity (1-100) at which auto-compaction triggers. By default, auto-compaction triggers at approximately 95% capacity. Use lower values like `50` to compact earlier. Values above the default threshold have no effect. Applies to both main conversations and subagents. This percentage aligns with the `context_window.used_percentage` field available in [status line](/en/statusline)", + "purpose": "Set the percentage (1-100) of the auto-compaction window at which auto-compaction triggers. Use lower values like `50` to compact earlier. This variable only causes earlier compaction when Claude Code compacts proactively: when `CLAUDE_CODE_AUTO_COMPACT_WINDOW` is set, in [cloud sessions](/en/claude-code-on-the-web), and on Sonnet 4.6 and Opus 4.6 without [extended context](/en/model-config#extended-context), which compact at the 200K boundary by default. On Sonnet 5, proactive compaction applies at the model's [default threshold](/en/model-config#sonnet-5-context-window). In other cases, such as a local session on Opus 4.8, auto-compaction triggers when the conversation reaches the model's context limit. The override can only lower the threshold, so values above the default have no effect. Applies to both main conversations and subagents", + "default": null + }, + { + "name": "CLAUDE_AX_SCREEN_READER", + "purpose": "{/* min-version: 2.1.181 */}Set to `1` to render screen-reader friendly output: flat text without decorative borders or animations. Set to `0` to force screen-reader mode off even when [`axScreenReader`](/en/settings#available-settings) is `true`. The [`--ax-screen-reader`](/en/cli-reference#cli-flags) flag takes precedence. Requires Claude Code v2.1.181 or later", "default": null }, { @@ -243,6 +283,11 @@ "purpose": "Return to the original working directory after each Bash or PowerShell command in the main session", "default": null }, + { + "name": "CLAUDE_CLIENT_PRESENCE_FILE", + "purpose": "{/* min-version: 2.1.181 */}Path to a file that an external tool, such as a screen-lock listener, creates when you unlock your screen and deletes when you lock it. While the file exists, Claude Code skips [Remote Control mobile push notifications](/en/remote-control#mobile-push-notifications), so you stop getting pushes while you are actively using the computer. When the file is absent or unreadable, notifications are sent as normal. Claude Code checks the file once per push-triggering event rather than polling it. Requires Claude Code v2.1.181 or later", + "default": null + }, { "name": "CLAUDE_CODE_ACCESSIBILITY", "purpose": "Set to `1` to keep the native terminal cursor visible and disable the inverted-text cursor indicator. Allows screen magnifiers like macOS Zoom to track cursor position", @@ -253,19 +298,34 @@ "purpose": "Set to `1` to load memory files from directories specified with `--add-dir`. Loads `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md`, and `CLAUDE.local.md`. By default, additional directories do not load memory files", "default": null }, + { + "name": "CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT", + "purpose": "Set to `1` to repaint the entire screen on every frame in [fullscreen rendering](/en/fullscreen) instead of sending incremental updates. Use this if fullscreen mode shows stale or misplaced text fragments. Claude Code enables this automatically for background sessions and [agent view](/en/agent-view) on Windows", + "default": null + }, + { + "name": "CLAUDE_CODE_ALWAYS_ENABLE_EFFORT", + "purpose": "Set to `1` to send the [effort](/en/model-config#adjust-effort-level) parameter with every request, even when Claude Code does not recognize the model ID as effort-capable. Use this when routing through an [LLM gateway](/en/llm-gateway) or third-party provider that serves models under custom identifiers. Models that reject the effort parameter at the API, including Claude 3 models, Sonnet 4.0 and 4.5, Opus 4.0 and 4.1, and Haiku 4.5, are still excluded so requests do not fail", + "default": null + }, { "name": "CLAUDE_CODE_API_KEY_HELPER_TTL_MS", "purpose": "Interval in milliseconds at which credentials should be refreshed (when using [`apiKeyHelper`](/en/settings#available-settings))", "default": null }, + { + "name": "CLAUDE_CODE_ARTIFACT_AUTO_OPEN", + "purpose": "Set to `0` to stop Claude Code from opening the browser automatically when a new [artifact](/en/artifacts) is published. Republishing an existing artifact does not open the browser regardless of this setting", + "default": null + }, { "name": "CLAUDE_CODE_ATTRIBUTION_HEADER", - "purpose": "Set to `0` to omit the attribution block (client version and prompt fingerprint) from the start of the system prompt. Disabling it improves prompt-cache hit rates when routing through an [LLM gateway](/en/llm-gateway). Anthropic API caching is unaffected", + "purpose": "Set to `0` to omit the attribution block (client version and prompt fingerprint) from the start of the system prompt. Disabling it improves prompt-cache hit rates when routing through an [LLM gateway](/en/llm-gateway). Caching on a direct connection to the Anthropic API is unaffected either way", "default": null }, { "name": "CLAUDE_CODE_AUTO_COMPACT_WINDOW", - "purpose": "Set the context capacity in tokens used for auto-compaction calculations. Defaults to the model's context window: 200K for standard models or 1M for [extended context](/en/model-config#extended-context) models. Use a lower value like `500000` on a 1M model to treat the window as 500K for compaction purposes. The value is capped at the model's actual context window. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` is applied as a percentage of this value. Setting this variable decouples the compaction threshold from the status line's `used_percentage`, which always uses the model's full context window", + "purpose": "Set the context capacity in tokens used for auto-compaction calculations. Defaults to the model's context window, 200K for standard models or 1M for [extended context](/en/model-config#extended-context) models, except on Sonnet 5, which has its own [default threshold](/en/model-config#sonnet-5-context-window). Use a lower value like `500000` on a 1M model to treat the window as 500K for compaction purposes. The value is capped at the model's actual context window. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` is applied as a percentage of this value. Setting this variable decouples the compaction threshold from the status line's `used_percentage`, which always uses the model's full context window", "default": null }, { @@ -273,9 +333,19 @@ "purpose": "Override automatic [IDE connection](/en/vs-code). By default, Claude Code connects automatically when launched inside a supported IDE's integrated terminal. Set to `false` to prevent this. Set to `true` to force a connection attempt when auto-detection fails, such as when tmux obscures the parent terminal. Takes precedence over the [`autoConnectIde`](/en/settings#global-config-settings) global config setting", "default": null }, + { + "name": "CLAUDE_CODE_BRIDGE_SESSION_ID", + "purpose": "{/* min-version: 2.1.199 */}Set automatically in Bash tool and [hook command](/en/hooks) subprocesses while the session has an active [Remote Control](/en/remote-control) connection, and removed when the connection ends. The value is the session's ID in `session_` form, the same identifier that appears in the session's `claude.ai/code` URL, so a script can link back to the session that ran it. Requires Claude Code v2.1.199 or later. In [cloud sessions](/en/claude-code-on-the-web), read `CLAUDE_CODE_REMOTE_SESSION_ID` instead", + "default": null + }, { "name": "CLAUDE_CODE_CERT_STORE", - "purpose": "Comma-separated list of CA certificate sources for TLS connections. `bundled` is the Mozilla CA set shipped with Claude Code. `system` is the operating system trust store. Default is `bundled,system`", + "purpose": "Comma-separated list of CA certificate sources for TLS connections. `bundled` is the Mozilla CA set shipped with Claude Code. `system` is the operating system trust store, read only on runtimes with `tls.getCACertificates`: the native binary, or Node 22.15 or later for npm installs. See [CA certificate store](/en/network-config#ca-certificate-store). Default is `bundled,system`", + "default": null + }, + { + "name": "CLAUDE_CODE_CHILD_SESSION", + "purpose": "{/* min-version: 2.1.172 */}Set to `1` in subprocesses Claude Code spawns via the Bash, PowerShell, and Monitor tools, [hook](/en/hooks) commands, and [status line](/en/statusline) commands. Not set for stdio [MCP server](/en/mcp) subprocesses, which are long-lived and outlive the session that spawned them. Unlike `CLAUDECODE`, this is only set by Claude Code itself when it launches a subprocess and not by IDE extensions, so it reliably distinguishes a nested session from a top-level `claude` launched in an IDE-integrated terminal. A nested interactive `claude` TUI started this way is automatically excluded from `--resume`, `--continue`, up-arrow history, and the `claude agents` list. Non-interactive `claude -p` sessions still persist. Set `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` to override this exclusion. Requires Claude Code v2.1.172 or later", "default": null }, { @@ -293,6 +363,11 @@ "purpose": "Passphrase for encrypted CLAUDE\\_CODE\\_CLIENT\\_KEY (optional)", "default": null }, + { + "name": "CLAUDE_CODE_CONNECT_TIMEOUT_MS", + "purpose": "{/* max-version: 2.1.185 */}Removed in v2.1.186 and now a no-op. Previously set a separate timeout for the connect, TLS, and response-header phase of a streaming API request. Use `API_TIMEOUT_MS` for the per-request timeout", + "default": null + }, { "name": "CLAUDE_CODE_DEBUG_LOG_LEVEL", "purpose": "Minimum log level written to the debug log file. Values: `verbose`, `debug` (default), `info`, `warn`, `error`. Set to `verbose` to include high-volume diagnostics like full status line command output, or raise to `error` to reduce noise", @@ -305,12 +380,17 @@ }, { "name": "CLAUDE_CODE_DISABLE_1M_CONTEXT", - "purpose": "Set to `1` to disable [1M context window](/en/model-config#extended-context) support. When set, 1M model variants are unavailable in the model picker. Useful for enterprise environments with compliance requirements", + "purpose": "Set to `1` to disable [1M context window](/en/model-config#extended-context) support. When set, 1M model variants are unavailable in the model picker, and [Sonnet 5](/en/model-config#sonnet-5-context-window) sessions are treated as having a 200K window. Useful for enterprise environments with compliance requirements", "default": null }, { "name": "CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING", - "purpose": "Set to `1` to disable [adaptive reasoning](/en/model-config#adjust-effort-level) on Opus 4.6 and Sonnet 4.6 and fall back to the fixed thinking budget controlled by `MAX_THINKING_TOKENS`. {/* min-version: 2.1.111 */}Has no effect on Opus 4.7, which always uses adaptive reasoning", + "purpose": "Set to `1` to disable [adaptive reasoning](/en/model-config#adjust-effort-level) on Opus 4.6 and Sonnet 4.6 and fall back to the fixed thinking budget controlled by `MAX_THINKING_TOKENS`. {/* min-version: 2.1.111 */}From v2.1.111, has no effect on Fable 5, Sonnet 5, or Opus 4.7 and later, which always use adaptive reasoning", + "default": null + }, + { + "name": "CLAUDE_CODE_DISABLE_ADVISOR_TOOL", + "purpose": "{/* min-version: 2.1.98 */}Set to `1` to disable the [advisor tool](/en/advisor). The `/advisor` command becomes unavailable, any configured `advisorModel` is ignored, and the `--advisor` flag is accepted but has no effect, so existing scripts that pass it continue to work without errors. Requires Claude Code v2.1.98 or later", "default": null }, { @@ -320,7 +400,12 @@ }, { "name": "CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN", - "purpose": "Set to `1` to disable [fullscreen rendering](/en/fullscreen) and use the classic main-screen renderer. The conversation stays in your terminal's native scrollback so `Cmd+f` and tmux copy mode work as usual. Takes precedence over `CLAUDE_CODE_NO_FLICKER` and the [`tui`](/en/settings#available-settings) setting. You can also switch with `/tui default`", + "purpose": "Set to `1` to disable [fullscreen rendering](/en/fullscreen) and use the classic main-screen renderer. The conversation stays in your terminal's native scrollback so `Cmd+f` and tmux copy mode work as usual. Takes precedence over `CLAUDE_CODE_NO_FLICKER` and the [`tui`](/en/settings#available-settings) setting. You can also switch with `/tui default`. Does not apply to background sessions opened from [agent view](/en/agent-view), which always use fullscreen rendering", + "default": null + }, + { + "name": "CLAUDE_CODE_DISABLE_ARTIFACT", + "purpose": "Set to `1` to disable the [Artifact](/en/artifacts) tool, which publishes session output as a private web page on claude.ai. Equivalent to the [`disableArtifact`](/en/settings#available-settings) setting", "default": null }, { @@ -338,6 +423,21 @@ "purpose": "Set to `1` to disable all background task functionality, including the `run_in_background` parameter on Bash and subagent tools, auto-backgrounding, and the Ctrl+B shortcut", "default": null }, + { + "name": "CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF", + "purpose": "{/* min-version: 2.1.196 */}Set to `1` to stop a [background session's](/en/agent-view) running background shell commands, dynamic workflows, {/* min-version: 2.1.198 */}and, as of v2.1.198, background subagents when the [supervisor](/en/agent-view#the-supervisor-process) stops, restarts, or updates that session's process, instead of handing them to the session's next process. Affects only that handoff: backgrounding a session with `←` or [`/background`](/en/agent-view#from-inside-a-session) still carries in-flight work over, and `CLAUDE_DISABLE_ADOPT` turns off both. Requires Claude Code v2.1.196 or later", + "default": null + }, + { + "name": "CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP", + "purpose": "{/* min-version: 2.1.193 */}Set to `1` to stop Claude Code from terminating [background shell commands](/en/interactive-mode#background-bash-commands) when the operating system reports memory pressure. By default, on macOS and Linux, Claude Code terminates a background shell started in the main session on a memory-pressure signal once the session has been idle for 30 minutes and no turn or subagent is running. Windows has no memory-pressure signal, so this variable has no effect there. Requires Claude Code v2.1.193 or later", + "default": null + }, + { + "name": "CLAUDE_CODE_DISABLE_BUNDLED_SKILLS", + "purpose": "Set to `1` to disable the [skills](/en/skills) and workflows that ship with Claude Code: bundled skills and workflows are removed entirely, while built-in slash commands like `/init` stay typable but are hidden from the model. Skills from plugins, `.claude/skills/`, and `.claude/commands/` are unaffected. Equivalent to the [`disableBundledSkills`](/en/settings#available-settings) setting; `0` does not override it", + "default": null + }, { "name": "CLAUDE_CODE_DISABLE_CLAUDE_MDS", "purpose": "Set to `1` to prevent loading any CLAUDE.md memory files into context, including user, project, and auto-memory files", @@ -350,7 +450,12 @@ }, { "name": "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS", - "purpose": "Set to `1` to strip Anthropic-specific `anthropic-beta` request headers and beta tool-schema fields (such as `defer_loading` and `eager_input_streaming`) from API requests. Use this when a proxy gateway rejects requests with errors like \"Unexpected value(s) for the `anthropic-beta` header\" or \"Extra inputs are not permitted\". Standard fields (`name`, `description`, `input_schema`, `cache_control`) are preserved.", + "purpose": "Set to `1` to strip Anthropic-specific `anthropic-beta` request headers and beta tool-schema fields (such as `defer_loading` and `eager_input_streaming`) from API requests. Use this when a proxy gateway rejects requests with errors like \"Unexpected value(s) for the `anthropic-beta` header\" or \"Extra inputs are not permitted\". Standard fields (`name`, `description`, `input_schema`, `cache_control`) are preserved", + "default": null + }, + { + "name": "CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS", + "purpose": "{/* min-version: 2.1.198 */}Set to `1` to disable the built-in [Explore and Plan subagents](/en/sub-agents#built-in-subagents). Claude explores with its search tools or the general-purpose subagent instead, and [plan mode](/en/permission-modes#analyze-before-you-edit-with-plan-mode) reads files directly rather than launching Explore and Plan agents. Custom subagents named `Explore` or `Plan` are unaffected. To remove every built-in subagent type in the Agent SDK or non-interactive mode, use `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` instead. Requires Claude Code v2.1.198 or later", "default": null }, { @@ -375,7 +480,7 @@ }, { "name": "CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP", - "purpose": "Set to `1` to prevent automatic remapping of Opus 4.0 and 4.1 to the current Opus version on the Anthropic API. Use when you intentionally want to pin an older model. The remap does not run on Bedrock, Vertex, or Foundry", + "purpose": "Set to `1` to prevent automatic remapping of Opus 4.0 and 4.1 to the current Opus version on the Anthropic API. Use when you intentionally want to pin an older model. The remap does not run on Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry", "default": null }, { @@ -383,6 +488,11 @@ "purpose": "Set to `1` to disable mouse tracking in [fullscreen rendering](/en/fullscreen). Keyboard scrolling with `PgUp` and `PgDn` still works. Use this to keep your terminal's native copy-on-select behavior", "default": null }, + { + "name": "CLAUDE_CODE_DISABLE_MOUSE_CLICKS", + "purpose": "{/* min-version: 2.1.195 */}Set to `1` to disable click, drag, and hover handling in [fullscreen rendering](/en/fullscreen) while keeping mouse-wheel scrolling. Use this when you want wheel scroll to work inside Claude Code but don't want clicks to position the cursor, expand tool output, or open links. `CLAUDE_CODE_DISABLE_MOUSE` takes precedence when both are set. Requires Claude Code v2.1.195 or later", + "default": null + }, { "name": "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC", "purpose": "Equivalent of setting `DISABLE_AUTOUPDATER`, `DISABLE_FEEDBACK_COMMAND`, `DISABLE_ERROR_REPORTING`, and `DISABLE_TELEMETRY`", @@ -393,6 +503,11 @@ "purpose": "Set to `1` to disable the non-streaming fallback when a streaming request fails mid-stream. Streaming errors propagate to the retry layer instead. Useful when a proxy or gateway causes the fallback to produce duplicate tool execution", "default": null }, + { + "name": "CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK", + "purpose": "{/* min-version: 2.1.193 */}Set to `1` to send the `PushNotification` tool's desktop notification even while you are typing in or focused on the terminal. By default the tool skips both the desktop notification and the [mobile push](/en/remote-control#mobile-push-notifications) when it detects recent keyboard activity or terminal focus. This variable disables only that local check, so the server can still suppress the mobile push when it detects that you are active. Requires Claude Code v2.1.193 or later", + "default": null + }, { "name": "CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL", "purpose": "Set to `1` to skip automatic addition of the official plugin marketplace on first run", @@ -405,12 +520,12 @@ }, { "name": "CLAUDE_CODE_DISABLE_TERMINAL_TITLE", - "purpose": "Set to `1` to disable automatic terminal title updates based on conversation context", + "purpose": "Set to `1` to disable automatic terminal title updates based on conversation context. In Agent SDK and `claude -p` sessions, this also skips the background Haiku request that generates the session title", "default": null }, { "name": "CLAUDE_CODE_DISABLE_THINKING", - "purpose": "Set to `1` to force-disable [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) regardless of model support or other settings. More direct than `MAX_THINKING_TOKENS=0`", + "purpose": "Set to `1` to omit the `thinking` parameter from API requests entirely. This is a compatibility option for proxies and gateways that reject the parameter. The variable's behavior is unchanged from earlier versions; on models that think by default, omitting the parameter means the model may still think. To explicitly disable [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) on the Anthropic API, use `MAX_THINKING_TOKENS=0` instead, which is also ineffective on Fable 5 since it cannot have thinking turned off. On [third-party providers](/en/third-party-integrations), `0` likewise omits the parameter, so the two variables behave the same there", "default": null }, { @@ -418,11 +533,21 @@ "purpose": "Set to `1` to disable virtual scrolling in [fullscreen rendering](/en/fullscreen) and render every message in the transcript. Use this if scrolling in fullscreen mode shows blank regions where messages should appear", "default": null }, + { + "name": "CLAUDE_CODE_DISABLE_WORKFLOWS", + "purpose": "Set to `1` to disable [workflows](/en/workflows#turn-workflows-off). Equivalent to the [`disableWorkflows`](/en/settings#available-settings) setting", + "default": null + }, { "name": "CLAUDE_CODE_EFFORT_LEVEL", "purpose": "Set the effort level for supported models. Values: `low`, `medium`, `high`, `xhigh`, `max`, or `auto` to use the model default. Available levels depend on the model. Takes precedence over `/effort` and the `effortLevel` setting. See [Adjust effort level](/en/model-config#adjust-effort-level)", "default": null }, + { + "name": "CLAUDE_CODE_ENABLE_AUTO_MODE", + "purpose": "{/* min-version: 2.1.158 */}Set to `1` to make [auto mode](/en/permission-modes#eliminate-prompts-with-auto-mode) available on Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, and signed-in [Claude apps gateway](/en/claude-apps-gateway) sessions. Requires Claude Code v2.1.158 or later. Has no effect on the Anthropic API, where auto mode is available by default. See [Enable auto mode on Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry](/en/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry)", + "default": null + }, { "name": "CLAUDE_CODE_ENABLE_AWAY_SUMMARY", "purpose": "Override [session recap](/en/interactive-mode#session-recap) availability. Set to `0` to force recaps off regardless of the `/config` toggle. Set to `1` to force recaps on when [`awaySummaryEnabled`](/en/settings#available-settings) is `false`. Takes precedence over the setting and `/config` toggle", @@ -430,7 +555,7 @@ }, { "name": "CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH", - "purpose": "Set to `1` to refresh plugin state at turn boundaries in [non-interactive mode](/en/headless) after a background install completes. Off by default because the refresh changes the system prompt mid-session, which invalidates [prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) for that turn", + "purpose": "Set to `1` to refresh plugin state at turn boundaries in [non-interactive mode](/en/headless) after a background install completes. Off by default because the refresh changes the system prompt mid-session, which invalidates [prompt caching](/en/prompt-caching) for that turn", "default": null }, { @@ -440,17 +565,17 @@ }, { "name": "CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING", - "purpose": "Controls whether tool call inputs stream from the API as Claude generates them. With this off, a large tool input such as a long file write arrives only after Claude finishes generating it, which can look like it's hanging. Enabled by default on the Anthropic API. On Bedrock and Vertex, enabled per model where the deployed container supports it. Set to `0` to opt out. Set to `1` to force on when routing through a proxy via `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, or `ANTHROPIC_BEDROCK_BASE_URL`. Off by default on Foundry and [gateway](/en/llm-gateway) connections", + "purpose": "Controls whether tool call inputs stream from the API as Claude generates them. With this off, a large tool input such as a long file write arrives only after Claude finishes generating it, which can look like it's hanging. Enabled by default on the Anthropic API. On Amazon Bedrock and Google Cloud's Agent Platform, enabled per model where the deployed container supports it. Set to `0` to opt out. Set to `1` to force on when routing through a proxy via `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, or `ANTHROPIC_BEDROCK_BASE_URL`. Off by default on Microsoft Foundry and [gateway](/en/llm-gateway) connections", "default": null }, { "name": "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY", - "purpose": "Set to `1` to populate the `/model` picker from your gateway's `/v1/models` endpoint when `ANTHROPIC_BASE_URL` points at an Anthropic-compatible gateway such as LiteLLM, Kong, or an internal proxy. Off by default because gateways backed by a shared API key would otherwise show every user every model the key can access. Discovered models are still filtered by the [`availableModels`](/en/settings#available-settings) allowlist", + "purpose": "Set to `1` to populate the `/model` picker from your gateway's `/v1/models` endpoint when `ANTHROPIC_BASE_URL` points at an Anthropic-compatible gateway such as LiteLLM, Kong, or an internal proxy. Off by default because gateways backed by a shared API key would otherwise show every user every model the key can access. Discovered models are still filtered by an [`availableModels`](/en/settings#available-settings) allowlist the session receives; deliver the list through [MDM or a managed settings file](/en/settings#settings-files), since [server-managed delivery is not available on gateway configurations](/en/server-managed-settings#platform-availability)", "default": null }, { "name": "CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE", - "purpose": "Set to `1` to run [fast mode](/en/fast-mode) on Claude Opus 4.7 instead of Opus 4.6. With the variable set, `/fast` switches to Opus 4.7; without it, `/fast` continues to use Opus 4.6", + "purpose": "{/* max-version: 2.1.141 */}Removed in v2.1.142, when the [fast mode](/en/fast-mode) default moved from Opus 4.6 to Opus 4.7", "default": null }, { @@ -460,7 +585,7 @@ }, { "name": "CLAUDE_CODE_ENABLE_TASKS", - "purpose": "Set to `1` to enable the task tracking system in non-interactive mode (the `-p` flag). Tasks are on by default in interactive mode. See [Task list](/en/interactive-mode#task-list)", + "purpose": "Controls whether sessions use the structured Task tools (`TaskCreate`, `TaskUpdate`, `TaskGet`, `TaskList`) or the legacy `TodoWrite` tool. {/* min-version: 2.1.142 */}As of Claude Code v2.1.142, Task tools are the default in all modes. Set to `0` to revert to `TodoWrite`. See [Task list](/en/interactive-mode#task-list) and [Migrate to Task tools](/en/agent-sdk/todo-tracking#migrate-to-task-tools)", "default": null }, { @@ -488,6 +613,16 @@ "purpose": "Override the default token limit for file reads. Useful when you need to read larger files in full", "default": null }, + { + "name": "CLAUDE_CODE_FORCE_SESSION_PERSISTENCE", + "purpose": "{/* min-version: 2.1.172 */}Set to `1` to force transcript persistence, prompt history, and `claude agents` registration even when this `claude` was launched from inside another Claude Code session. Use when an inherited `CLAUDE_CODE_CHILD_SESSION` value, for example from a `screen` session or a background launcher first started by Claude Code's Bash tool, causes a genuine top-level session to be misclassified as nested. {/* min-version: 2.1.178 */}As of v2.1.178, Claude Code detects the tmux case automatically and ignores the inherited marker, so tmux no longer needs this variable. Also honored on v2.1.169 and earlier; has no effect on v2.1.170 and v2.1.171, where the nested-session detection it overrides was removed", + "default": null + }, + { + "name": "CLAUDE_CODE_FORCE_STRIKETHROUGH", + "purpose": "{/* min-version: 2.1.186 */}Set to `1` to force strikethrough rendering for `~~text~~` in Claude's responses when your terminal supports it but is not auto-detected, such as over SSH without `TERM_PROGRAM` forwarded. Without this, undetected terminals show the literal `~~` markers instead of rendering the text as strikethrough. Requires Claude Code v2.1.186 or later", + "default": null + }, { "name": "CLAUDE_CODE_FORCE_SYNC_OUTPUT", "purpose": "Set to `1` to force-enable DEC private mode 2026 [synchronized output](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) when your terminal supports it but is not auto-detected. Useful for emulators such as Emacs `eat` that implement BSU/ESU but do not reply to the capability probe. Has no effect under tmux", @@ -495,7 +630,7 @@ }, { "name": "CLAUDE_CODE_FORK_SUBAGENT", - "purpose": "Set to `1` to enable [forked subagents](/en/sub-agents#fork-the-current-conversation). A forked subagent inherits the full conversation context from the main session instead of starting fresh. When enabled, `/fork` spawns a forked subagent rather than acting as an alias for [`/branch`](/en/commands), and all subagent spawns run in the background. Works in interactive mode and via the SDK or `claude -p`", + "purpose": "Set to `1` to let Claude spawn [forked subagents](/en/sub-agents#fork-the-current-conversation), or `0` to disable them, overriding any server-side rollout. When enabled, Claude can request the `fork` subagent type to spawn a fork, a subagent that inherits the full conversation context instead of starting fresh. Spawns without a subagent type still use the general-purpose subagent, and all subagent spawns run in the background. The explicit [`/fork`](/en/commands) command works without this variable. Works in interactive mode and via the SDK or `claude -p`", "default": null }, { @@ -530,7 +665,7 @@ }, { "name": "CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL", - "purpose": "Skip auto-installation of IDE extensions. Equivalent to setting [`autoInstallIdeExtension`](/en/settings#global-config-settings) to `false`", + "purpose": "Set to `1` to skip auto-installation of IDE extensions. Equivalent to setting [`autoInstallIdeExtension`](/en/settings#global-config-settings) to `false`", "default": null }, { @@ -540,17 +675,17 @@ }, { "name": "CLAUDE_CODE_MAX_CONTEXT_TOKENS", - "purpose": "Override the context window size Claude Code assumes for the active model. Only takes effect when `DISABLE_COMPACT` is also set. Use this when routing to a model through `ANTHROPIC_BASE_URL` whose context window does not match the built-in size for its name", + "purpose": "Override the context window size Claude Code assumes for the active model. {/* min-version: 2.1.193 */}As of v2.1.193, applied directly for model names Claude Code does not recognize as a Claude model; for recognized Claude models it only takes effect when `DISABLE_COMPACT` is also set. Use this when routing to a model through `ANTHROPIC_BASE_URL` whose context window does not match the built-in size for its name", "default": null }, { "name": "CLAUDE_CODE_MAX_OUTPUT_TOKENS", - "purpose": "Set the maximum number of output tokens for most requests. Defaults and caps vary by model; see [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Increasing this value reduces the effective context window available before [auto-compaction](/en/costs#reduce-token-usage) triggers.", + "purpose": "Set the maximum number of output tokens for most requests. Defaults and caps vary by model; see [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Increasing this value reduces the effective context window available before [auto-compaction](/en/costs#reduce-token-usage) triggers", "default": null }, { "name": "CLAUDE_CODE_MAX_RETRIES", - "purpose": "Override the number of times to retry failed API requests (default: 10)", + "purpose": "Override the number of times to retry failed API requests (default: 10). {/* min-version: 2.1.186 */}Capped at 15 as of v2.1.186; {/* min-version: 2.1.199 */}as of v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` raises the default and removes the cap. For unattended sessions that need to wait through longer outages, set `CLAUDE_CODE_RETRY_WATCHDOG` instead", "default": "10" }, { @@ -568,6 +703,11 @@ "purpose": "Set to `1` to spawn stdio MCP servers with only a safe baseline environment plus the server's configured `env`, instead of inheriting your shell environment", "default": null }, + { + "name": "CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT", + "purpose": "{/* min-version: 2.1.187 */}Idle timeout in milliseconds for remote MCP tool calls (default: 300000, or 5 minutes). When an HTTP, SSE, WebSocket, or [claude.ai connector](/en/mcp#use-mcp-servers-from-claude-ai) MCP server sends no response and no progress notification for this long, the tool call aborts with an error instead of waiting for the overall `MCP_TOOL_TIMEOUT`. Set to `0` to disable the idle check. Values below 1000 are raised to one second, and the value is capped at the effective `MCP_TOOL_TIMEOUT`. Does not apply to stdio or IDE servers. Requires Claude Code v2.1.187 or later", + "default": "300000" + }, { "name": "CLAUDE_CODE_NATIVE_CURSOR", "purpose": "Set to `1` to show the terminal's own cursor at the input caret instead of a drawn block. The cursor respects the terminal's blink, shape, and focus settings", @@ -575,7 +715,7 @@ }, { "name": "CLAUDE_CODE_NEW_INIT", - "purpose": "Set to `1` to make `/init` run an interactive setup flow. The flow asks which files to generate, including CLAUDE.md, skills, and hooks, before exploring the codebase and writing them. Without this variable, `/init` generates a CLAUDE.md automatically without prompting.", + "purpose": "Set to `1` to make `/init` run an interactive setup flow. The flow asks which files to generate, including CLAUDE.md, skills, and hooks, before exploring the codebase and writing them. Without this variable, `/init` generates a CLAUDE.md automatically without prompting", "default": null }, { @@ -600,7 +740,12 @@ }, { "name": "CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE", - "purpose": "Set to `1` to keep [fast mode](/en/fast-mode) on Claude Opus 4.6. Takes precedence over `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE`, so set this if you need to pin Opus 4.6 regardless of how the default changes", + "purpose": "{/* max-version: 2.1.159 */}Removed in v2.1.160 and now a no-op. Previously pinned [fast mode](/en/fast-mode) to Claude Opus 4.6 instead of the current default. Opus 4.6 no longer supports fast mode", + "default": null + }, + { + "name": "CLAUDE_CODE_OTEL_DIAG_STDERR", + "purpose": "{/* min-version: 2.1.179 */}Set to `1` to write OpenTelemetry exporter diagnostic errors to stderr. By default these errors only appear with `--debug`, so a misconfigured exporter such as a Prometheus port collision otherwise fails silently. Requires Claude Code v2.1.179 or later. See [Monitoring](/en/monitoring-usage)", "default": null }, { @@ -645,7 +790,7 @@ }, { "name": "CLAUDE_CODE_PLUGIN_PREFER_HTTPS", - "purpose": "Set to `1` to clone GitHub `owner/repo` plugin sources over HTTPS instead of SSH. Useful in CI runners, containers, or any environment without a configured SSH key for `github.com`", + "purpose": "Set to `1` to clone GitHub `owner/repo` shorthand sources over HTTPS instead of SSH. Applies to plugin install and update, and to `/plugin marketplace add` and `update`. Useful in CI runners, containers, or any environment without a configured SSH key for `github.com`", "default": null }, { @@ -653,9 +798,24 @@ "purpose": "Path to one or more read-only plugin seed directories, separated by `:` on Unix or `;` on Windows. Use this to bundle a pre-populated plugins directory into a container image. Claude Code registers marketplaces from these directories at startup and uses pre-cached plugins without re-cloning. See [Pre-populate plugins for containers](/en/plugin-marketplaces#pre-populate-plugins-for-containers)", "default": null }, + { + "name": "CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY", + "purpose": "Set to `1` to stop Claude Code from passing `-ExecutionPolicy Bypass` when spawning PowerShell for tool calls, hooks, and status line commands, and respect the machine's effective execution policy instead. By default Claude Code bypasses execution policy at process scope so `.ps1` scripts and module imports work on default-Restricted Windows installs. Process-scope bypass never overrides Group Policy `MachinePolicy` or `UserPolicy` regardless of this setting", + "default": null + }, + { + "name": "CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS", + "purpose": "{/* min-version: 2.1.182 */}Maximum time in milliseconds that [non-interactive mode](/en/headless#background-tasks-at-exit) with the `-p` flag waits after the final turn for background subagents and workflows whose result is part of the output. Default: `600000`, or 10 minutes. When the cap is exceeded, remaining background tasks are terminated and the process exits. Set to `0` to wait indefinitely. This cap is separate from the five-second grace period that applies to plain background shells", + "default": null + }, + { + "name": "CLAUDE_CODE_PROPAGATE_TRACEPARENT", + "purpose": "{/* min-version: 2.1.152 */}Set to `1` to propagate W3C trace context when `ANTHROPIC_BASE_URL` points at a custom proxy. Propagation covers the `traceparent` header on model and HTTP MCP requests and the `TRACEPARENT` environment variable for Bash, PowerShell, and hook subprocesses. By default, propagation is enabled only when connected directly to the Anthropic API. Added in v2.1.152. See [Traces (beta)](/en/monitoring-usage#traces-beta)", + "default": null + }, { "name": "CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST", - "purpose": "Set by host platforms that embed Claude Code and manage model provider routing on its behalf. When set, provider-selection, endpoint, and authentication variables such as `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, and `ANTHROPIC_API_KEY` in settings files are ignored so user settings cannot override the host's routing. The automatic telemetry opt-out for Bedrock, Vertex, and Foundry is also skipped, so telemetry follows the standard `DISABLE_TELEMETRY` opt-out. See [Default behaviors by API provider](/en/data-usage#default-behaviors-by-api-provider)", + "purpose": "Set by host platforms that embed Claude Code and manage model provider routing on its behalf. When set, provider-selection, endpoint, and authentication variables such as `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, and `ANTHROPIC_API_KEY` in settings files are ignored so user settings cannot override the host's routing. The automatic telemetry opt-out for Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry is also skipped, so telemetry follows the standard `DISABLE_TELEMETRY` opt-out. See [Default behaviors by API provider](/en/data-usage#default-behaviors-by-api-provider)", "default": null }, { @@ -670,7 +830,7 @@ }, { "name": "CLAUDE_CODE_REMOTE_SESSION_ID", - "purpose": "Set automatically in [cloud sessions](/en/claude-code-on-the-web) to the current session's ID. Read this to construct a link back to the session transcript. See [Link artifacts back to the session](/en/claude-code-on-the-web#link-artifacts-back-to-the-session)", + "purpose": "Set automatically in [cloud sessions](/en/claude-code-on-the-web) to the current session's ID. Read this to construct a link back to the session transcript. See [Link output back to the session](/en/claude-code-on-the-web#link-output-back-to-the-session)", "default": null }, { @@ -683,6 +843,16 @@ "purpose": "Override the continuation message injected when resuming a session that ended mid-turn. Defaults to `Continue from where you left off.`. Spawn scripts for long-running agents can set this to a more directive boot message. An empty string uses the default", "default": null }, + { + "name": "CLAUDE_CODE_RETRY_WATCHDOG", + "purpose": "{/* min-version: 2.1.186 */}Set to `1` for unattended sessions such as eval harnesses, CI jobs, or remote workers. Retries `429` and `529` capacity errors indefinitely instead of failing after `CLAUDE_CODE_MAX_RETRIES` attempts. The watchdog backs off up to 5 minutes between attempts, or until the limit resets when the response carries a rate-limit reset time, so a session that hits a usage limit waits out the remaining window. {/* min-version: 2.1.199 */}As of v2.1.199 it also raises the default retry count for other transient errors, such as server errors, timeouts, and dropped connections, to 300, roughly three hours of backoff, and removes the cap of 15 on `CLAUDE_CODE_MAX_RETRIES` if you set that variable explicitly. Requires Claude Code v2.1.186 or later", + "default": null + }, + { + "name": "CLAUDE_CODE_SAFE_MODE", + "purpose": "Set to `1` to start in safe mode: CLAUDE.md, skills, plugins, hooks, MCP servers, custom commands and agents, output styles, workflows, custom themes, custom keybindings, status line and file-suggestion commands, LSP servers, and auto-memory do not load, for troubleshooting a broken configuration. Managed settings policy still applies, including policy-configured hooks, status line, and file-suggestion commands; managed plugins, managed skills, managed CLAUDE.md, and policy-configured MCP servers do not. Equivalent to passing [`--safe-mode`](/en/cli-reference#cli-flags). Directly spawned child processes inherit the variable", + "default": null + }, { "name": "CLAUDE_CODE_SCRIPT_CAPS", "purpose": "JSON object limiting how many times specific scripts may be invoked per session when `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` is set. Keys are substrings matched against the command text; values are integer call limits. For example, `{\"deploy.sh\": 2}` allows `deploy.sh` to be called at most twice. Matching is substring-based so shell-expansion tricks like `./scripts/deploy.sh $(evil)` still count against the cap. Runtime fan-out via `xargs` or `find -exec` is not detected; this is a defense-in-depth control", @@ -690,12 +860,12 @@ }, { "name": "CLAUDE_CODE_SCROLL_SPEED", - "purpose": "Set the mouse wheel scroll multiplier in [fullscreen rendering](/en/fullscreen#mouse-wheel-scrolling). Accepts values from 1 to 20. Set to `3` to match `vim` if your terminal sends one wheel event per notch without amplification. Ignored in the JetBrains IDE terminal, where Claude Code uses its own scroll handling", + "purpose": "Set the mouse wheel scroll multiplier in [fullscreen rendering](/en/fullscreen#mouse-wheel-scrolling). Accepts values from 1 to 20, and fractional values below 1 such as `0.5` to slow accelerated trackpad and wheel scrolling in terminals that already amplify wheel events. Set to `3` to match `vim` if your terminal sends one wheel event per notch without amplification. Ignored in the JetBrains IDE terminal, where Claude Code uses its own scroll handling", "default": null }, { "name": "CLAUDE_CODE_SESSION_ID", - "purpose": "Set automatically in Bash and PowerShell tool subprocesses to the current session ID. Matches the `session_id` field passed to [hooks](/en/hooks). Updated on `/clear`. Use to correlate scripts and external tools with the Claude Code session that launched them", + "purpose": "Set automatically to the current session ID in Bash and PowerShell tool subprocesses, [hook command](/en/hooks) subprocesses, and stdio [MCP server](/en/mcp) subprocesses. For Bash, PowerShell, and hooks this matches the `session_id` field in the hook JSON input and is updated on `/clear`. An MCP server subprocess retains the ID it was spawned with. On `--resume ` it receives the resumed ID, matching hooks and Bash. On `--continue` or `--resume` without an explicit ID it may receive the initial startup ID instead. Use to correlate scripts and external tools with the Claude Code session that launched them", "default": null }, { @@ -705,17 +875,17 @@ }, { "name": "CLAUDE_CODE_SHELL", - "purpose": "Override automatic shell detection. Useful when your login shell differs from your preferred working shell (for example, `bash` vs `zsh`)", + "purpose": "Set the shell Claude Code uses to run Bash tool commands. Accepts a path to a `bash` or `zsh` binary, for example `/opt/homebrew/bin/bash`. Other shells such as `fish` are not supported. If the value is not a working `bash` or `zsh` path, Claude Code ignores it and falls back to auto-detection. Auto-detection uses your `$SHELL` when it points to `bash` or `zsh`, otherwise it picks the first working `zsh` then `bash` found on your `PATH` and standard install locations", "default": null }, { "name": "CLAUDE_CODE_SHELL_PREFIX", - "purpose": "Command prefix that wraps shell commands Claude Code spawns: Bash tool calls, [hook](/en/hooks) commands, and stdio [MCP server](/en/mcp) startup commands. Useful for logging or auditing. Example: setting `/path/to/logger.sh` runs each command as `/path/to/logger.sh `", + "purpose": "Command prefix that wraps shell commands Claude Code spawns: Bash tool calls, [hook](/en/hooks) commands, [status line](/en/statusline) commands, and stdio [MCP server](/en/mcp) startup commands. PowerShell hooks and exec-form hooks run without the prefix. Useful for logging or auditing. Setting a bare executable path such as `/path/to/logger.sh` runs each command as `/path/to/logger.sh ''`. The wrapper receives the command line as a single shell-quoted argument in `$1`, so the wrapper must re-evaluate `$1` with a shell, for example `exec bash -c \"$1\"`. Treating `$1` as a bare executable path breaks stdio MCP servers that pass arguments such as `npx -y `. For Bash tool calls, `$1` contains the full shell invocation Claude Code assembles, including environment setup, not only the command Claude ran", "default": null }, { "name": "CLAUDE_CODE_SIMPLE", - "purpose": "Set to `1` to run with a minimal system prompt and only the Bash, file read, and file edit tools. MCP tools from `--mcp-config` are still available. Disables auto-discovery of hooks, skills, plugins, MCP servers, auto memory, and CLAUDE.md. The [`--bare`](/en/headless#start-faster-with-bare-mode) CLI flag sets this", + "purpose": "Set to `1` to run with a minimal system prompt and only the Bash, file read, and file edit tools. MCP tools from `--mcp-config` are still available. Disables auto-discovery of hooks, skills, plugins, MCP servers, auto memory, and CLAUDE.md. OAuth tokens and keychain credentials are not read, so Anthropic authentication must come from `ANTHROPIC_API_KEY` or an `apiKeyHelper` in `--settings`. Equivalent to passing [`--bare`](/en/headless#start-faster-with-bare-mode)", "default": null }, { @@ -730,17 +900,17 @@ }, { "name": "CLAUDE_CODE_SKIP_BEDROCK_AUTH", - "purpose": "Skip AWS authentication for Bedrock (for example, when using an LLM gateway)", + "purpose": "Skip AWS authentication for Amazon Bedrock (for example, when using an LLM gateway)", "default": null }, { "name": "CLAUDE_CODE_SKIP_FOUNDRY_AUTH", - "purpose": "Skip Azure authentication for Microsoft Foundry (for example, when using an LLM gateway)", + "purpose": "Skip Azure authentication for Microsoft Foundry. For a gateway, set the credential in `ANTHROPIC_FOUNDRY_API_KEY` instead; without an API key this variable leaves the Microsoft Foundry client unable to send requests", "default": null }, { "name": "CLAUDE_CODE_SKIP_MANTLE_AUTH", - "purpose": "Skip AWS authentication for Bedrock Mantle (for example, when using an LLM gateway)", + "purpose": "Skip AWS authentication for Amazon Bedrock Mantle (for example, when using an LLM gateway)", "default": null }, { @@ -750,12 +920,17 @@ }, { "name": "CLAUDE_CODE_SKIP_VERTEX_AUTH", - "purpose": "Skip Google authentication for Vertex (for example, when using an LLM gateway)", + "purpose": "Skip Google authentication for Google Cloud's Agent Platform (for example, when using an LLM gateway)", "default": null }, + { + "name": "CLAUDE_CODE_STOP_HOOK_BLOCK_CAP", + "purpose": "Maximum number of consecutive times a [Stop](/en/hooks#stop) or [SubagentStop](/en/hooks#subagentstop) hook may block the turn from ending before Claude Code overrides it and ends the turn anyway (default: 8). Set to `0` to disable the cap. Raise this if your hook legitimately needs more iterations to resolve", + "default": "8" + }, { "name": "CLAUDE_CODE_SUBAGENT_MODEL", - "purpose": "See [Model configuration](/en/model-config)", + "purpose": "See [Model configuration](/en/model-config). {/* min-version: 2.1.196 */}As of v2.1.196, setting it to `inherit` is the same as leaving it unset; earlier versions treated `inherit` as an override that forced every subagent onto the main conversation's model", "default": null }, { @@ -773,6 +948,21 @@ "purpose": "Timeout in milliseconds for synchronous plugin installation. When exceeded, Claude Code proceeds without plugins and logs an error. No default: without this variable, synchronous installation waits until complete", "default": "without" }, + { + "name": "CLAUDE_CODE_SYNC_SKILLS", + "purpose": "Set to `1` to download your enabled claude.ai skills into `~/.claude/skills/` before the first query and resync every 10 minutes. Applies only in non-interactive mode with the `-p` flag. Requires claude.ai authentication. [Claude Code on the web](/en/claude-code-on-the-web) sessions receive your enabled claude.ai skills automatically; you don't need to set this there", + "default": null + }, + { + "name": "CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS", + "purpose": "Timeout in milliseconds for a mid-session skills resync when `CLAUDE_CODE_SYNC_SKILLS` is set (default: 30000). Bounds the download triggered when the host requests a skill reload during the session. When exceeded, the resync stops and remaining downloads continue in the background", + "default": "30000" + }, + { + "name": "CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS", + "purpose": "Timeout in milliseconds for the first query to wait on the initial skills sync when `CLAUDE_CODE_SYNC_SKILLS` is set (default: 5000). When exceeded, the query proceeds and remaining skill downloads continue in the background", + "default": "5000" + }, { "name": "CLAUDE_CODE_SYNTAX_HIGHLIGHT", "purpose": "Set to `false` to disable syntax highlighting in diff output. Useful when colors interfere with your terminal setup. To also disable highlighting in code blocks and file previews, use the [`syntaxHighlightingDisabled`](/en/settings) setting", @@ -790,7 +980,7 @@ }, { "name": "CLAUDE_CODE_TMPDIR", - "purpose": "Override the temp directory used for internal temp files. Claude Code appends `/claude-{uid}/` (Unix) or `/claude/` (Windows) to this path. Default: `/tmp` on macOS, `os.tmpdir()` on Linux/Windows", + "purpose": "Override the temp directory used for internal temp files. Claude Code appends `/claude-{uid}/` on Unix or `/claude/` on Windows to this path. Default: `/tmp` on macOS, `os.tmpdir()` on Linux and Windows. {/* min-version: 2.1.161 */}As of v2.1.161, on macOS and Linux, [sandboxed](/en/sandboxing) Bash subprocesses receive a short fallback `$TMPDIR` under the system default when your override is a long path, since some tools fail when temp paths get too long. Unsandboxed Bash commands inherit your shell's `$TMPDIR` unchanged. Claude Code's own temp files always use your override", "default": null }, { @@ -805,7 +995,7 @@ }, { "name": "CLAUDE_CODE_USE_BEDROCK", - "purpose": "Use [Bedrock](/en/amazon-bedrock)", + "purpose": "Use [Amazon Bedrock](/en/amazon-bedrock)", "default": null }, { @@ -815,7 +1005,7 @@ }, { "name": "CLAUDE_CODE_USE_MANTLE", - "purpose": "Use the Bedrock [Mantle endpoint](/en/amazon-bedrock#use-the-mantle-endpoint)", + "purpose": "Use the Amazon Bedrock [Mantle endpoint](/en/amazon-bedrock#use-the-mantle-endpoint)", "default": null }, { @@ -830,27 +1020,37 @@ }, { "name": "CLAUDE_CODE_USE_VERTEX", - "purpose": "Use [Vertex](/en/google-vertex-ai)", + "purpose": "Use [Google Cloud's Agent Platform](/en/google-vertex-ai)", "default": null }, { "name": "CLAUDE_CONFIG_DIR", - "purpose": "Override the configuration directory (default: `~/.claude`). All settings, credentials, session history, and plugins are stored under this path. Useful for running multiple accounts side by side: for example, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`", + "purpose": "Override the configuration directory (default: `~/.claude`). All settings, session history, and plugins are stored under this path, as are credentials on Linux and Windows; on macOS, credentials are in the system Keychain. Useful for running multiple accounts side by side: for example, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`", "default": "~/.claude" }, + { + "name": "CLAUDE_DISABLE_ADOPT", + "purpose": "{/* min-version: 2.1.195 */}Set to `1` to stop in-flight background work instead of carrying it over when you background a session by pressing `←` or with [`/background`](/en/agent-view#from-inside-a-session). Claude Code asks you to confirm before backgrounding, then stops the tasks that would otherwise carry over. Requires Claude Code v2.1.195 or later", + "default": null + }, { "name": "CLAUDE_EFFORT", - "purpose": "Set automatically in Bash tool subprocesses and hook commands to the active [effort level](/en/model-config#adjust-effort-level) for the turn: `low`, `medium`, `high`, `xhigh`, or `max`. Matches the `effort.level` field passed to [hooks](/en/hooks). Only set when the current model supports the effort parameter", + "purpose": "Set automatically in Bash tool subprocesses and hook commands to the active [effort level](/en/model-config#adjust-effort-level) for the turn: `low`, `medium`, `high`, `xhigh`, or `max`. Ultracode is not a distinct level and reports as `xhigh`. Matches the `effort.level` field passed to [hooks](/en/hooks). Only set when the current model supports the effort parameter", "default": null }, { "name": "CLAUDE_ENABLE_BYTE_WATCHDOG", - "purpose": "Set to `1` to force-enable the byte-level streaming idle watchdog, or set to `0` to force-disable it. When unset, the watchdog is enabled by default for Anthropic API connections. The byte watchdog aborts a connection when no bytes arrive on the wire for the duration set by `CLAUDE_STREAM_IDLE_TIMEOUT_MS`, with a minimum of 5 minutes, independent of the event-level watchdog", + "purpose": "Set to `1` to force-enable the byte-level streaming idle watchdog, or set to `0` to force-disable it. When unset, the watchdog is enabled by default for direct Anthropic API and [Claude Platform on AWS](/en/claude-platform-on-aws) connections. The byte watchdog aborts a connection when no bytes arrive on the wire for 180 seconds by default on direct Anthropic API connections, 300 seconds on Claude Platform on AWS and when enabled on Amazon Bedrock, or for the value of `CLAUDE_STREAM_IDLE_TIMEOUT_MS` when that is set, which is clamped to a minimum of 5 minutes, independent of the event-level watchdog", + "default": null + }, + { + "name": "CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK", + "purpose": "Set to `1` to enable the byte-level streaming idle watchdog on Amazon Bedrock `vnd.amazon.eventstream` responses. Off by default. Configure the timeout with `CLAUDE_STREAM_IDLE_TIMEOUT_MS`", "default": null }, { "name": "CLAUDE_ENABLE_STREAM_WATCHDOG", - "purpose": "Set to `1` to enable the event-level streaming idle watchdog. Off by default. For Bedrock, Vertex, and Foundry, this is the only idle watchdog available. Configure the timeout with `CLAUDE_STREAM_IDLE_TIMEOUT_MS`", + "purpose": "Set to `0` to force-disable the event-level streaming idle watchdog, or set to `1` to force-enable it. {/* min-version: 2.1.196 */}When unset, the watchdog is on by default for all providers. Before v2.1.196, the unset default was server-controlled on the direct Anthropic API and off on other providers. {/* min-version: 2.1.169 */}As of v2.1.169, providers other than the direct Anthropic API and Claude Platform on AWS also have a default-on 5-minute body idle timeout independent of this variable; see `API_FORCE_IDLE_TIMEOUT`. On Amazon Bedrock, you can also enable the independent byte-level watchdog with `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`; the two run together when both are set. Configure the timeout with `CLAUDE_STREAM_IDLE_TIMEOUT_MS`", "default": null }, { @@ -865,12 +1065,12 @@ }, { "name": "CLAUDE_STREAM_IDLE_TIMEOUT_MS", - "purpose": "Timeout in milliseconds before the streaming idle watchdog closes a stalled connection. Default and minimum `300000` (5 minutes) for both the byte-level and event-level watchdogs; lower values are silently clamped to absorb extended thinking pauses and proxy buffering. For third-party providers, requires `CLAUDE_ENABLE_STREAM_WATCHDOG=1`", + "purpose": "Timeout in milliseconds before the streaming idle watchdog closes a stalled connection. When you set this variable explicitly, the minimum is `300000` (5 minutes); lower values are silently clamped to absorb extended thinking pauses and proxy buffering. When unset, the event-level watchdog defaults to 300 seconds and the byte-level watchdog defaults to 180 seconds on direct Anthropic API connections (300 seconds on Claude Platform on AWS and other providers). The unset 180-second byte-watchdog default is a separate value and is not subject to the 5-minute clamp. The body idle timeout described under `API_FORCE_IDLE_TIMEOUT` applies independently. On Amazon Bedrock, also applies when `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`", "default": null }, { "name": "CLAUDECODE", - "purpose": "Set to `1` in shell environments Claude Code spawns (Bash tool, tmux sessions). Not set in [hooks](/en/hooks) or [status line](/en/statusline) commands. Use to detect when a script is running inside a shell spawned by Claude Code", + "purpose": "Set to `1` in subprocesses Claude Code spawns (Bash and PowerShell tools, tmux sessions, [hook](/en/hooks) commands, [status line](/en/statusline) commands, stdio [MCP server](/en/mcp) subprocesses). IDE extensions also set this in their integrated terminals. Use to detect when a script is running inside a subprocess spawned by Claude Code. To check whether the current process was spawned directly by a tool call or hook, rather than inside a stdio MCP server that Claude Code started, use `CLAUDE_CODE_CHILD_SESSION` instead", "default": null }, { @@ -910,7 +1110,7 @@ }, { "name": "DISABLE_EXTRA_USAGE_COMMAND", - "purpose": "Set to `1` to hide the `/extra-usage` command that lets users purchase additional usage beyond rate limits", + "purpose": "Set to `1` to hide the `/usage-credits` command that lets users purchase additional usage beyond rate limits", "default": null }, { @@ -925,7 +1125,7 @@ }, { "name": "DISABLE_INSTALL_GITHUB_APP_COMMAND", - "purpose": "Set to `1` to hide the `/install-github-app` command. Already hidden when using third-party providers (Bedrock, Vertex, or Foundry)", + "purpose": "Set to `1` to hide the `/install-github-app` command. Already hidden when using third-party providers (Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry)", "default": null }, { @@ -950,7 +1150,12 @@ }, { "name": "DISABLE_PROMPT_CACHING", - "purpose": "Set to `1` to disable prompt caching for all models (takes precedence over per-model settings)", + "purpose": "Set to `1` to disable [prompt caching](/en/prompt-caching#disable-prompt-caching) for all models (takes precedence over per-model settings)", + "default": null + }, + { + "name": "DISABLE_PROMPT_CACHING_FABLE", + "purpose": "Set to `1` to disable prompt caching for Fable models", "default": null }, { @@ -970,7 +1175,7 @@ }, { "name": "DISABLE_TELEMETRY", - "purpose": "Set to `1` to opt out of telemetry. Telemetry events do not include user data like code, file paths, or bash commands. Also disables feature flags, so some features that are still rolling out may not be available", + "purpose": "Set to `1` to opt out of telemetry. Telemetry events do not include user data like code, file paths, or bash commands. Also disables feature-flag fetching with the same effect as `DISABLE_GROWTHBOOK`, so some flagged features may be unavailable", "default": null }, { @@ -985,17 +1190,17 @@ }, { "name": "DO_NOT_TRACK", - "purpose": "Set to `1` to opt out of telemetry. Equivalent to setting `DISABLE_TELEMETRY`. Honored as the [standard cross-tool convention](https://consoledonottrack.com/)", + "purpose": "Set to `1` to opt out of telemetry. Equivalent to setting `DISABLE_TELEMETRY`. Claude Code honors this as the cross-tool convention recognized by many developer CLIs", "default": null }, { "name": "ENABLE_CLAUDEAI_MCP_SERVERS", - "purpose": "Set to `false` to disable [claude.ai MCP servers](/en/mcp#use-mcp-servers-from-claude-ai) in Claude Code. Enabled by default for logged-in users", + "purpose": "Set to `false` to disable [claude.ai MCP servers](/en/mcp#use-mcp-servers-from-claude-ai) in Claude Code. Enabled by default for logged-in users. To disable per-project or per-org, set [`disableClaudeAiConnectors`](/en/settings#available-settings) in settings instead", "default": null }, { "name": "ENABLE_PROMPT_CACHING_1H", - "purpose": "Set to `1` to request a 1-hour prompt cache TTL instead of the default 5 minutes. Intended for API key, [Bedrock](/en/amazon-bedrock), [Vertex](/en/google-vertex-ai), [Foundry](/en/microsoft-foundry), and [Claude Platform on AWS](/en/claude-platform-on-aws) users. Subscription users receive 1-hour TTL automatically. 1-hour cache writes are billed at a higher rate", + "purpose": "Set to `1` to request a 1-hour [prompt cache TTL](/en/prompt-caching#cache-lifetime) instead of the default 5 minutes. Intended for API key, [Amazon Bedrock](/en/amazon-bedrock), [Google Cloud's Agent Platform](/en/google-vertex-ai), [Microsoft Foundry](/en/microsoft-foundry), and [Claude Platform on AWS](/en/claude-platform-on-aws) users. Subscription users within included usage receive 1-hour TTL automatically. 1-hour cache writes are billed at a higher rate", "default": null }, { @@ -1005,12 +1210,12 @@ }, { "name": "ENABLE_TOOL_SEARCH", - "purpose": "Controls [MCP tool search](/en/mcp#scale-with-mcp-tool-search). Unset: all MCP tools deferred by default, but loaded upfront on Vertex AI or when `ANTHROPIC_BASE_URL` points to a non-first-party host. Values: `true` (always defer and send the beta header; supported on Vertex AI with Sonnet 4.5 and later or Opus 4.5 and later; requests fail on earlier Vertex AI models or on proxies that do not support `tool_reference`), `auto` (threshold mode: load upfront if tools fit within 10% of context), `auto:N` (custom threshold, e.g., `auto:5` for 5%), `false` (load all upfront)", + "purpose": "Controls [MCP tool search](/en/mcp#scale-with-mcp-tool-search). Unset: all MCP tools deferred by default, but loaded upfront on Google Cloud's Agent Platform or when `ANTHROPIC_BASE_URL` points to a non-first-party host. Values: `true` (always defer and send the beta header, requests fail on Google Cloud's Agent Platform models earlier than Sonnet 4.5 or Opus 4.5, or on proxies that do not support `tool_reference`), `auto` (threshold mode: load upfront if tools fit within 10% of context), `auto:N` (custom threshold, e.g., `auto:5` for 5%), `false` (load all upfront)", "default": null }, { "name": "FALLBACK_FOR_ALL_PRIMARY_MODELS", - "purpose": "Set to any non-empty value to trigger fallback to [`--fallback-model`](/en/cli-reference#cli-flags) after repeated overload errors on any primary model. By default, only Opus models trigger the fallback", + "purpose": "Set to any non-empty value to make all models, not only Opus, stop retrying with a repeated-overload error when no fallback model is configured. {/* min-version: 2.1.160 */}As of v2.1.160, a configured [fallback model chain](/en/model-config#fallback-model-chains) triggers on repeated overload errors for any primary model, so this variable does not affect switching to a fallback model", "default": null }, { @@ -1050,7 +1255,7 @@ }, { "name": "MAX_THINKING_TOKENS", - "purpose": "Override the [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) token budget. The ceiling is the model's [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) minus one. Set to `0` to disable thinking entirely. On models with [adaptive reasoning](/en/model-config#adjust-effort-level), the budget is ignored unless adaptive reasoning is disabled via `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING`", + "purpose": "Override the [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) token budget. The ceiling is the model's [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) minus one. Set to `0` to disable thinking on the Anthropic API except on Fable 5, which cannot have thinking turned off. On [third-party providers](/en/third-party-integrations), `0` omits the `thinking` parameter instead, and models with [adaptive reasoning](/en/model-config#adjust-effort-level) may still think. For nonzero values on adaptive reasoning models, the budget is ignored unless adaptive reasoning is disabled via `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING`", "default": null }, { @@ -1060,13 +1265,13 @@ }, { "name": "MCP_CONNECT_TIMEOUT_MS", - "purpose": "How long the first query waits, in milliseconds, for the MCP connection batch before snapshotting the tool list (default: 5000). Servers still pending at the deadline keep connecting in the background but won't appear until the next query. Distinct from `MCP_TIMEOUT`, which bounds an individual server's connect attempt. Most relevant to non-interactive sessions that issue a single query and need slow-connecting servers to be visible", + "purpose": "How long blocking MCP startup waits, in milliseconds, for the connection batch before snapshotting the tool list (default: 5000). Applies when `MCP_CONNECTION_NONBLOCKING=0` or for servers marked [`alwaysLoad: true`](/en/mcp#exempt-a-server-from-deferral). Servers still pending at the deadline keep connecting in the background but won't appear until the next query. Distinct from `MCP_TIMEOUT`, which bounds an individual server's connect attempt", "default": "5000" }, { "name": "MCP_CONNECTION_NONBLOCKING", - "purpose": "Set to `true` in non-interactive mode (`-p`) to skip the MCP connection wait entirely. Useful for scripted pipelines where MCP tools are not needed. Without this variable, the first query waits up to 5 seconds for `--mcp-config` server connections. Servers configured with [`alwaysLoad: true`](/en/mcp#exempt-a-server-from-deferral) always block startup regardless of this variable, since their tools must be present when the first prompt is built", - "default": null + "purpose": "Controls whether startup waits for MCP servers to connect before the first query. {/* min-version: 2.1.142 */}As of Claude Code v2.1.142, MCP startup is non-blocking by default: servers connect in the background and their tools become available as they finish. Set to `0` to restore the blocking 5-second connection wait. Servers configured with [`alwaysLoad: true`](/en/mcp#exempt-a-server-from-deferral) still block startup regardless, since their tools must be present when the first prompt is built", + "default": "servers" }, { "name": "MCP_OAUTH_CALLBACK_PORT", @@ -1090,7 +1295,7 @@ }, { "name": "MCP_TOOL_TIMEOUT", - "purpose": "Timeout in milliseconds for MCP tool execution (default: 100000000, about 28 hours)", + "purpose": "Timeout in milliseconds for MCP tool execution (default: 100000000, about 28 hours). A per-server `timeout` field in `.mcp.json` overrides this for that server. For the env variable, values below 1000 are floored to one second; for the per-server field, values below 1000 are ignored", "default": "100000000" }, { @@ -1098,6 +1303,11 @@ "purpose": "List of domains and IPs to which requests will be directly issued, bypassing proxy", "default": null }, + { + "name": "OTEL_LOG_ASSISTANT_RESPONSES", + "purpose": "{/* min-version: 2.1.193 */}Set to `1` to include the model's response text on `assistant_response` OpenTelemetry log events. When unset, the value of `OTEL_LOG_USER_PROMPTS` is used instead. Set to `0` to keep responses redacted even when `OTEL_LOG_USER_PROMPTS` is set. Requires Claude Code v2.1.193 or later. See [Monitoring](/en/monitoring-usage#assistant-response-event)", + "default": null + }, { "name": "OTEL_LOG_RAW_API_BODIES", "purpose": "Emit Anthropic Messages API request and response JSON as `api_request_body` / `api_response_body` log events. Set to `1` for inline bodies truncated at 60 KB, or `file:` to write untruncated bodies to disk and emit a `body_ref` path instead. Disabled by default; bodies include the entire conversation history. See [Monitoring](/en/monitoring-usage#api-request-body-event)", @@ -1110,7 +1320,7 @@ }, { "name": "OTEL_LOG_TOOL_DETAILS", - "purpose": "Set to `1` to include tool input arguments, MCP server names, raw error strings on tool failures, and other tool details in OpenTelemetry traces and logs. Disabled by default to protect PII. See [Monitoring](/en/monitoring-usage)", + "purpose": "Set to `1` to include tool input arguments, MCP server names, raw error strings on tool failures, the refusal `category` on `api_refusal` events, and other tool details in OpenTelemetry traces and logs. Disabled by default to protect PII. See [Monitoring](/en/monitoring-usage)", "default": null }, { @@ -1123,6 +1333,16 @@ "purpose": "Set to `false` to exclude account UUID from metrics attributes (default: included). See [Monitoring](/en/monitoring-usage)", "default": "included" }, + { + "name": "OTEL_METRICS_INCLUDE_ENTRYPOINT", + "purpose": "{/* min-version: 2.1.152 */}Set to `true` to include the session entrypoint in metrics attributes (default: excluded). Added in v2.1.152. See [Monitoring](/en/monitoring-usage)", + "default": "excluded" + }, + { + "name": "OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES", + "purpose": "{/* min-version: 2.1.161 */}As of v2.1.161, Claude Code attaches `OTEL_RESOURCE_ATTRIBUTES` keys to metric datapoint labels. Set to `false` to exclude them (default: included). See [Monitoring](/en/monitoring-usage#multi-team-organization-support)", + "default": "included" + }, { "name": "OTEL_METRICS_INCLUDE_SESSION_ID", "purpose": "Set to `false` to exclude session ID from metrics attributes (default: included). See [Monitoring](/en/monitoring-usage)", @@ -1150,62 +1370,77 @@ }, { "name": "VERTEX_REGION_CLAUDE_3_5_HAIKU", - "purpose": "Override region for Claude 3.5 Haiku when using Vertex AI", + "purpose": "Override region for Claude 3.5 Haiku when using Google Cloud's Agent Platform", "default": null }, { "name": "VERTEX_REGION_CLAUDE_3_5_SONNET", - "purpose": "Override region for Claude 3.5 Sonnet when using Vertex AI", + "purpose": "Override region for Claude 3.5 Sonnet when using Google Cloud's Agent Platform", "default": null }, { "name": "VERTEX_REGION_CLAUDE_3_7_SONNET", - "purpose": "Override region for Claude 3.7 Sonnet when using Vertex AI", + "purpose": "Override region for Claude 3.7 Sonnet when using Google Cloud's Agent Platform", "default": null }, { "name": "VERTEX_REGION_CLAUDE_4_0_OPUS", - "purpose": "Override region for Claude 4.0 Opus when using Vertex AI", + "purpose": "Override region for Claude 4.0 Opus when using Google Cloud's Agent Platform", "default": null }, { "name": "VERTEX_REGION_CLAUDE_4_0_SONNET", - "purpose": "Override region for Claude 4.0 Sonnet when using Vertex AI", + "purpose": "Override region for Claude 4.0 Sonnet when using Google Cloud's Agent Platform", "default": null }, { "name": "VERTEX_REGION_CLAUDE_4_1_OPUS", - "purpose": "Override region for Claude 4.1 Opus when using Vertex AI", + "purpose": "Override region for Claude 4.1 Opus when using Google Cloud's Agent Platform", "default": null }, { "name": "VERTEX_REGION_CLAUDE_4_5_OPUS", - "purpose": "Override region for Claude Opus 4.5 when using Vertex AI", + "purpose": "Override region for Claude Opus 4.5 when using Google Cloud's Agent Platform", "default": null }, { "name": "VERTEX_REGION_CLAUDE_4_5_SONNET", - "purpose": "Override region for Claude Sonnet 4.5 when using Vertex AI", + "purpose": "Override region for Claude Sonnet 4.5 when using Google Cloud's Agent Platform", "default": null }, { "name": "VERTEX_REGION_CLAUDE_4_6_OPUS", - "purpose": "Override region for Claude Opus 4.6 when using Vertex AI", + "purpose": "Override region for Claude Opus 4.6 when using Google Cloud's Agent Platform", "default": null }, { "name": "VERTEX_REGION_CLAUDE_4_6_SONNET", - "purpose": "Override region for Claude Sonnet 4.6 when using Vertex AI", + "purpose": "Override region for Claude Sonnet 4.6 when using Google Cloud's Agent Platform", "default": null }, { "name": "VERTEX_REGION_CLAUDE_4_7_OPUS", - "purpose": "{/* min-version: 2.1.111 */}Override region for Claude Opus 4.7 when using Vertex AI", + "purpose": "{/* min-version: 2.1.111 */}Override region for Claude Opus 4.7 when using Google Cloud's Agent Platform. Added in v2.1.111", + "default": null + }, + { + "name": "VERTEX_REGION_CLAUDE_4_8_OPUS", + "purpose": "{/* min-version: 2.1.154 */}Override region for Claude Opus 4.8 when using Google Cloud's Agent Platform. Added in v2.1.154", + "default": null + }, + { + "name": "VERTEX_REGION_CLAUDE_5_SONNET", + "purpose": "{/* min-version: 2.1.197 */}Override region for Claude Sonnet 5 when using Google Cloud's Agent Platform. Added in v2.1.197", + "default": null + }, + { + "name": "VERTEX_REGION_CLAUDE_FABLE_5", + "purpose": "{/* min-version: 2.1.170 */}Override region for Claude Fable 5 when using Google Cloud's Agent Platform. Added in v2.1.170", "default": null }, { "name": "VERTEX_REGION_CLAUDE_HAIKU_4_5", - "purpose": "Override region for Claude Haiku 4.5 when using Vertex AI", + "purpose": "Override region for Claude Haiku 4.5 when using Google Cloud's Agent Platform", "default": null } ] diff --git a/catalog/hooks.json b/catalog/hooks.json index ff4dd27..d2a108c 100644 --- a/catalog/hooks.json +++ b/catalog/hooks.json @@ -1,7 +1,7 @@ { "source": "https://code.claude.com/docs/en/hooks.md", - "fetchedAt": "2026-05-18T12:34:58.886Z", - "count": 29, + "fetchedAt": "2026-07-06T12:50:15.947Z", + "count": 30, "events": [ { "name": "ConfigChange", @@ -27,7 +27,7 @@ "outputFields": [ { "field": "watchPaths", - "description": "Array of absolute paths. Replaces the current dynamic watch list (paths from your `matcher` configuration are always watched). Returning an empty array clears the dynamic list, which is typical when entering a new directory" + "description": "Array of absolute paths. Replaces the current dynamic watch list. Paths from your `matcher` configuration are always watched. Returning an empty array clears the dynamic list, which is typical when entering a new directory" } ] }, @@ -55,14 +55,14 @@ }, { "field": "event", - "description": "What happened: `\"change\"` (file modified), `\"add\"` (file created), or `\"unlink\"` (file deleted)" + "description": "What happened: `\"change\"` for a modified file, `\"add\"` for a created file, or `\"unlink\"` for a deleted file" } ], "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"/Users/.../.claude/projects/.../transcript.jsonl\",\n \"cwd\": \"/Users/my-project\",\n \"hook_event_name\": \"FileChanged\",\n \"file_path\": \"/Users/my-project/.envrc\",\n \"event\": \"change\"\n}", "outputFields": [ { "field": "watchPaths", - "description": "Array of absolute paths. Replaces the current dynamic watch list (paths from your `matcher` configuration are always watched). Use this when your hook script discovers additional files to watch based on the changed file" + "description": "Array of absolute paths. Replaces the current dynamic watch list. Paths from your `matcher` configuration are always watched. Use this when your hook script discovers additional files to watch based on the changed file" } ] }, @@ -98,11 +98,44 @@ "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"/Users/.../.claude/projects/.../transcript.jsonl\",\n \"cwd\": \"/Users/my-project\",\n \"hook_event_name\": \"InstructionsLoaded\",\n \"file_path\": \"/Users/my-project/CLAUDE.md\",\n \"memory_type\": \"Project\",\n \"load_reason\": \"session_start\"\n}", "outputFields": [] }, + { + "name": "MessageDisplay", + "when": "While assistant message text is displayed", + "inputFields": [ + { + "field": "turn_id", + "description": "UUID of the current turn" + }, + { + "field": "message_id", + "description": "UUID of the assistant message being displayed. Stable across every batch of the same message. This is not the API `msg_…` id, so it can't be correlated with transcript message ids" + }, + { + "field": "index", + "description": "Zero-based index of this batch within the message" + }, + { + "field": "final", + "description": "`true` on the message's last batch. Each message has exactly one final batch" + }, + { + "field": "delta", + "description": "The newly completed lines since the prior batch, terminating newlines included. Always whole lines, except the final batch which may end mid-line. In interactive runs, the final batch's delta is empty when the message ends on a newline, so treat `final`, not a non-empty delta, as the end-of-message signal. In Agent SDK and `claude -p` runs, the single call carries the entire message" + } + ], + "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"/Users/.../.claude/projects/.../transcript.jsonl\",\n \"cwd\": \"/Users/my-project\",\n \"hook_event_name\": \"MessageDisplay\",\n \"turn_id\": \"0c9e6a2f-7d41-4f4e-9a15-3f4f7c2b8d10\",\n \"message_id\": \"5b2a9c8e-1f63-4d8a-b7c4-9e0d2a6f1c3b\",\n \"index\": 0,\n \"final\": false,\n \"delta\": \"Here is the plan:\\n\"\n}", + "outputFields": [ + { + "field": "displayContent", + "description": "Text displayed in place of the delta. Omit it to display the original" + } + ] + }, { "name": "Notification", "when": "When Claude Code sends a notification", "inputFields": [], - "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl\",\n \"cwd\": \"/Users/...\",\n \"hook_event_name\": \"Notification\",\n \"message\": \"Claude needs your permission to use Bash\",\n \"title\": \"Permission needed\",\n \"notification_type\": \"permission_prompt\"\n}", + "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl\",\n \"cwd\": \"/Users/...\",\n \"hook_event_name\": \"Notification\",\n \"message\": \"Claude needs your permission\",\n \"title\": \"Permission needed\",\n \"notification_type\": \"permission_prompt\"\n}", "outputFields": [] }, { @@ -125,7 +158,7 @@ "outputFields": [ { "field": "behavior", - "description": "`\"allow\"` grants the permission, `\"deny\"` denies it. [Deny and ask rules](/en/permissions#manage-permissions) are still evaluated, so a hook returning `\"allow\"` does not override a matching deny rule" + "description": "`\"allow\"` grants the permission, `\"deny\"` denies it. [Deny and ask rules](/en/permissions#manage-permissions) are still evaluated, so a hook returning `\"allow\"` doesn't override a matching deny rule" }, { "field": "updatedInput", @@ -237,7 +270,7 @@ "outputFields": [ { "field": "permissionDecision", - "description": "`\"allow\"` skips the permission prompt. `\"deny\"` prevents the tool call. `\"ask\"` prompts the user to confirm. `\"defer\"` exits gracefully so the tool can be resumed later. [Deny and ask rules](/en/permissions#manage-permissions) are still evaluated regardless of what the hook returns" + "description": "`\"allow\"` skips the permission prompt, except for [tools that require user interaction](#pretooluse-decision-control). `\"deny\"` prevents the tool call. `\"ask\"` prompts the user to confirm. `\"defer\"` exits gracefully so the tool can be resumed later. [Deny and ask rules](/en/permissions#manage-permissions) are still evaluated regardless of what the hook returns" }, { "field": "permissionDecisionReason", @@ -263,12 +296,45 @@ { "name": "SessionStart", "when": "When a session begins or resumes", - "inputFields": [], - "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl\",\n \"cwd\": \"/Users/...\",\n \"hook_event_name\": \"SessionStart\",\n \"source\": \"startup\",\n \"model\": \"claude-sonnet-4-6\"\n}", + "inputFields": [ + { + "field": "source", + "description": "How the session started: `\"startup\"` for new sessions, `\"resume\"` for resumed sessions, `\"clear\"` after `/clear`, or `\"compact\"` after compaction" + }, + { + "field": "model", + "description": "The active model identifier. It can be omitted, for example after `/clear` or when a session is restored through conversation recovery, so check for the field before reading it" + }, + { + "field": "agent_type", + "description": "The agent name, present when you start Claude Code with `claude --agent `" + }, + { + "field": "session_title", + "description": "The current session title if one is already set, for example via `--name` or `/rename`. A hook that emits `sessionTitle` can check `session_title` first to avoid overwriting a title the user set explicitly" + } + ], + "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl\",\n \"cwd\": \"/Users/...\",\n \"hook_event_name\": \"SessionStart\",\n \"source\": \"startup\",\n \"model\": \"claude-sonnet-5\"\n}", "outputFields": [ { "field": "additionalContext", "description": "String added to Claude's context at the start of the conversation, before the first prompt. See [Add context for Claude](#add-context-for-claude) for how the text is delivered and what to put in it" + }, + { + "field": "initialUserMessage", + "description": "String used as the first user message of the session. Applies in [non-interactive mode](/en/headless) with the `-p` flag, where it becomes the first turn even if no prompt is provided. If a prompt is provided, it follows as the next turn. Unlike `additionalContext`, which attaches to an existing turn, this creates the turn" + }, + { + "field": "sessionTitle", + "description": "Sets the session title, with the same effect as `/rename`. Use to name sessions automatically from the launch folder, git branch, or worktree name. Applies only when `source` is `\"startup\"` or `\"resume\"`; ignored on `\"clear\"` and `\"compact\"`" + }, + { + "field": "watchPaths", + "description": "Array of absolute paths to watch for [FileChanged](#filechanged) events during this session" + }, + { + "field": "reloadSkills", + "description": "Boolean. When `true`, Claude Code re-scans the [skill](/en/skills) and command directories after the SessionStart hooks complete, so skills the hook installed are available in the same session, starting with the first prompt" } ] }, @@ -287,8 +353,45 @@ { "name": "Stop", "when": "When Claude finishes responding", - "inputFields": [], - "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"~/.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl\",\n \"cwd\": \"/Users/...\",\n \"permission_mode\": \"default\",\n \"hook_event_name\": \"Stop\",\n \"stop_hook_active\": true,\n \"last_assistant_message\": \"I've completed the refactoring. Here's a summary...\"\n}", + "inputFields": [ + { + "field": "id", + "description": "Task identifier" + }, + { + "field": "type", + "description": "Friendly task-type label such as `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, or `MCP task`. Each label identifies which Claude Code feature created the task. Falls back to the raw discriminant for unrecognized types" + }, + { + "field": "status", + "description": "Current task status" + }, + { + "field": "description", + "description": "Free-text description, capped at 1000 characters with an in-string `… [+N chars]` marker when clipped" + }, + { + "field": "command", + "description": "Shell command line, capped at 1000 characters. Present only for `shell` tasks" + }, + { + "field": "agent_type", + "description": "Subagent type name. Present only for `subagent` tasks" + }, + { + "field": "server", + "description": "MCP server name. Present only for `monitor` and `MCP task` tasks" + }, + { + "field": "tool", + "description": "MCP tool name. Present only for `monitor` and `MCP task` tasks" + }, + { + "field": "name", + "description": "Workflow name. Present only for `workflow` tasks" + } + ], + "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"~/.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl\",\n \"cwd\": \"/Users/...\",\n \"permission_mode\": \"default\",\n \"hook_event_name\": \"Stop\",\n \"stop_hook_active\": true,\n \"last_assistant_message\": \"I've completed the refactoring. Here's a summary...\",\n \"background_tasks\": [\n {\n \"id\": \"task-001\",\n \"type\": \"shell\",\n \"status\": \"running\",\n \"description\": \"tail logs\",\n \"command\": \"tail -f /var/log/syslog\"\n }\n ],\n \"session_crons\": [\n {\n \"id\": \"cron-001\",\n \"schedule\": \"0 9 * * 1-5\",\n \"recurring\": true,\n \"prompt\": \"check the build\"\n }\n ]\n}", "outputFields": [ { "field": "decision", @@ -297,6 +400,10 @@ { "field": "reason", "description": "Required when `decision` is `\"block\"`. Tells Claude why it should continue" + }, + { + "field": "hookSpecificOutput.additionalContext", + "description": "Non-error feedback for Claude. The conversation continues so Claude can act on it, but unlike `decision: \"block\"` it is shown in the transcript as hook feedback rather than a hook error" } ] }, @@ -306,7 +413,7 @@ "inputFields": [ { "field": "error", - "description": "Error type: `rate_limit`, `authentication_failed`, `oauth_org_not_allowed`, `billing_error`, `invalid_request`, `server_error`, `max_output_tokens`, or `unknown`" + "description": "Error type: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, or `unknown`" }, { "field": "error_details", @@ -336,7 +443,7 @@ "name": "SubagentStop", "when": "When a subagent finishes", "inputFields": [], - "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"~/.claude/projects/.../abc123.jsonl\",\n \"cwd\": \"/Users/...\",\n \"permission_mode\": \"default\",\n \"hook_event_name\": \"SubagentStop\",\n \"stop_hook_active\": false,\n \"agent_id\": \"def456\",\n \"agent_type\": \"Explore\",\n \"agent_transcript_path\": \"~/.claude/projects/.../abc123/subagents/agent-def456.jsonl\",\n \"last_assistant_message\": \"Analysis complete. Found 3 potential issues...\"\n}", + "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"~/.claude/projects/.../abc123.jsonl\",\n \"cwd\": \"/Users/...\",\n \"permission_mode\": \"default\",\n \"hook_event_name\": \"SubagentStop\",\n \"stop_hook_active\": false,\n \"agent_id\": \"def456\",\n \"agent_type\": \"Explore\",\n \"agent_transcript_path\": \"~/.claude/projects/.../abc123/subagents/agent-def456.jsonl\",\n \"last_assistant_message\": \"Analysis complete. Found 3 potential issues...\",\n \"background_tasks\": [],\n \"session_crons\": []\n}", "outputFields": [] }, { @@ -361,10 +468,10 @@ }, { "field": "team_name", - "description": "Name of the team. May be absent" + "description": "Deprecated. Session-derived team name; will be removed in a future release" } ], - "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl\",\n \"cwd\": \"/Users/...\",\n \"permission_mode\": \"default\",\n \"hook_event_name\": \"TaskCompleted\",\n \"task_id\": \"task-001\",\n \"task_subject\": \"Implement user authentication\",\n \"task_description\": \"Add login and signup endpoints\",\n \"teammate_name\": \"implementer\",\n \"team_name\": \"my-project\"\n}", + "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl\",\n \"cwd\": \"/Users/...\",\n \"permission_mode\": \"default\",\n \"hook_event_name\": \"TaskCompleted\",\n \"task_id\": \"task-001\",\n \"task_subject\": \"Implement user authentication\",\n \"task_description\": \"Add login and signup endpoints\",\n \"teammate_name\": \"implementer\",\n \"team_name\": \"session-a1b2c3d4\"\n}", "outputFields": [] }, { @@ -389,10 +496,10 @@ }, { "field": "team_name", - "description": "Name of the team. May be absent" + "description": "Deprecated. Session-derived team name; will be removed in a future release" } ], - "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl\",\n \"cwd\": \"/Users/...\",\n \"permission_mode\": \"default\",\n \"hook_event_name\": \"TaskCreated\",\n \"task_id\": \"task-001\",\n \"task_subject\": \"Implement user authentication\",\n \"task_description\": \"Add login and signup endpoints\",\n \"teammate_name\": \"implementer\",\n \"team_name\": \"my-project\"\n}", + "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl\",\n \"cwd\": \"/Users/...\",\n \"permission_mode\": \"default\",\n \"hook_event_name\": \"TaskCreated\",\n \"task_id\": \"task-001\",\n \"task_subject\": \"Implement user authentication\",\n \"task_description\": \"Add login and signup endpoints\",\n \"teammate_name\": \"implementer\",\n \"team_name\": \"session-a1b2c3d4\"\n}", "outputFields": [] }, { @@ -405,10 +512,10 @@ }, { "field": "team_name", - "description": "Name of the team" + "description": "Deprecated. Session-derived team name; will be removed in a future release" } ], - "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl\",\n \"cwd\": \"/Users/...\",\n \"permission_mode\": \"default\",\n \"hook_event_name\": \"TeammateIdle\",\n \"teammate_name\": \"researcher\",\n \"team_name\": \"my-project\"\n}", + "inputExample": "{\n \"session_id\": \"abc123\",\n \"transcript_path\": \"/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl\",\n \"cwd\": \"/Users/...\",\n \"permission_mode\": \"default\",\n \"hook_event_name\": \"TeammateIdle\",\n \"teammate_name\": \"researcher\",\n \"team_name\": \"session-a1b2c3d4\"\n}", "outputFields": [] }, { @@ -419,7 +526,7 @@ "outputFields": [ { "field": "decision", - "description": "`\"block\"` prevents the slash command from expanding. Omit to allow it to proceed" + "description": "`\"block\"` prevents the command from expanding. Omit to allow it to proceed" }, { "field": "reason", @@ -452,6 +559,10 @@ { "field": "sessionTitle", "description": "Sets the session title. Use to name sessions automatically based on the prompt content" + }, + { + "field": "suppressOriginalPrompt", + "description": "If `true` when `decision` is `\"block\"`, omits the original prompt text from the block message shown to the user" } ] }, @@ -482,12 +593,12 @@ { "field": "if", "required": "no", - "description": "Permission rule syntax to filter when this hook runs, such as `\"Bash(git *)\"` or `\"Edit(*.ts)\"`. The hook only spawns if the tool call matches the pattern, or if a Bash command is too complex to parse. Only evaluated on tool events: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, and `PermissionDenied`. On other events, a hook with `if` set never runs. Uses the same syntax as [permission rules](/en/permissions)" + "description": "Permission rule syntax to filter when this hook runs, such as `\"Bash(git *)\"` or `\"Edit(*.ts)\"`. The hook command only runs if the tool call matches the pattern. See the [Bash matching table](#bash-if-matching) below for how Bash patterns evaluate against subcommands, `$()`, and backticks. Only evaluated on tool events: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, and `PermissionDenied`. On other events, a hook with `if` set never runs. Uses the same syntax as [permission rules](/en/permissions)" }, { "field": "timeout", "required": "no", - "description": "Seconds before canceling. Defaults: 600 for `command`, `http`, and `mcp_tool`; 30 for `prompt`; 60 for `agent`. [`UserPromptSubmit`](#userpromptsubmit) lowers the `command`, `http`, and `mcp_tool` default to 30" + "description": "Seconds before canceling. Defaults: 600 for `command`, `http`, and `mcp_tool`; 30 for `prompt`; 60 for `agent`. [`UserPromptSubmit`](#userpromptsubmit) lowers the `command`, `http`, and `mcp_tool` default to 30, and [`MessageDisplay`](#messagedisplay) lowers it to 10" }, { "field": "statusMessage", @@ -527,7 +638,7 @@ { "field": "shell", "required": "no", - "description": "Shell to use for this hook. Accepts `\"bash\"` (default) or `\"powershell\"`. Setting `\"powershell\"` runs the command via PowerShell on Windows. Does not require `CLAUDE_CODE_USE_POWERSHELL_TOOL` since hooks spawn PowerShell directly. Ignored when `args` is set" + "description": "Shell to use for this hook. Accepts `\"bash\"` or `\"powershell\"`. Defaults to `\"bash\"`, or to `\"powershell\"` on Windows when Git Bash isn't installed. Setting `\"powershell\"` runs the command via PowerShell on Windows. Does not require `CLAUDE_CODE_USE_POWERSHELL_TOOL` since hooks spawn PowerShell directly. Ignored when `args` is set" } ] }, @@ -577,7 +688,7 @@ { "field": "prompt", "required": "yes", - "description": "Prompt text to send to the model. Use `$ARGUMENTS` as a placeholder for the hook input JSON" + "description": "Prompt text to send to the model. Use `$ARGUMENTS` as a placeholder for the hook input JSON. Escape with a backslash to include literal text: `\\$1.00` renders as `$1.00`" }, { "field": "model", @@ -592,6 +703,10 @@ "field": "session_id", "description": "Current session identifier" }, + { + "field": "prompt_id", + "description": "UUID identifying the user prompt currently being processed. Matches the [`prompt.id` attribute on OpenTelemetry events](/en/monitoring-usage#event-correlation-attributes), so you can correlate hook output with telemetry for a single prompt. Absent until the first user input. {/* min-version: 2.1.196 */}Requires Claude Code v2.1.196 or later" + }, { "field": "transcript_path", "description": "Path to conversation JSON" @@ -602,11 +717,11 @@ }, { "field": "permission_mode", - "description": "Current [permission mode](/en/permissions#permission-modes): `\"default\"`, `\"plan\"`, `\"acceptEdits\"`, `\"auto\"`, `\"dontAsk\"`, or `\"bypassPermissions\"`. Not all events receive this field: see each event's JSON example below to check" + "description": "Current [permission mode](/en/permissions#permission-modes): `\"default\"`, `\"plan\"`, `\"acceptEdits\"`, `\"auto\"`, `\"dontAsk\"`, or `\"bypassPermissions\"`. The mode labeled **Manual** arrives as `\"default\"`, never as `\"manual\"`, so scripts that match `\"default\"` keep working. Not all events receive this field. Check the JSON example in each [hook event](#hook-events) section" }, { "field": "effort", - "description": "Object with a `level` field holding the active [effort level](/en/model-config#adjust-effort-level) for the turn: `\"low\"`, `\"medium\"`, `\"high\"`, `\"xhigh\"`, or `\"max\"`. If the requested effort exceeds what the current model supports, this is the downgraded level the model actually used, not the level you requested. The object matches the [status line](/en/statusline#available-data) `effort` field. Present for events that fire within a tool-use context, such as `PreToolUse`, `PostToolUse`, `Stop`, and `SubagentStop`, when the current model supports the effort parameter. The level is also available to hook commands and the Bash tool as the `$CLAUDE_EFFORT` environment variable." + "description": "Object with a `level` field holding the active [effort level](/en/model-config#adjust-effort-level) for the turn: `\"low\"`, `\"medium\"`, `\"high\"`, `\"xhigh\"`, or `\"max\"`. If the requested model effort exceeds what the current model supports, this is the downgraded level the model actually used. Ultracode is not a distinct level and reports as `\"xhigh\"`. The object matches the [status line](/en/statusline#available-data) `effort` field. Present for events that fire within a tool-use context, such as `PreToolUse`, `PostToolUse`, `Stop`, and `SubagentStop`, when the current model supports the effort parameter. The level is also available to hook commands and the Bash tool as the `$CLAUDE_EFFORT` environment variable." }, { "field": "hook_event_name", @@ -618,7 +733,7 @@ }, { "field": "agent_type", - "description": "Agent name (for example, `\"Explore\"` or `\"security-reviewer\"`). Present when the session uses `--agent` or the hook fires inside a subagent. For subagents, the subagent's type takes precedence over the session's `--agent` value. For [custom subagents](/en/sub-agents), this is the `name` field from the agent's frontmatter, not the filename." + "description": "Agent name (for example, `\"Explore\"` or `\"security-reviewer\"`). Present when the session uses `--agent` or the hook fires inside a subagent. For subagents, the subagent's type takes precedence over the session's `--agent` value. For [custom subagents](/en/sub-agents), this is the `name` field from the agent's frontmatter, not the filename. For subagents shipped by a [plugin](/en/plugins), this is the plugin-scoped identifier such as `my-plugin:reviewer`, not the bare frontmatter name. See [SubagentStart](#subagentstart) for how to write a matcher against a plugin-scoped name." } ] } diff --git a/catalog/keybindings.json b/catalog/keybindings.json index 830fbb3..b953319 100644 --- a/catalog/keybindings.json +++ b/catalog/keybindings.json @@ -1,6 +1,6 @@ { "source": "https://code.claude.com/docs/en/keybindings.md", - "fetchedAt": "2026-05-18T12:35:00.020Z", + "fetchedAt": "2026-07-06T12:50:19.728Z", "count": 20, "contexts": [ { diff --git a/catalog/mcp.json b/catalog/mcp.json index 2a643a7..9b04bf5 100644 --- a/catalog/mcp.json +++ b/catalog/mcp.json @@ -1,6 +1,6 @@ { "source": "https://code.claude.com/docs/en/mcp.md", - "fetchedAt": "2026-05-18T12:34:59.431Z", + "fetchedAt": "2026-07-06T12:50:18.346Z", "count": 3, "scopes": [ { diff --git a/catalog/model-config.json b/catalog/model-config.json index 40a8657..cd76a06 100644 --- a/catalog/model-config.json +++ b/catalog/model-config.json @@ -1,11 +1,11 @@ { "source": "https://code.claude.com/docs/en/model-config.md", - "fetchedAt": "2026-05-22T14:01:08.197Z", - "count": 5, + "fetchedAt": "2026-07-06T12:50:21.011Z", + "count": 6, "effortLevels": [ { "name": "high", - "description": "Balances token usage and intelligence. Use as a minimum for intelligence-sensitive work, or to reduce token spend relative to `xhigh`" + "description": "Balances token usage and intelligence. Default on Fable 5, Sonnet 5, Opus 4.8, Opus 4.6, and Sonnet 4.6" }, { "name": "low", @@ -19,9 +19,13 @@ "name": "medium", "description": "Reduces token usage for cost-sensitive work that can trade off some intelligence" }, + { + "name": "ultracode", + "description": "A Claude Code setting that plans a [dynamic workflow](/en/workflows) for each substantive task with `xhigh` per-message reasoning. Session-only" + }, { "name": "xhigh", - "description": "Best results for most coding and agentic tasks. Recommended default on Opus 4.7" + "description": "Deeper reasoning at higher token spend. Default on Opus 4.7" } ] } diff --git a/catalog/permissions.json b/catalog/permissions.json index 35f6a5c..adb2041 100644 --- a/catalog/permissions.json +++ b/catalog/permissions.json @@ -1,11 +1,11 @@ { "source": "https://code.claude.com/docs/en/permissions.md", - "fetchedAt": "2026-05-18T12:34:59.743Z", + "fetchedAt": "2026-07-06T12:50:18.954Z", "count": 6, "modes": [ { "name": "acceptEdits", - "description": "Automatically accepts file edits and common filesystem commands (`mkdir`, `touch`, `mv`, `cp`, etc.) for paths in the working directory or `additionalDirectories`" + "description": "Automatically accepts file edits and common filesystem commands such as `mkdir`, `touch`, `mv`, and `cp` for paths in the working directory or `additionalDirectories`" }, { "name": "auto", @@ -13,11 +13,11 @@ }, { "name": "bypassPermissions", - "description": "Skips all permission prompts. Root and home directory removals such as `rm -rf /` still prompt as a circuit breaker" + "description": "Skips permission prompts, except those forced by explicit `ask` rules. Root and home directory removals such as `rm -rf /` also still prompt as a circuit breaker" }, { "name": "default", - "description": "Standard behavior: prompts for permission on first use of each tool" + "description": "Standard behavior: prompts for permission on first use of each tool. {/* min-version: 2.1.200 */}Labeled Manual in the CLI and the VS Code and JetBrains extensions, and Claude Code accepts `manual` as an alias. The label and alias require Claude Code v2.1.200 or later" }, { "name": "dontAsk", @@ -25,7 +25,7 @@ }, { "name": "plan", - "description": "Plan Mode: Claude reads files and runs read-only shell commands to explore but does not edit your source files" + "description": "Plan Mode: Claude reads files and runs read-only shell commands to explore but doesn't edit your source files" } ] } diff --git a/catalog/settings.json b/catalog/settings.json index 89f9704..3760ea9 100644 --- a/catalog/settings.json +++ b/catalog/settings.json @@ -1,27 +1,42 @@ { "source": "https://json.schemastore.org/claude-code-settings.json", "schemaId": "https://json.schemastore.org/claude-code-settings.json", - "fetchedAt": "2026-05-18T12:34:58.226Z", - "count": 304, + "fetchedAt": "2026-07-06T12:50:13.974Z", + "count": 531, "settings": [ { "key": "$schema", "type": "string", "description": "JSON Schema reference for Claude Code settings" }, + { + "key": "advisorModel", + "type": "string", + "description": "Model for the server-side advisor tool. Accepts a model alias (\"opus\", \"sonnet\", or \"fable\" on v2.1.170+) or a full model ID. Overridden by the --advisor CLI flag for the session, and blocked when the model is outside the availableModels allowlist. See https://code.claude.com/docs/en/advisor" + }, { "key": "agent", "type": "string", "minLength": 1, "description": "Name of an agent (built-in or custom) to use for the main thread. Applies the agent's system prompt, tool restrictions, and model. See https://code.claude.com/docs/en/sub-agents" }, + { + "key": "agentPushNotifEnabled", + "type": "boolean", + "default": false, + "description": "When Remote Control is connected, allow Claude to send proactive push notifications to your phone, for example when a long task finishes. Requires Claude Code v2.1.119 or later. See https://code.claude.com/docs/en/remote-control#mobile-push-notifications" + }, + { + "key": "allowAllClaudeAiMcps", + "type": "boolean", + "description": "(Managed settings only) Load claude.ai connectors alongside a deployed managed-mcp.json, which otherwise takes exclusive control and suppresses them. See https://code.claude.com/docs/en/managed-mcp" + }, { "key": "allowedChannelPlugins", "type": "array", - "description": "(Managed settings only) Allowlist of plugin IDs whose MCP servers may advertise channel notifications when channelsEnabled is true. When set, only the listed plugins can push inbound messages. See https://code.claude.com/docs/en/mcp", + "description": "(Managed settings only) Allowlist of channel plugins that may run, each identified by its marketplace and plugin name. When set, only the listed plugins can push inbound channel messages while channelsEnabled is true. Replaces the default Anthropic allowlist when set; undefined falls back to the default and an empty array blocks all channel plugins. Requires channelsEnabled: true. See https://code.claude.com/docs/en/channels#restrict-which-channel-plugins-can-run", "items": { - "type": "string", - "minLength": 1 + "type": "object" } }, { @@ -99,7 +114,7 @@ { "key": "allowManagedMcpServersOnly", "type": "boolean", - "description": "(Managed settings only) Only allowedMcpServers from managed settings are respected. deniedMcpServers still merges from all sources. Users can still add their own MCP servers, but only the admin-defined allowlist applies." + "description": "(Managed settings only) When true, only allowedMcpServers from managed settings are respected; MCP servers defined in user, project, or local settings are ignored. deniedMcpServers still merges from all sources. See https://code.claude.com/docs/en/managed-mcp" }, { "key": "allowManagedPermissionRulesOnly", @@ -135,6 +150,12 @@ "type": "string", "description": "Attribution for pull request descriptions. Empty string hides pull request attribution" }, + { + "key": "autoCompactEnabled", + "type": "boolean", + "default": true, + "description": "Automatically compact the conversation when context approaches the limit. Also configurable via the DISABLE_AUTO_COMPACT environment variable. See https://code.claude.com/docs/en/settings#available-settings" + }, { "key": "autoMemoryDirectory", "type": "string", @@ -160,6 +181,12 @@ "type": "string" } }, + { + "key": "autoMode.classifyAllShell", + "type": "boolean", + "default": false, + "description": "UNDOCUMENTED. Route all Bash/PowerShell commands through the auto mode classifier instead of only arbitrary-code-execution patterns (added in v2.1.193)." + }, { "key": "autoMode.environment", "type": "array", @@ -168,6 +195,14 @@ "type": "string" } }, + { + "key": "autoMode.hard_deny", + "type": "array", + "description": "Rules for the auto mode classifier hard-deny section. Hard-deny rules block unconditionally regardless of user intent. Replaces the built-in hard-deny rules entirely unless the literal string \"$defaults\" is included as an entry, which splices the built-in defaults in at that position. See https://code.claude.com/docs/en/permissions", + "items": { + "type": "string" + } + }, { "key": "autoMode.soft_deny", "type": "array", @@ -176,6 +211,12 @@ "type": "string" } }, + { + "key": "autoScrollEnabled", + "type": "boolean", + "default": true, + "description": "In fullscreen rendering, follow new output to the bottom of the conversation. Appears in /config as Auto-scroll. Permission prompts still scroll into view when this is off. See https://code.claude.com/docs/en/fullscreen" + }, { "key": "autoUpdatesChannel", "type": "string", @@ -200,6 +241,12 @@ "type": "string" } }, + { + "key": "awaySummaryEnabled", + "type": "boolean", + "default": true, + "description": "Show a one-line session recap when you return to the terminal after a few minutes away. Set to false (or turn off Session recap in /config) to disable. See https://code.claude.com/docs/en/settings#available-settings" + }, { "key": "awsAuthRefresh", "type": "string", @@ -207,7 +254,7 @@ "examples": [ "aws sso login --profile myprofile" ], - "description": "Path to a script that refreshes AWS authentication. See https://code.claude.com/docs/en/settings#available-settings" + "description": "Command to run when AWS credentials are expired or unavailable; its output is shown to the user but interactive input is not supported. Also drives the \"Claude Platform on AWS · refresh credentials\" option in /login when configured. See https://code.claude.com/docs/en/amazon-bedrock#advanced-credential-configuration" }, { "key": "awsCredentialExport", @@ -216,7 +263,12 @@ "examples": [ "/bin/generate_aws_grant.sh" ], - "description": "Path to a script that exports AWS credentials. See https://code.claude.com/docs/en/settings#available-settings" + "description": "Command that outputs AWS credentials as JSON (in the form {\"Credentials\": {\"AccessKeyId\": ..., \"SecretAccessKey\": ..., \"SessionToken\": ...}}). The output is captured silently. Use when you cannot modify the .aws directory and must return credentials directly. See https://code.claude.com/docs/en/amazon-bedrock#advanced-credential-configuration" + }, + { + "key": "axScreenReader", + "type": "boolean", + "description": "Render screen-reader-friendly output: flat text without decorative borders or animations screen-reader mode always uses the classic renderer, so the tui setting has no effect while it is active. The CLAUDE_AX_SCREEN_READER environment variable and --ax-screen-reader flag take precedence. Requires Claude Code v2.1.181 or later. See https://code.claude.com/docs/en/settings#available-settings" }, { "key": "blockedMarketplaces", @@ -407,8 +459,12 @@ { "key": "channelsEnabled", "type": "boolean", - "default": false, - "description": "(Teams/Enterprise) Opt-in for channel notifications — MCP servers with the claude/channel capability pushing inbound messages. Default off. When true, users can select servers via --channels. See https://code.claude.com/docs/en/mcp" + "description": "(Managed settings only) Allow channels for the organization. On claude.ai Team and Enterprise plans, channels are blocked when this is unset or false. For Anthropic Console accounts using API key authentication, channels are allowed by default unless the organization deploys managed settings, in which case this key must be set to true. See https://code.claude.com/docs/en/channels#enterprise-controls" + }, + { + "key": "claudeMd", + "type": "string", + "description": "(Managed settings only) CLAUDE.md-style instructions injected as organization-managed memory. Honored only from managed/policy settings. See https://code.claude.com/docs/en/settings#available-settings" }, { "key": "claudeMdExcludes", @@ -507,11 +563,39 @@ ] } }, + { + "key": "disableAgentView", + "type": "boolean", + "description": "(Managed settings) Turn off background agents and the agent view: claude agents, --bg, /background, and the on-demand supervisor. Also configurable via the CLAUDE_CODE_DISABLE_AGENT_VIEW environment variable (set to 1 to disable). See https://code.claude.com/docs/en/agent-view" + }, { "key": "disableAllHooks", "type": "boolean", "description": "Disable all hooks and statusLine execution. When true in managed settings, user and project-level disableAllHooks cannot override it. See https://code.claude.com/docs/en/hooks#disable-or-remove-hooks" }, + { + "key": "disableArtifact", + "type": "boolean", + "description": "Disable the Artifact tool, which publishes session output as a private web page on claude.ai. Also configurable via the CLAUDE_CODE_DISABLE_ARTIFACT environment variable. See https://code.claude.com/docs/en/settings#available-settings" + }, + { + "key": "disableAutoMode", + "type": "string", + "enum": [ + "disable" + ], + "description": "Set to \"disable\" to prevent auto mode from being activated: removes auto from the Shift+Tab cycle and rejects --permission-mode auto at startup. See https://code.claude.com/docs/en/settings#available-settings" + }, + { + "key": "disableBundledSkills", + "type": "boolean", + "description": "Disable the skills and workflows that ship with Claude Code: bundled skills and workflows are removed entirely, while built-in slash commands like /init stay typable but are hidden from the model. Skills from plugins, .claude/skills/, and .claude/commands/ are unaffected. Also configurable via the CLAUDE_CODE_DISABLE_BUNDLED_SKILLS environment variable. See https://code.claude.com/docs/en/settings#available-settings" + }, + { + "key": "disableClaudeAiConnectors", + "type": "boolean", + "description": "Disable claude.ai MCP connectors so they are not auto-fetched or connected. A value of true in any settings source takes precedence. Requires Claude Code v2.1.182 or later. See https://code.claude.com/docs/en/settings#available-settings" + }, { "key": "disableDeepLinkRegistration", "type": "string", @@ -534,11 +618,32 @@ "minLength": 1 } }, + { + "key": "disableRemoteControl", + "type": "boolean", + "description": "Disable Remote Control: blocks claude remote-control, the --remote-control flag, auto-start, and the in-session toggle. Requires Claude Code v2.1.128 or later. See https://code.claude.com/docs/en/remote-control" + }, { "key": "disableSkillShellExecution", "type": "boolean", "description": "Disable inline shell execution for `` !`...` `` and ` ```! ` blocks in skills and custom slash commands from user, project, plugin, or additional-directory sources. Commands are replaced with [shell command execution disabled by policy] instead of being run. Bundled and managed skills are not affected. Most useful in managed settings where users cannot override it. See https://code.claude.com/docs/en/settings#available-settings" }, + { + "key": "disableWorkflows", + "type": "boolean", + "default": false, + "description": "Disable dynamic workflows and bundled workflow commands. Also configurable via the CLAUDE_CODE_DISABLE_WORKFLOWS environment variable. See https://code.claude.com/docs/en/settings#available-settings" + }, + { + "key": "editorMode", + "type": "string", + "enum": [ + "normal", + "vim" + ], + "default": "normal", + "description": "Key binding mode for the input prompt: \"normal\" or \"vim\". Appears in /config as Editor mode. See https://code.claude.com/docs/en/terminal-config#edit-prompts-with-vim-keybindings" + }, { "key": "effortLevel", "type": "string", @@ -546,10 +651,9 @@ "low", "medium", "high", - "xhigh", - "max" + "xhigh" ], - "description": "Persist adaptive reasoning effort across sessions. Effort is supported on Opus 4.7, Opus 4.6, and Sonnet 4.6. Opus 4.7 supports low/medium/high/xhigh/max (xhigh sits between high and max, added in v2.1.111); Opus 4.6 and Sonnet 4.6 support low/medium/high/max (xhigh falls back to high). Defaults: Opus 4.6 and Sonnet 4.6 default to high on all plans (Pro/Max raised from medium to high in v2.1.117); Opus 4.7 defaults to xhigh on Max plan. The max value is session-only unless set via CLAUDE_CODE_EFFORT_LEVEL. Use /effort auto to reset to model default. Also configurable via CLAUDE_CODE_EFFORT_LEVEL environment variable. See https://code.claude.com/docs/en/model-config#adjust-effort-level" + "description": "Persist adaptive reasoning effort across sessions. Set to low, medium, high, or xhigh; max and ultracode are session-only and are not accepted in the settings file (use the CLAUDE_CODE_EFFORT_LEVEL environment variable or /effort for a session-only max). Effort is supported on Fable 5, Opus 4.8, Opus 4.7, Opus 4.6, and Sonnet 4.6, with xhigh sitting between high and max (added in v2.1.111). Defaults: Fable 5 and Opus 4.8 default to high; Opus 4.6 and Sonnet 4.6 default to high on all plans (Pro/Max raised from medium to high in v2.1.117); Opus 4.7 defaults to xhigh. Use /effort auto to reset to model default. Also configurable via CLAUDE_CODE_EFFORT_LEVEL environment variable. See https://code.claude.com/docs/en/model-config#adjust-effort-level" }, { "key": "enableAllProjectMcpServers", @@ -579,6 +683,11 @@ "type": "object", "description": "Enabled plugins using plugin-id@marketplace-id format. Example: { \"formatter@anthropic-tools\": true }. See https://code.claude.com/docs/en/plugins" }, + { + "key": "enforceAvailableModels", + "type": "boolean", + "description": "(Managed settings) Extend the availableModels allowlist to the Default model option (requires v2.1.175+). Requires a non-empty availableModels list; when the account-type default is not in the allowlist, Default resolves to the first allowed entry instead. Has no effect when availableModels is unset or empty. See https://code.claude.com/docs/en/model-config#enforce-the-allowlist-for-the-default-model" + }, { "key": "env", "type": "object", @@ -601,6 +710,21 @@ "type": "string", "description": "Custom Authorization header bearer token for API requests" }, + { + "key": "env.ANTHROPIC_AWS_API_KEY", + "type": "string", + "description": "Workspace API key for Claude Platform on AWS; takes precedence over SigV4 authentication. See https://code.claude.com/docs/en/claude-platform-on-aws#1-configure-aws-credentials" + }, + { + "key": "env.ANTHROPIC_AWS_BASE_URL", + "type": "string", + "description": "Override the Claude Platform on AWS endpoint URL. Default is https://aws-external-anthropic.{region}.api.aws. See https://code.claude.com/docs/en/claude-platform-on-aws#route-through-a-corporate-proxy" + }, + { + "key": "env.ANTHROPIC_AWS_WORKSPACE_ID", + "type": "string", + "description": "Required workspace ID for Claude Platform on AWS; sent as the anthropic-workspace-id header on every request. See https://code.claude.com/docs/en/claude-platform-on-aws#2-configure-claude-code" + }, { "key": "env.ANTHROPIC_BASE_URL", "type": "string", @@ -656,21 +780,86 @@ "type": "string", "description": "JSON object specifying capability flags for the custom model" }, + { + "key": "env.ANTHROPIC_DEFAULT_FABLE_MODEL", + "type": "string", + "description": "Override the default Fable-class model ID. See https://code.claude.com/docs/en/model-config#environment-variables" + }, + { + "key": "env.ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION", + "type": "string", + "description": "Display description shown for the Fable model in the model picker. See https://code.claude.com/docs/en/model-config#customize-pinned-model-display-and-capabilities" + }, + { + "key": "env.ANTHROPIC_DEFAULT_FABLE_MODEL_NAME", + "type": "string", + "description": "Display name shown for the Fable model in the model picker. See https://code.claude.com/docs/en/model-config#customize-pinned-model-display-and-capabilities" + }, + { + "key": "env.ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES", + "type": "string", + "description": "Comma-separated list of capabilities the pinned Fable model supports. See https://code.claude.com/docs/en/model-config#customize-pinned-model-display-and-capabilities" + }, { "key": "env.ANTHROPIC_DEFAULT_HAIKU_MODEL", "type": "string", "description": "Override default Haiku model ID" }, + { + "key": "env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION", + "type": "string", + "description": "Display description shown for the Haiku model in the model picker. See https://code.claude.com/docs/en/model-config#customize-pinned-model-display-and-capabilities" + }, + { + "key": "env.ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME", + "type": "string", + "description": "Display name shown for the Haiku model in the model picker. See https://code.claude.com/docs/en/model-config#customize-pinned-model-display-and-capabilities" + }, + { + "key": "env.ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES", + "type": "string", + "description": "Comma-separated list of capabilities the pinned Haiku model supports. See https://code.claude.com/docs/en/model-config#customize-pinned-model-display-and-capabilities" + }, { "key": "env.ANTHROPIC_DEFAULT_OPUS_MODEL", "type": "string", "description": "Override default Opus model ID" }, + { + "key": "env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION", + "type": "string", + "description": "Display description shown for the Opus model in the model picker. See https://code.claude.com/docs/en/model-config#customize-pinned-model-display-and-capabilities" + }, + { + "key": "env.ANTHROPIC_DEFAULT_OPUS_MODEL_NAME", + "type": "string", + "description": "Display name shown for the Opus model in the model picker. See https://code.claude.com/docs/en/model-config#customize-pinned-model-display-and-capabilities" + }, + { + "key": "env.ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES", + "type": "string", + "description": "Comma-separated list of capabilities the pinned Opus model supports. See https://code.claude.com/docs/en/model-config#customize-pinned-model-display-and-capabilities" + }, { "key": "env.ANTHROPIC_DEFAULT_SONNET_MODEL", "type": "string", "description": "Override default Sonnet model ID" }, + { + "key": "env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION", + "type": "string", + "description": "Display description shown for the Sonnet model in the model picker. See https://code.claude.com/docs/en/model-config#customize-pinned-model-display-and-capabilities" + }, + { + "key": "env.ANTHROPIC_DEFAULT_SONNET_MODEL_NAME", + "type": "string", + "description": "Display name shown for the Sonnet model in the model picker. See https://code.claude.com/docs/en/model-config#customize-pinned-model-display-and-capabilities" + }, + { + "key": "env.ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES", + "type": "string", + "description": "Comma-separated list of capabilities the pinned Sonnet model supports. See https://code.claude.com/docs/en/model-config#customize-pinned-model-display-and-capabilities" + }, { "key": "env.ANTHROPIC_FOUNDRY_API_KEY", "type": "string", @@ -694,7 +883,12 @@ { "key": "env.ANTHROPIC_SMALL_FAST_MODEL", "type": "string", - "description": "Model to use for background and low-complexity tasks (e.g., 'claude-3-5-haiku-latest')" + "description": "DEPRECATED (prefer ANTHROPIC_DEFAULT_HAIKU_MODEL). Haiku-class model to use for background and low-complexity tasks (e.g., 'claude-3-5-haiku-latest')" + }, + { + "key": "env.ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION", + "type": "string", + "description": "Override the AWS region for the Haiku-class model on Bedrock and Bedrock Mantle. Has no effect without ANTHROPIC_DEFAULT_HAIKU_MODEL (or the deprecated ANTHROPIC_SMALL_FAST_MODEL) set on Bedrock. See https://code.claude.com/docs/en/amazon-bedrock#3-configure-claude-code" }, { "key": "env.ANTHROPIC_VERTEX_BASE_URL", @@ -706,6 +900,16 @@ "type": "string", "description": "Google Vertex AI project ID" }, + { + "key": "env.ANTHROPIC_WORKSPACE_ID", + "type": "string", + "description": "Workspace ID for workload identity federation. Scopes the minted token to a specific workspace when the federation rule covers more than one. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.API_FORCE_IDLE_TIMEOUT", + "type": "string", + "description": "Override the 5-minute idle timeout for streaming responses (0 disables it). See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.API_TIMEOUT_MS", "type": "string", @@ -716,6 +920,11 @@ "type": "string", "description": "Bearer token for Bedrock API authentication" }, + { + "key": "env.AWS_REGION", + "type": "string", + "description": "AWS region for Amazon Bedrock and Claude Platform on AWS requests (e.g. us-east-1). See https://code.claude.com/docs/en/amazon-bedrock#3-configure-claude-code" + }, { "key": "env.BASH_DEFAULT_TIMEOUT_MS", "type": "string", @@ -731,6 +940,11 @@ "type": "string", "description": "Maximum bash command timeout in milliseconds (default: 600000)" }, + { + "key": "env.BETA_TRACING_ENDPOINT", + "type": "string", + "description": "Endpoint that, together with ENABLE_BETA_TRACING_DETAILED=1, activates detailed beta tracing spans (e.g. claude_code.hook). See https://code.claude.com/docs/en/monitoring-usage#traces-beta" + }, { "key": "env.CCR_FORCE_BUNDLE", "type": "string", @@ -758,6 +972,11 @@ ], "description": "Skip 'mcp____' prefix on MCP tool names in Agent SDK" }, + { + "key": "env.CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS", + "type": "string", + "description": "Stall timeout for background subagents in milliseconds (default 600000). The timer resets on each streaming progress event; if no progress arrives within the window the subagent is aborted and the task is marked failed, surfacing any partial result to the parent. See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_AUTO_BACKGROUND_TASKS", "type": "string", @@ -772,6 +991,15 @@ "type": "string", "description": "Context capacity percentage threshold for auto-compaction (1-100)" }, + { + "key": "env.CLAUDE_AX_SCREEN_READER", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to render screen-reader friendly output: flat text without decorative borders or animations. Set to 0 to force screen-reader mode off even when axScreenReader is true. The --ax-screen-reader flag takes precedence. Requires Claude Code v2.1.181 or later. See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR", "type": "string", @@ -781,6 +1009,11 @@ ], "description": "Return to original project directory after each bash command" }, + { + "key": "env.CLAUDE_CLIENT_PRESENCE_FILE", + "type": "string", + "description": "Path to a file whose existence marks the user as present; while it exists, mobile push notifications are skipped (v2.1.181+). See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_ACCESSIBILITY", "type": "string", @@ -799,11 +1032,38 @@ ], "description": "Load CLAUDE.md memory files from additional directories" }, + { + "key": "env.CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Force a full-screen repaint on every frame in fullscreen mode. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_CODE_ALWAYS_ENABLE_EFFORT", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Send the effort parameter for all models, not just those with effort enabled by default. See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_API_KEY_HELPER_TTL_MS", "type": "string", "description": "Credential helper refresh interval in milliseconds" }, + { + "key": "env.CLAUDE_CODE_ARTIFACT_AUTO_OPEN", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 0 to stop auto-opening the browser when a new artifact is created. See https://code.claude.com/docs/en/artifacts#create-an-artifact" + }, { "key": "env.CLAUDE_CODE_ATTRIBUTION_HEADER", "type": "string", @@ -832,6 +1092,15 @@ "type": "string", "description": "CA certificate sources (comma-separated: 'bundled', 'system')" }, + { + "key": "env.CLAUDE_CODE_CHILD_SESSION", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set by Claude Code to 1 in nested subprocesses (Bash, PowerShell, Monitor, hook commands, status-line commands) to distinguish nested sessions from a top-level claude launched in IDE terminals (v2.1.172+). A nested interactive claude TUI started this way is excluded from --resume, --continue, up-arrow history, and the claude agents list; non-interactive claude -p sessions still persist (override with CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1). See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_CLIENT_CERT", "type": "string", @@ -882,6 +1151,42 @@ ], "description": "Disable adaptive reasoning" }, + { + "key": "env.CLAUDE_CODE_DISABLE_ADVISOR_TOOL", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Disable the server-side advisor tool. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_CODE_DISABLE_AGENT_VIEW", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Turn off background agents and agent view (claude agents, --bg, /background, and the on-demand supervisor). Equivalent to the disableAgentView setting. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Disable alternate screen buffer rendering. When set to 1, keeps conversation in native scrollback instead of fullscreen renderer" + }, + { + "key": "env.CLAUDE_CODE_DISABLE_ARTIFACT", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Disable the Artifact tool. Equivalent to setting disableArtifact. See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_DISABLE_ATTACHMENTS", "type": "string", @@ -909,6 +1214,24 @@ ], "description": "Disable all background task functionality" }, + { + "key": "env.CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "UNDOCUMENTED. Disable automatic memory-pressure reaping of idle background shell commands (added v2.1.193)." + }, + { + "key": "env.CLAUDE_CODE_DISABLE_BUNDLED_SKILLS", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Disable the skills and workflows bundled with Claude Code (plugins and project .claude/skills are unaffected). See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_DISABLE_CLAUDE_MDS", "type": "string", @@ -961,7 +1284,7 @@ "0", "1" ], - "description": "Disable file checkpointing for undo/restore" + "description": "Disable file checkpointing for /rewind" }, { "key": "env.CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS", @@ -990,6 +1313,15 @@ ], "description": "Disable mouse tracking in fullscreen mode" }, + { + "key": "env.CLAUDE_CODE_DISABLE_MOUSE_CLICKS", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "UNDOCUMENTED. Disable mouse click/drag/hover in fullscreen mode while keeping wheel scroll (added v2.1.195)." + }, { "key": "env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC", "type": "string", @@ -1053,6 +1385,15 @@ ], "description": "Disable virtual scrolling in fullscreen mode" }, + { + "key": "env.CLAUDE_CODE_DISABLE_WORKFLOWS", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to disable workflows. Equivalent to the disableWorkflows setting. See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_EFFORT_LEVEL", "type": "string", @@ -1066,6 +1407,15 @@ ], "description": "Reasoning effort level" }, + { + "key": "env.CLAUDE_CODE_ENABLE_AUTO_MODE", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to make auto mode available on Amazon Bedrock, Google Cloud Vertex AI, and Microsoft Foundry (requires v2.1.158+; no effect on the Anthropic API where auto mode is available by default). See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_ENABLE_AWAY_SUMMARY", "type": "string", @@ -1085,40 +1435,67 @@ "description": "Refresh plugins at turn boundaries" }, { - "key": "env.CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING", + "key": "env.CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL", "type": "string", "enum": [ "0", "1" ], - "description": "Force fine-grained tool output streaming" + "description": "Enable feedback survey collection via OpenTelemetry for enterprises" }, { - "key": "env.CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION", + "key": "env.CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING", "type": "string", "enum": [ - "true", - "false" + "0", + "1" ], - "description": "Enable prompt suggestions" + "description": "Force fine-grained tool output streaming" }, { - "key": "env.CLAUDE_CODE_ENABLE_TASKS", + "key": "env.CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY", "type": "string", "enum": [ "0", "1" ], - "description": "Enable task tracking in non-interactive mode" + "description": "Enable model discovery from LLM gateway /v1/models endpoint when ANTHROPIC_BASE_URL points at an Anthropic-compatible gateway" }, { - "key": "env.CLAUDE_CODE_ENABLE_TELEMETRY", + "key": "env.CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION", + "type": "string", + "enum": [ + "true", + "false" + ], + "description": "Enable prompt suggestions" + }, + { + "key": "env.CLAUDE_CODE_ENABLE_TASKS", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Enable task tracking in non-interactive mode" + }, + { + "key": "env.CLAUDE_CODE_ENABLE_TELEMETRY", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to enable telemetry collection. Required for all OpenTelemetry integration. See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.CLAUDE_CODE_ENHANCED_TELEMETRY_BETA", "type": "string", "enum": [ "0", "1" ], - "description": "Enable OpenTelemetry collection" + "description": "Enable the enhanced telemetry (tracing) beta. ENABLE_ENHANCED_TELEMETRY_BETA is also accepted. See https://code.claude.com/docs/en/monitoring-usage#traces-beta" }, { "key": "env.CLAUDE_CODE_EXIT_AFTER_STOP_DELAY", @@ -1144,6 +1521,33 @@ "type": "string", "description": "Token limit for file read operations" }, + { + "key": "env.CLAUDE_CODE_FORCE_SESSION_PERSISTENCE", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to override the automatic exclusion of nested interactive claude TUI sessions from --resume, --continue, up-arrow history, and the claude agents list (requires v2.1.172+). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_CODE_FORCE_STRIKETHROUGH", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to force strikethrough rendering for ~~text~~ in Claude's responses when the terminal supports it but is not auto-detected, such as over SSH without TERM_PROGRAM forwarded. Without this, undetected terminals show the literal ~~ markers. Requires Claude Code v2.1.186 or later. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_CODE_FORCE_SYNC_OUTPUT", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Force synchronous output flushing. When set to 1, forces synchronized output on terminals that auto-detection misses (e.g., Emacs eat)" + }, { "key": "env.CLAUDE_CODE_FORK_SUBAGENT", "type": "string", @@ -1233,6 +1637,11 @@ "type": "string", "description": "Maximum parallel tool executions (default: 10)" }, + { + "key": "env.CLAUDE_CODE_MAX_TURNS", + "type": "string", + "description": "Cap the number of agentic turns when no explicit limit is passed. Equivalent to --max-turns, which takes precedence. A non-positive integer is rejected at startup. See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_MCP_ALLOWLIST_ENV", "type": "string", @@ -1242,6 +1651,20 @@ ], "description": "Isolate MCP server environments to allowlisted variables" }, + { + "key": "env.CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT", + "type": "string", + "description": "Idle timeout in milliseconds for remote MCP tool calls (default: 300000, about 5 minutes). When an HTTP, SSE, WebSocket, or claude.ai connector MCP server sends no response and no progress notification for this long, the tool call aborts with an error instead of waiting for the overall MCP_TOOL_TIMEOUT. Set to 0 to disable the idle check. Values below 1000 are raised to one second, and the value is capped at the effective MCP_TOOL_TIMEOUT. Does not apply to stdio or IDE servers. Requires Claude Code v2.1.187 or later. See https://code.claude.com/docs/en/mcp" + }, + { + "key": "env.CLAUDE_CODE_NATIVE_CURSOR", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to show the terminal's own cursor at the input caret instead of a drawn block. The cursor respects the terminal's blink, shape, and focus settings. See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_NEW_INIT", "type": "string", @@ -1275,6 +1698,24 @@ "type": "string", "description": "OAuth access token" }, + { + "key": "env.CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to pin fast mode to Claude Opus 4.6 instead of the default Opus 4.8 (the fast-mode default since v2.1.154). With this set, /fast runs on Opus 4.6. See https://code.claude.com/docs/en/fast-mode" + }, + { + "key": "env.CLAUDE_CODE_OTEL_DIAG_STDERR", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to write OpenTelemetry exporter diagnostic errors to stderr (otherwise shown only with --debug). Requires v2.1.179+. See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS", "type": "string", @@ -1290,6 +1731,15 @@ "type": "string", "description": "OpenTelemetry shutdown timeout in milliseconds (default: 2000)" }, + { + "key": "env.CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Enable automatic package manager updates. When set, Claude Code runs the upgrade command in background on Homebrew/WinGet and prompts to restart" + }, { "key": "env.CLAUDE_CODE_PERFORCE_MODE", "type": "string", @@ -1318,11 +1768,43 @@ ], "description": "Keep plugin cache on update failure" }, + { + "key": "env.CLAUDE_CODE_PLUGIN_PREFER_HTTPS", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to clone GitHub owner/repo plugin sources over HTTPS instead of SSH. Useful in CI runners, containers, or environments without a configured SSH key for github.com. See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_PLUGIN_SEED_DIR", "type": "string", "description": "Path(s) to pre-populated plugin directories" }, + { + "key": "env.CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to stop Claude Code from passing -ExecutionPolicy Bypass when spawning PowerShell for tool calls, hooks, and status line commands. By default Claude Code bypasses execution policy so .ps1 scripts work on default-Restricted Windows installs. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS", + "type": "string", + "description": "Cap, in milliseconds, on how long `claude -p` waits for background subagents at exit (default 10 minutes; set to 0 to wait without limit, added v2.1.182). See https://code.claude.com/docs/en/headless#background-tasks-at-exit" + }, + { + "key": "env.CLAUDE_CODE_PROPAGATE_TRACEPARENT", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Propagate the W3C traceparent header on API requests when using a custom ANTHROPIC_BASE_URL. See https://code.claude.com/docs/en/monitoring-usage#traces-beta" + }, { "key": "env.CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST", "type": "string", @@ -1364,6 +1846,29 @@ ], "description": "Automatically resume from a mid-turn interruption" }, + { + "key": "env.CLAUDE_CODE_RESUME_PROMPT", + "type": "string", + "description": "Override the continuation message injected when resuming a session that ended mid-turn (default \"Continue from where you left off.\"). An empty string uses the default. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_CODE_RETRY_WATCHDOG", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 for unattended sessions (eval harnesses, CI, remote workers) to retry 429/529 capacity errors indefinitely, backing off up to 5 minutes, instead of failing after CLAUDE_CODE_MAX_RETRIES. Requires v2.1.186+. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_CODE_SAFE_MODE", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to start in safe mode: CLAUDE.md, skills, plugins, hooks, MCP servers, custom commands and agents, output styles, workflows, custom themes, custom keybindings, status line and file-suggestion commands, LSP servers, and auto-memory do not load, for troubleshooting a broken configuration. Managed settings policy still applies. Equivalent to passing --safe-mode; directly spawned child processes inherit the variable. See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_SCRIPT_CAPS", "type": "string", @@ -1375,9 +1880,14 @@ "description": "Mouse wheel scroll speed multiplier (1-20)" }, { - "key": "env.CLAUDE_CODE_SESSION_END_HOOKS_TIMEOUT_MS", + "key": "env.CLAUDE_CODE_SESSION_ID", + "type": "string", + "description": "Set automatically to the current session ID in Bash/PowerShell tool subprocesses, hook command subprocesses, and stdio MCP server subprocesses. Read-only. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS", "type": "string", - "description": "Time budget in milliseconds for SessionEnd hooks" + "description": "Override the time budget in milliseconds for SessionEnd hooks (default 1500, raised up to 60000 by the highest configured per-hook timeout). See https://code.claude.com/docs/en/env-vars" }, { "key": "env.CLAUDE_CODE_SHELL", @@ -1407,6 +1917,15 @@ ], "description": "Use a shortened system prompt" }, + { + "key": "env.CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Skip client-side SigV4 authentication for Claude Platform on AWS; use when a proxy or gateway adds authentication before forwarding. See https://code.claude.com/docs/en/claude-platform-on-aws#route-through-a-corporate-proxy" + }, { "key": "env.CLAUDE_CODE_SKIP_BEDROCK_AUTH", "type": "string", @@ -1432,7 +1951,7 @@ "0", "1" ], - "description": "Skip AWS authentication for Mantle" + "description": "Skip AWS authentication for Bedrock Mantle (for example, when using an LLM gateway). See https://code.claude.com/docs/en/env-vars" }, { "key": "env.CLAUDE_CODE_SKIP_PROMPT_HISTORY", @@ -1452,6 +1971,11 @@ ], "description": "Skip Google authentication for Vertex AI" }, + { + "key": "env.CLAUDE_CODE_STOP_HOOK_BLOCK_CAP", + "type": "string", + "description": "Override the default maximum consecutive Stop hook blocks (default: 8) before the turn ends with a warning. Raise this when a stop hook legitimately needs more than 8 iterations to converge. See https://code.claude.com/docs/en/hooks-guide" + }, { "key": "env.CLAUDE_CODE_SUBAGENT_MODEL", "type": "string", @@ -1480,6 +2004,25 @@ "type": "string", "description": "Timeout in milliseconds for synchronous plugin installation" }, + { + "key": "env.CLAUDE_CODE_SYNC_SKILLS", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to download enabled claude.ai skills into ~/.claude/skills/ before the first query and resync every 10 minutes (non-interactive -p mode only; requires claude.ai auth). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS", + "type": "string", + "description": "Timeout in milliseconds for a mid-session skills resync when CLAUDE_CODE_SYNC_SKILLS is set (default 30000). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS", + "type": "string", + "description": "Timeout in milliseconds for the first query to wait on the initial skills sync when CLAUDE_CODE_SYNC_SKILLS is set (default 5000). See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_SYNTAX_HIGHLIGHT", "type": "string", @@ -1487,7 +2030,7 @@ "true", "false" ], - "description": "Enable syntax highlighting in diffs" + "description": "UNDOCUMENTED. Enable syntax highlighting in diffs" }, { "key": "env.CLAUDE_CODE_TASK_LIST_ID", @@ -1513,6 +2056,51 @@ ], "description": "Allow 24-bit truecolor rendering in tmux" }, + { + "key": "env.CLAUDE_CODE_USE_ANTHROPIC_AWS", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Enable Claude Platform on AWS as the API provider. Bedrock and Foundry take precedence if also set. See https://code.claude.com/docs/en/claude-platform-on-aws#2-configure-claude-code" + }, + { + "key": "env.CLAUDE_CODE_USE_BEDROCK", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Enable Amazon Bedrock as the API provider. See https://code.claude.com/docs/en/amazon-bedrock#3-configure-claude-code" + }, + { + "key": "env.CLAUDE_CODE_USE_FOUNDRY", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Enable Microsoft Foundry as the API provider. See https://code.claude.com/docs/en/microsoft-foundry#3-configure-claude-code" + }, + { + "key": "env.CLAUDE_CODE_USE_MANTLE", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Enable the Mantle endpoint (native Anthropic API shape on Bedrock). See https://code.claude.com/docs/en/amazon-bedrock#enable-mantle" + }, + { + "key": "env.CLAUDE_CODE_USE_NATIVE_FILE_SEARCH", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to discover custom commands, subagents, and output styles using Node.js file APIs instead of ripgrep (for environments where the bundled ripgrep is unavailable). See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_USE_POWERSHELL_TOOL", "type": "string", @@ -1522,6 +2110,59 @@ ], "description": "Enable PowerShell as default shell for interactive commands (Windows)" }, + { + "key": "env.CLAUDE_CODE_USE_VERTEX", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Enable Google Vertex AI as the API provider. See https://code.claude.com/docs/en/google-vertex-ai#4-configure-claude-code" + }, + { + "key": "env.CLAUDE_CONFIG_DIR", + "type": "string", + "description": "Override the configuration directory (default ~/.claude) where settings, credentials, session history, and plugins are stored. Useful for running multiple accounts side by side. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_EFFORT", + "type": "string", + "enum": [ + "low", + "medium", + "high", + "xhigh", + "max" + ], + "description": "Set automatically in Bash tool subprocesses and hook commands to the active effort level for the turn (low, medium, high, xhigh, or max; ultracode reports as xhigh). Read-only. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_ENABLE_BYTE_WATCHDOG", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to force-enable, or 0 to force-disable, the byte-level streaming idle watchdog that aborts a connection when no bytes arrive within the configured timeout. Enabled by default on direct Anthropic API and Claude Platform on AWS connections. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to enable the byte-level streaming idle watchdog on Amazon Bedrock eventstream responses (off by default). Configure the timeout with CLAUDE_STREAM_IDLE_TIMEOUT_MS. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDE_ENABLE_STREAM_WATCHDOG", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to force-enable, or 0 to force-disable, the event-level streaming idle watchdog. When unset, server-controlled on the direct Anthropic API and off on other providers. See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_ENV_FILE", "type": "string", @@ -1532,6 +2173,44 @@ "type": "string", "description": "Project root directory path (also provided to hooks)" }, + { + "key": "env.CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX", + "type": "string", + "description": "Prefix for auto-generated Remote Control session names when no explicit name is set. Defaults to the machine hostname, producing names like myhost-graceful-unicorn. See https://code.claude.com/docs/en/remote-control#start-a-remote-control-session" + }, + { + "key": "env.CLAUDE_STREAM_IDLE_TIMEOUT_MS", + "type": "string", + "description": "Timeout in milliseconds before the streaming idle watchdog closes a stalled connection. When set explicitly the minimum is 300000 (5 minutes); lower values are clamped. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLAUDECODE", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 in subprocesses Claude Code spawns (Bash and PowerShell tools, tmux sessions, hook commands, status line commands, stdio MCP server subprocesses). IDE extensions also set this in their integrated terminals. To distinguish a direct tool/hook subprocess from a stdio MCP server subprocess, use CLAUDE_CODE_CHILD_SESSION instead. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.CLOUD_ML_REGION", + "type": "string", + "description": "Vertex AI region: global, a multi-region location (eu, us), or a specific region (e.g. us-east5). See https://code.claude.com/docs/en/google-vertex-ai#region-configuration" + }, + { + "key": "env.DEBUG", + "type": "string", + "description": "Set to a truthy value (1, true, yes, or on) to enable debug mode, equivalent to --debug. Logs are written to ~/.claude/debug/.txt. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DISABLE_AUTO_COMPACT", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to disable automatic compaction when approaching the context limit. The manual /compact command remains available. Equivalent to autoCompactEnabled: false. See https://code.claude.com/docs/en/env-vars" + }, { "key": "env.DISABLE_AUTOUPDATER", "type": "string", @@ -1539,97 +2218,662 @@ "0", "1" ], - "description": "Stop background auto-update checks" + "description": "Set to 1 to disable automatic background updates. Manual claude update still works; use DISABLE_UPDATES to block both. See https://code.claude.com/docs/en/env-vars" }, { - "key": "env.DISABLE_ERROR_REPORTING", + "key": "env.DISABLE_COMPACT", "type": "string", "enum": [ "0", "1" ], - "description": "Disable Sentry error reporting" + "description": "Set to 1 to disable all compaction: both automatic compaction and the manual /compact command. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DISABLE_COST_WARNINGS", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to disable cost warning messages. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DISABLE_DOCTOR_COMMAND", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to hide the /doctor command (useful for managed deployments). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DISABLE_ERROR_REPORTING", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Disable Sentry error reporting" + }, + { + "key": "env.DISABLE_EXTRA_USAGE_COMMAND", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to hide the /usage-credits command for purchasing additional usage beyond rate limits. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DISABLE_FEEDBACK_COMMAND", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to disable the /feedback command. The older name DISABLE_BUG_COMMAND is also accepted. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DISABLE_GROWTHBOOK", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to disable GrowthBook feature-flag fetching and use code defaults for every flag. Telemetry stays on unless DISABLE_TELEMETRY is also set. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DISABLE_INSTALL_GITHUB_APP_COMMAND", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to hide the /install-github-app command (already hidden on Bedrock, Vertex, or Foundry). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DISABLE_INSTALLATION_CHECKS", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to disable installation warnings (use only when manually managing the installation location). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DISABLE_INTERLEAVED_THINKING", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to prevent sending the interleaved-thinking beta header (useful when a gateway or provider does not support interleaved thinking). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DISABLE_LOGIN_COMMAND", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to hide the /login command (useful when authentication is handled externally via API keys or apiKeyHelper). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DISABLE_LOGOUT_COMMAND", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to hide the /logout command. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DISABLE_PROMPT_CACHING", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Disable prompt caching for all models. See https://code.claude.com/docs/en/prompt-caching#disable-prompt-caching" + }, + { + "key": "env.DISABLE_PROMPT_CACHING_FABLE", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Disable prompt caching for Fable models only. See https://code.claude.com/docs/en/prompt-caching#disable-prompt-caching" + }, + { + "key": "env.DISABLE_PROMPT_CACHING_HAIKU", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Disable prompt caching for Haiku models only. See https://code.claude.com/docs/en/prompt-caching#disable-prompt-caching" + }, + { + "key": "env.DISABLE_PROMPT_CACHING_OPUS", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Disable prompt caching for Opus models only. See https://code.claude.com/docs/en/prompt-caching#disable-prompt-caching" + }, + { + "key": "env.DISABLE_PROMPT_CACHING_SONNET", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Disable prompt caching for Sonnet models only. See https://code.claude.com/docs/en/prompt-caching#disable-prompt-caching" + }, + { + "key": "env.DISABLE_TELEMETRY", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to opt out of telemetry. Also disables feature-flag fetching (same effect as DISABLE_GROWTHBOOK). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DISABLE_UPDATES", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Block all update paths including manual updates" + }, + { + "key": "env.DISABLE_UPGRADE_COMMAND", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to hide the /upgrade command. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.DO_NOT_TRACK", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to opt out of telemetry (cross-tool convention; equivalent to DISABLE_TELEMETRY). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.ENABLE_BETA_TRACING_DETAILED", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Emit detailed spans including hook execution when the tracing beta is enabled. See https://code.claude.com/docs/en/monitoring-usage#traces-beta" + }, + { + "key": "env.ENABLE_CLAUDEAI_MCP_SERVERS", + "type": "string", + "enum": [ + "true", + "false" + ], + "description": "Opt in/out of claude.ai MCP servers. See https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2163" + }, + { + "key": "env.ENABLE_PROMPT_CACHING_1H", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Request a 1-hour prompt cache TTL instead of the 5-minute default (billed at a higher rate). See https://code.claude.com/docs/en/prompt-caching#cache-lifetime" + }, + { + "key": "env.ENABLE_TOOL_SEARCH", + "type": "string", + "description": "Control MCP tool search: \"true\" always defers and sends the beta header (requests fail on Vertex AI models earlier than Sonnet 4.5/Opus 4.5 or on proxies that do not support tool_reference); \"auto\" loads tools upfront if they fit within 10% of context; \"auto:N\" sets a custom threshold percentage (e.g. auto:5); \"false\" loads all tools upfront. Also applies when ANTHROPIC_BASE_URL points to a non-first-party host. See https://code.claude.com/docs/en/google-vertex-ai#4-configure-claude-code" + }, + { + "key": "env.FALLBACK_FOR_ALL_PRIMARY_MODELS", + "type": "string", + "description": "Set to any non-empty value to make all models (not only Opus) stop retrying with a repeated-overload error when no fallback model is configured. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.FORCE_AUTOUPDATE_PLUGINS", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Keep plugin auto-updates enabled even when DISABLE_AUTOUPDATER=1 is set. See https://code.claude.com/docs/en/discover-plugins#configure-auto-updates" + }, + { + "key": "env.FORCE_PROMPT_CACHING_5M", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Force a 5-minute cache TTL regardless of authentication method; overrides ENABLE_PROMPT_CACHING_1H or a managed-settings TTL. See https://code.claude.com/docs/en/prompt-caching#override-the-ttl" + }, + { + "key": "env.GOOGLE_APPLICATION_CREDENTIALS", + "type": "string", + "description": "Path to a GCP credential configuration file (service account key or workload identity federation config) used for Vertex AI authentication. See https://code.claude.com/docs/en/google-vertex-ai#3-configure-gcp-credentials" + }, + { + "key": "env.HTTP_PROXY", + "type": "string", + "description": "HTTP proxy URL" + }, + { + "key": "env.HTTPS_PROXY", + "type": "string", + "description": "HTTPS proxy URL (recommended over HTTP_PROXY)" + }, + { + "key": "env.IS_DEMO", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Set to 1 to enable demo mode: hides email and organization name from the header and /status output and skips onboarding. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.MAX_MCP_OUTPUT_TOKENS", + "type": "string", + "description": "Maximum number of tokens allowed in MCP tool output before truncation (default: 25000). Claude Code displays a warning above 10000 tokens. For tools that declare anthropic/maxResultSizeChars, that character limit replaces this token limit for text content, but image content from those tools is still subject to this limit. See https://code.claude.com/docs/en/mcp" + }, + { + "key": "env.MAX_STRUCTURED_OUTPUT_RETRIES", + "type": "string", + "description": "Number of times to retry when the model's response fails validation against --json-schema in non-interactive (-p) mode (default 5). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.MAX_THINKING_TOKENS", + "type": "string", + "description": "Override the extended thinking token budget; set to 0 to disable thinking on the Anthropic API. On adaptive reasoning models (Opus 4.7+, Opus 4.8, Fable 5) a nonzero budget is ignored unless CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING is set. See https://code.claude.com/docs/en/model-config#extended-thinking" + }, + { + "key": "env.MCP_CLIENT_SECRET", + "type": "string", + "description": "OAuth client secret for MCP servers that require pre-configured credentials (avoids the interactive prompt when adding a server with --client-secret). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.MCP_CONNECT_TIMEOUT_MS", + "type": "string", + "description": "How long blocking MCP startup waits in milliseconds for the connection batch before snapshotting the tool list (default 5000). Applies when MCP_CONNECTION_NONBLOCKING=0 or for alwaysLoad servers. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.MCP_CONNECTION_NONBLOCKING", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Controls whether startup waits for MCP servers to connect before the first query. Non-blocking by default since v2.1.142; set to 0 to restore the blocking 5-second connection wait. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.MCP_OAUTH_CALLBACK_PORT", + "type": "string", + "description": "Fixed port for the OAuth redirect callback, as an alternative to --callback-port when adding an MCP server with pre-configured credentials. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE", + "type": "string", + "description": "Maximum number of remote MCP servers (HTTP/SSE) to connect in parallel during startup (default 20). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.MCP_SERVER_CONNECTION_BATCH_SIZE", + "type": "string", + "description": "Maximum number of local MCP servers (stdio) to connect in parallel during startup (default 3). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.MCP_TIMEOUT", + "type": "string", + "description": "Timeout in milliseconds for MCP server startup (default 30000). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.MCP_TOOL_TIMEOUT", + "type": "string", + "description": "Timeout in milliseconds for MCP tool execution (default: 100000000, about 28 hours). A per-server timeout field in .mcp.json overrides this for that server. Values below 1000 are floored to one second. See https://code.claude.com/docs/en/mcp" + }, + { + "key": "env.NO_PROXY", + "type": "string", + "description": "Domains to bypass proxy (space or comma-separated, or '*' for all)" + }, + { + "key": "env.NODE_EXTRA_CA_CERTS", + "type": "string", + "description": "Path to custom CA certificate file" + }, + { + "key": "env.OTEL_EXPORTER_OTLP_CERTIFICATE", + "type": "string", + "description": "Path to the CA certificate for gRPC OTLP mTLS. See https://code.claude.com/docs/en/monitoring-usage#mtls-authentication" + }, + { + "key": "env.OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE", + "type": "string", + "description": "Path to the client certificate for gRPC OTLP mTLS. See https://code.claude.com/docs/en/monitoring-usage#mtls-authentication" + }, + { + "key": "env.OTEL_EXPORTER_OTLP_CLIENT_KEY", + "type": "string", + "description": "Path to the client private key for gRPC OTLP mTLS. See https://code.claude.com/docs/en/monitoring-usage#mtls-authentication" + }, + { + "key": "env.OTEL_EXPORTER_OTLP_ENDPOINT", + "type": "string", + "description": "OTLP exporter endpoint for all signals (e.g. http://localhost:4317). See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_EXPORTER_OTLP_HEADERS", + "type": "string", + "description": "Headers sent with OTLP exporter requests (e.g. Authorization=Bearer token). See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT", + "type": "string", + "description": "OTLP exporter endpoint override for logs. See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_EXPORTER_OTLP_LOGS_PROTOCOL", + "type": "string", + "enum": [ + "grpc", + "http/json", + "http/protobuf" + ], + "description": "OTLP protocol override for logs: grpc, http/json, or http/protobuf. See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT", + "type": "string", + "description": "OTLP exporter endpoint override for metrics. See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL", + "type": "string", + "enum": [ + "grpc", + "http/json", + "http/protobuf" + ], + "description": "OTLP protocol override for metrics: grpc, http/json, or http/protobuf. See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE", + "type": "string", + "enum": [ + "delta", + "cumulative" + ], + "description": "Metrics temporality preference: delta (default) or cumulative. See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_EXPORTER_OTLP_PROTOCOL", + "type": "string", + "enum": [ + "grpc", + "http/json", + "http/protobuf" + ], + "description": "OTLP exporter protocol for all signals: grpc, http/json, or http/protobuf. See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", + "type": "string", + "description": "OTLP exporter endpoint override for traces. See https://code.claude.com/docs/en/monitoring-usage#traces-beta" + }, + { + "key": "env.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL", + "type": "string", + "enum": [ + "grpc", + "http/json", + "http/protobuf" + ], + "description": "OTLP protocol override for traces: grpc, http/json, or http/protobuf. See https://code.claude.com/docs/en/monitoring-usage#traces-beta" + }, + { + "key": "env.OTEL_LOG_ASSISTANT_RESPONSES", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "UNDOCUMENTED. Include assistant response text in the claude_code.assistant_response OpenTelemetry log event (added v2.1.193). When unset, follows OTEL_LOG_USER_PROMPTS; set to 0 to keep prompts-only." + }, + { + "key": "env.OTEL_LOG_RAW_API_BODIES", + "type": "string", + "description": "Log raw API request/response bodies. Set to 1, or to file: to write them to a directory. See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_LOG_TOOL_CONTENT", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Include full tool input/output content in OpenTelemetry log events (requires tracing; disabled by default). See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_LOG_TOOL_DETAILS", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Include tool name and parameters in OpenTelemetry log events (disabled by default). See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_LOG_USER_PROMPTS", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Include user prompt text in OpenTelemetry log events (disabled by default). See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_LOGS_EXPORT_INTERVAL", + "type": "string", + "description": "Logs export interval in milliseconds (default 5000). See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_LOGS_EXPORTER", + "type": "string", + "description": "OpenTelemetry logs exporter(s) as a comma-separated list. Valid values: otlp, console, none. See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_METRIC_EXPORT_INTERVAL", + "type": "string", + "description": "Metrics export interval in milliseconds (default 60000). See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_METRICS_EXPORTER", + "type": "string", + "description": "OpenTelemetry metrics exporter(s) as a comma-separated list. Valid values: otlp, prometheus, console, none. See https://code.claude.com/docs/en/monitoring-usage#common-configuration-variables" + }, + { + "key": "env.OTEL_METRICS_INCLUDE_ACCOUNT_UUID", + "type": "string", + "enum": [ + "true", + "false" + ], + "description": "Include the user.account_uuid and user.account_id attributes on metrics (default true). See https://code.claude.com/docs/en/monitoring-usage#metrics-cardinality-control" + }, + { + "key": "env.OTEL_METRICS_INCLUDE_ENTRYPOINT", + "type": "string", + "enum": [ + "true", + "false" + ], + "description": "Include the app.entrypoint attribute on metrics (default false). See https://code.claude.com/docs/en/monitoring-usage#metrics-cardinality-control" + }, + { + "key": "env.OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES", + "type": "string", + "enum": [ + "true", + "false" + ], + "description": "Include configured OTEL_RESOURCE_ATTRIBUTES on metric data points (default true). See https://code.claude.com/docs/en/monitoring-usage#metrics-cardinality-control" + }, + { + "key": "env.OTEL_METRICS_INCLUDE_SESSION_ID", + "type": "string", + "enum": [ + "true", + "false" + ], + "description": "Include the session.id attribute on metrics (default true). See https://code.claude.com/docs/en/monitoring-usage#metrics-cardinality-control" + }, + { + "key": "env.OTEL_METRICS_INCLUDE_VERSION", + "type": "string", + "enum": [ + "true", + "false" + ], + "description": "Include the app.version attribute on metrics (default false). See https://code.claude.com/docs/en/monitoring-usage#metrics-cardinality-control" + }, + { + "key": "env.OTEL_RESOURCE_ATTRIBUTES", + "type": "string", + "description": "Comma-separated key=value resource attributes attached to all telemetry. See https://code.claude.com/docs/en/monitoring-usage#multi-team-organization-support" + }, + { + "key": "env.OTEL_TRACES_EXPORT_INTERVAL", + "type": "string", + "description": "Traces export interval in milliseconds (default 5000). See https://code.claude.com/docs/en/monitoring-usage#traces-beta" + }, + { + "key": "env.OTEL_TRACES_EXPORTER", + "type": "string", + "description": "OpenTelemetry traces exporter(s) as a comma-separated list. Valid values: otlp, console, none. See https://code.claude.com/docs/en/monitoring-usage#traces-beta" + }, + { + "key": "env.SLASH_COMMAND_TOOL_CHAR_BUDGET", + "type": "string", + "description": "Override the character budget for skill metadata shown to the Skill tool. The budget scales dynamically at 1% of the context window, with a fallback of 8000 characters. Legacy name kept for backwards compatibility. See https://code.claude.com/docs/en/skills#control-who-invokes-a-skill" + }, + { + "key": "env.TASK_MAX_OUTPUT_LENGTH", + "type": "string", + "description": "Maximum number of characters in subagent output before truncation (default 32000, maximum 160000). When truncated, the full output is saved to disk and the path is included in the response. See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.USE_BUILTIN_RIPGREP", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Use the bundled ripgrep binary instead of system ripgrep" + }, + { + "key": "env.VERTEX_REGION_CLAUDE_3_5_HAIKU", + "type": "string", + "description": "Override the Vertex AI region for Claude 3.5 Haiku (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.VERTEX_REGION_CLAUDE_3_5_SONNET", + "type": "string", + "description": "Override the Vertex AI region for Claude 3.5 Sonnet (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.VERTEX_REGION_CLAUDE_3_7_SONNET", + "type": "string", + "description": "Override the Vertex AI region for Claude 3.7 Sonnet (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" + }, + { + "key": "env.VERTEX_REGION_CLAUDE_4_0_OPUS", + "type": "string", + "description": "Override the Vertex AI region for Claude 4.0 Opus (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" }, { - "key": "env.DISABLE_FEEDBACK_COMMAND", + "key": "env.VERTEX_REGION_CLAUDE_4_0_SONNET", "type": "string", - "enum": [ - "0", - "1" - ], - "description": "Disable the /feedback command" + "description": "Override the Vertex AI region for Claude 4.0 Sonnet (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" }, { - "key": "env.DISABLE_TELEMETRY", + "key": "env.VERTEX_REGION_CLAUDE_4_1_OPUS", "type": "string", - "enum": [ - "0", - "1" - ], - "description": "Disable Statsig telemetry collection" + "description": "Override the Vertex AI region for Claude 4.1 Opus (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" }, { - "key": "env.DISABLE_UPDATES", + "key": "env.VERTEX_REGION_CLAUDE_4_5_OPUS", "type": "string", - "enum": [ - "0", - "1" - ], - "description": "Block all update paths including manual updates" + "description": "Override the Vertex AI region for Claude Opus 4.5 (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" }, { - "key": "env.ENABLE_CLAUDEAI_MCP_SERVERS", + "key": "env.VERTEX_REGION_CLAUDE_4_5_SONNET", "type": "string", - "enum": [ - "true", - "false" - ], - "description": "Opt in/out of claude.ai MCP servers. See https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2163" + "description": "Override the Vertex AI region for Claude Sonnet 4.5 (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" }, { - "key": "env.HTTP_PROXY", + "key": "env.VERTEX_REGION_CLAUDE_4_6_OPUS", "type": "string", - "description": "HTTP proxy URL" + "description": "Override the Vertex AI region for Claude Opus 4.6 (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" }, { - "key": "env.HTTPS_PROXY", + "key": "env.VERTEX_REGION_CLAUDE_4_6_SONNET", "type": "string", - "description": "HTTPS proxy URL (recommended over HTTP_PROXY)" + "description": "Override the Vertex AI region for Claude Sonnet 4.6 (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" }, { - "key": "env.NO_PROXY", + "key": "env.VERTEX_REGION_CLAUDE_4_7_OPUS", "type": "string", - "description": "Domains to bypass proxy (space or comma-separated, or '*' for all)" + "description": "Override the Vertex AI region for Claude Opus 4.7 (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" }, { - "key": "env.NODE_EXTRA_CA_CERTS", + "key": "env.VERTEX_REGION_CLAUDE_4_8_OPUS", "type": "string", - "description": "Path to custom CA certificate file" + "description": "Override the Vertex AI region for Claude Opus 4.8 (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" }, { - "key": "env.OTEL_METRICS_EXPORTER", + "key": "env.VERTEX_REGION_CLAUDE_FABLE_5", "type": "string", - "description": "OpenTelemetry metrics exporter configuration" + "description": "Override the Vertex AI region for Claude Fable 5 (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" }, { - "key": "env.USE_BUILTIN_RIPGREP", + "key": "env.VERTEX_REGION_CLAUDE_HAIKU_4_5", "type": "string", - "enum": [ - "0", - "1" - ], - "description": "Use the bundled ripgrep binary instead of system ripgrep" + "description": "Override the Vertex AI region for Claude Haiku 4.5 (used when CLOUD_ML_REGION=global). See https://code.claude.com/docs/en/env-vars" }, { "key": "extraKnownMarketplaces", "type": "object", "description": "Additional marketplaces to make available for this repository. Typically used in repository .claude/settings.json to ensure team members have required plugin sources. See https://code.claude.com/docs/en/plugin-marketplaces" }, + { + "key": "fallbackModel", + "type": "array", + "description": "Fallback model chain tried in order when the primary model is overloaded, unavailable, or returns a non-retryable server error. Capped at three entries after deduplication; accepts model names or aliases, and \"default\" expands to the account-type default. Overridden by the --fallback-model CLI flag for the session. See https://code.claude.com/docs/en/model-config#fallback-model-chains", + "items": { + "type": "string" + } + }, { "key": "fastMode", "type": "boolean", "default": false, - "description": "Enable fast mode for Opus 4.6 (research preview). Fast mode uses the same model with 2.5x faster output at higher per-token cost. Requires extra usage enabled. Alternatively, toggle with /fast command. See https://code.claude.com/docs/en/fast-mode" + "description": "Enable fast mode, which uses Claude Opus 4.8 by default (since v2.1.154) for faster output at higher per-token cost without downgrading to a smaller model. Requires extra usage enabled. Toggle with the /fast command. Available on Opus 4.8 and Opus 4.7 (Opus 4.7 fast mode deprecated June 2026). See https://code.claude.com/docs/en/fast-mode" }, { "key": "fastModePerSessionOptIn", @@ -1647,6 +2891,12 @@ ], "description": "Probability (0–1) that the session quality survey appears when eligible. A value of 0.05 means 5% of eligible sessions. See https://code.claude.com/docs/en/settings#available-settings" }, + { + "key": "fileCheckpointingEnabled", + "type": "boolean", + "default": true, + "description": "Snapshot edited files so /rewind can restore them. Also configurable via the CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING environment variable (set to 1 to disable). See https://code.claude.com/docs/en/checkpointing" + }, { "key": "fileSuggestion", "type": "object", @@ -1669,6 +2919,14 @@ "const": "command", "description": "The type of file suggestion handler; must be set to \"command\" to execute a custom shell script that generates file suggestions for the @ file picker." }, + { + "key": "footerLinksRegexes", + "type": "array", + "description": "Render extra clickable badges in the footer when a regex matches turn output (tool results and assistant responses). Read from user, --settings flag, and managed settings only; ignored in project and local settings. Requires Claude Code v2.1.176 or later. See https://code.claude.com/docs/en/settings#available-settings", + "items": { + "type": "object" + } + }, { "key": "forceLoginMethod", "type": "string", @@ -1695,6 +2953,15 @@ "type": "boolean", "description": "(Managed settings only) Block CLI startup until remote managed settings are freshly fetched from the server. If the fetch fails, the CLI exits (fail-closed) rather than continuing with cached settings. When not set, startup continues without waiting for remote settings. See https://code.claude.com/docs/en/server-managed-settings" }, + { + "key": "gcpAuthRefresh", + "type": "string", + "minLength": 1, + "examples": [ + "gcloud auth application-default login" + ], + "description": "Command to run when GCP credentials are expired or cannot be loaded. The command's output is displayed to the user but interactive input is not supported; it times out after three minutes. See https://code.claude.com/docs/en/google-vertex-ai#advanced-credential-configuration" + }, { "key": "hooks", "type": "object", @@ -1714,7 +2981,7 @@ ] } ], - "description": "Custom commands to run before/after tool executions. See https://code.claude.com/docs/en/hooks" + "description": "Lifecycle event hooks that run at configurable points during Claude Code operation (tool use, session start/end, notifications, prompt submit, message display, and more), not just before/after tool executions. See https://code.claude.com/docs/en/hooks" }, { "key": "hooks.ConfigChange", @@ -1764,6 +3031,14 @@ "$ref": "#/$defs/hookMatcher" } }, + { + "key": "hooks.MessageDisplay", + "type": "array", + "description": "Hooks that run while assistant message text is displayed", + "items": { + "$ref": "#/$defs/hookMatcher" + } + }, { "key": "hooks.Notification", "type": "array", @@ -1975,6 +3250,12 @@ "default": true, "description": "Include built-in git commit and PR workflow instructions in Claude's system prompt. Also configurable via CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS environment variable (set to 1 to disable). See https://code.claude.com/docs/en/settings#available-settings" }, + { + "key": "inputNeededNotifEnabled", + "type": "boolean", + "default": false, + "description": "When Remote Control is connected, send a push notification to your phone when a permission prompt or question is waiting for input. Requires Claude Code v2.1.119 or later. See https://code.claude.com/docs/en/settings#available-settings" + }, { "key": "language", "type": "string", @@ -1985,6 +3266,25 @@ ], "description": "Configure Claude's preferred response language (e.g., \"japanese\", \"spanish\", \"french\"). Claude will respond in this language by default. Also sets the voice dictation language and terminal tab session title generation. See https://code.claude.com/docs/en/settings#available-settings" }, + { + "key": "leftArrowOpensAgents", + "type": "boolean", + "description": "Whether the Left arrow key at the start of an empty prompt opens the agents view. Turn it off in /config (the leftArrowOpensAgents setting). See https://code.claude.com/docs/en/agent-view" + }, + { + "key": "managedMcpServers", + "type": "array", + "description": "(Managed settings, third-party Desktop deployments only) MCP server configurations pushed to all users. Each entry specifies the transport and connection details, plus an optional toolPolicy map. Delivered through the managed settings file or MDM. See https://code.claude.com/docs/en/desktop#enterprise-configuration", + "items": { + "type": "object" + } + }, + { + "key": "maxSkillDescriptionChars", + "type": "integer", + "default": 1536, + "description": "Per-skill character cap on the combined description and when_to_use text in the skill listing Claude sees each turn. Text longer than this is truncated. See https://code.claude.com/docs/en/skills#skill-descriptions-are-cut-short" + }, { "key": "minimumVersion", "type": "string", @@ -2013,7 +3313,7 @@ "key": "otelHeadersHelper", "type": "string", "minLength": 1, - "description": "Path to a script that outputs OpenTelemetry headers" + "description": "Path to an executable, or a shell command line with arguments, that outputs OpenTelemetry headers as a JSON object. Runs at startup and re-runs on the interval set by CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS. Requires CLAUDE_CODE_ENABLE_TELEMETRY=1. See https://code.claude.com/docs/en/monitoring-usage#dynamic-headers" }, { "key": "outputStyle", @@ -2026,6 +3326,16 @@ ], "description": "Controls the output style for assistant responses. Built-in styles: default, Explanatory, Learning. Custom styles can be added in ~/.claude/output-styles/ or .claude/output-styles/. See https://code.claude.com/docs/en/output-styles" }, + { + "key": "parentSettingsBehavior", + "type": "string", + "enum": [ + "first-wins", + "merge" + ], + "default": "first-wins", + "description": "(Admin/managed settings only) Controls how SDK managedSettings (parent tier) merge with inherited settings. 'first-wins': first non-empty value applies (default). 'merge': merge arrays and objects. See https://code.claude.com/docs/en/server-managed-settings" + }, { "key": "permissions", "type": "object", @@ -2131,12 +3441,64 @@ "type": "object", "description": "Per-plugin configuration including MCP server user configs and plugin options, keyed by plugin ID (plugin@marketplace format). See https://code.claude.com/docs/en/plugins" }, + { + "key": "pluginSuggestionMarketplaces", + "type": "array", + "description": "(Managed settings only) Allowlist of marketplace names whose plugins may surface as contextual \"suggested for this directory\" tips in the /plugin Discover tab. No marketplace-declared suggestions surface without this allowlist. The built-in first-party frontend-design tip is unaffected. See https://code.claude.com/docs/en/settings#available-settings", + "items": { + "type": "string" + } + }, { "key": "pluginTrustMessage", "type": "string", "minLength": 1, "description": "(Managed settings only) Custom message appended to the plugin trust warning shown before installation. Use to provide organization-specific context about approved plugins. See https://code.claude.com/docs/en/settings#plugin-settings" }, + { + "key": "policyHelper", + "type": "object", + "description": "Admin-deployed executable that computes managed settings dynamically at startup. Honored only from MDM or the system managed-settings.json. Requires Claude Code v2.1.136 or later. See https://code.claude.com/docs/en/settings#available-settings" + }, + { + "key": "policyHelper.path", + "type": "string", + "description": "Absolute path to the policy helper executable" + }, + { + "key": "policyHelper.refreshIntervalMs", + "description": "How often in milliseconds to re-run the helper in the background; set to 0 to disable refresh, or to at least 60000", + "anyOf": [ + { + "type": "integer", + "const": 0 + }, + { + "type": "integer", + "minimum": 60000 + } + ] + }, + { + "key": "policyHelper.timeoutMs", + "type": "integer", + "description": "How long in milliseconds to wait for the helper before treating the run as failed" + }, + { + "key": "preferredNotifChannel", + "type": "string", + "enum": [ + "auto", + "terminal_bell", + "iterm2", + "iterm2_with_bell", + "kitty", + "ghostty", + "notifications_disabled" + ], + "default": "auto", + "description": "Method for task-complete and permission-prompt notifications. \"auto\" (default) sends a desktop notification in iTerm2, Ghostty, and Kitty and does nothing in other terminals; \"terminal_bell\" rings the bell in any terminal; \"notifications_disabled\" turns them off. See https://code.claude.com/docs/en/terminal-config#get-a-terminal-bell-or-notification" + }, { "key": "prefersReducedMotion", "type": "boolean", @@ -2151,17 +3513,43 @@ ], "description": "URL template for the PR badge shown in the footer and in tool-result summaries. Substitutes placeholders {host}, {owner}, {repo}, {number}, {url} from the gh-reported PR URL. Use this to point PR links at an internal code-review tool instead of github.com. Does not affect #123 autolinks in Claude's prose. See https://code.claude.com/docs/en/settings#available-settings" }, + { + "key": "remoteControlAtStartup", + "type": "boolean", + "description": "Connect Remote Control automatically when each interactive session starts. true = always, false = never, unset = organization default. Requires Claude Code v2.1.119 or later. See https://code.claude.com/docs/en/remote-control#enable-remote-control-for-all-sessions" + }, + { + "key": "requiredMaximumVersion", + "type": "string", + "description": "(Managed settings only) Maximum Claude Code version allowed to start. If the running version is newer, Claude Code exits at startup with instructions to install an approved version. See https://code.claude.com/docs/en/admin-setup#decide-what-to-enforce" + }, + { + "key": "requiredMinimumVersion", + "type": "string", + "description": "(Managed settings only) Minimum Claude Code version required to start. If the running version is older, Claude Code exits at startup rather than only warning. See https://code.claude.com/docs/en/admin-setup#decide-what-to-enforce" + }, { "key": "respectGitignore", "type": "boolean", "default": true, "description": "Control whether the @ file picker respects .gitignore patterns. When true (default), files matching .gitignore patterns are excluded from suggestions" }, + { + "key": "respondToBashCommands", + "type": "boolean", + "default": true, + "description": "Whether Claude responds after an input-box ! shell command runs (v2.1.186+). Set to false to add the command output to context without a response. See https://code.claude.com/docs/en/interactive-mode#shell-mode-with--prefix" + }, { "key": "sandbox", "type": "object", "description": "Sandbox execution configuration. See https://code.claude.com/docs/en/sandboxing" }, + { + "key": "sandbox.allowAppleEvents", + "type": "boolean", + "description": "Allow sandboxed commands to send Apple Events on macOS (v2.1.181+). Honored only from user, managed, or CLI settings; project settings cannot enable it. See https://code.claude.com/docs/en/sandboxing#limitations" + }, { "key": "sandbox.allowUnsandboxedCommands", "type": "boolean", @@ -2173,11 +3561,52 @@ "default": true, "description": "Automatically allow bash commands without prompting when they run in the sandbox. Only applies to commands that will run sandboxed. See https://code.claude.com/docs/en/sandboxing#sandbox-modes" }, + { + "key": "sandbox.bwrapPath", + "type": "string", + "minLength": 1, + "description": "(Managed setting only) Path to custom bubblewrap (bwrap) binary for Linux/WSL sandbox. Overrides default. See https://code.claude.com/docs/en/server-managed-settings" + }, + { + "key": "sandbox.credentials", + "type": "object", + "description": "Block sandboxed commands from reading credential files and secret environment variables (v2.1.187+). Entries merge across settings scopes. See https://code.claude.com/docs/en/sandboxing#protect-credentials" + }, + { + "key": "sandbox.credentials.envVars", + "type": "array", + "description": "Secret environment variable names to unset for sandboxed commands", + "items": { + "type": "object" + } + }, + { + "key": "sandbox.credentials.files", + "type": "array", + "description": "Credential file paths to hide from sandboxed commands", + "items": { + "type": "object" + } + }, { "key": "sandbox.enabled", "type": "boolean", "description": "Enable sandboxed bash. See https://code.claude.com/docs/en/sandboxing#enable-sandboxing" }, + { + "key": "sandbox.enabledPlatforms", + "type": "array", + "description": "Limit the entire sandbox configuration to the listed platforms. On platforms not in the list the sandbox config is inert: no sandbox, no auto-allow, no startup warning, and no failIfUnavailable exit. When omitted, all supported platforms are included. Only honored from managed (policy) settings.", + "items": { + "type": "string", + "enum": [ + "macos", + "linux", + "wsl", + "windows" + ] + } + }, { "key": "sandbox.enableWeakerNestedSandbox", "type": "boolean", @@ -2197,6 +3626,11 @@ "type": "string" } }, + { + "key": "sandbox.failIfUnavailable", + "type": "boolean", + "description": "When true, make sandbox startup a hard failure if required sandbox dependencies are missing. Default: false (sandbox is skipped with a warning). See https://code.claude.com/docs/en/sandboxing#enable-sandboxing" + }, { "key": "sandbox.filesystem", "type": "object", @@ -2341,6 +3775,12 @@ "minLength": 1, "description": "Path to the ripgrep binary to use" }, + { + "key": "sandbox.socatPath", + "type": "string", + "minLength": 1, + "description": "(Managed setting only) Path to custom socat binary for Linux/WSL network proxying. Overrides default. See https://code.claude.com/docs/en/server-managed-settings" + }, { "key": "showClearContextOnPlanAccept", "type": "boolean", @@ -2359,6 +3799,24 @@ "default": true, "description": "Show turn duration messages after responses (e.g., \"Cooked for 1m 6s\"). Set to false to hide these messages (default: true)" }, + { + "key": "skillListingBudgetFraction", + "type": "number", + "default": 0.01, + "maximum": 1, + "description": "Fraction of the model context window reserved for the skill listing sent to Claude (default 0.01 = 1%). When the listing exceeds this, descriptions are shortened to fit. Also configurable via the SLASH_COMMAND_TOOL_CHAR_BUDGET environment variable (fixed character count). See https://code.claude.com/docs/en/skills#skill-descriptions-are-cut-short" + }, + { + "key": "skillOverrides", + "type": "object", + "examples": [ + { + "legacy-context": "name-only", + "deploy": "off" + } + ], + "description": "Per-skill visibility overrides. Controls whether skills appear to Claude and in the / picker. Values: 'on' (name and description shown, default), 'name-only' (name only), 'user-invocable-only' (hidden from Claude, visible in /), 'off' (hidden everywhere). Plugin skills are not affected by this setting. See https://code.claude.com/docs/en/skills#override-skill-visibility-from-settings" + }, { "key": "skipDangerousModePermissionPrompt", "type": "boolean", @@ -2436,6 +3894,22 @@ "minLength": 1 } }, + { + "key": "sshConfigs", + "type": "array", + "description": "(Managed settings) Pre-configured SSH connections distributed to Desktop users. See https://code.claude.com/docs/en/desktop#ssh-sessions", + "items": { + "type": "object" + } + }, + { + "key": "sshHostAllowlist", + "type": "array", + "description": "(Managed settings only) Allowlist restricting Desktop SSH sessions to approved hosts. Patterns are case-insensitive; * matches any host and *.example.com matches example.com and any subdomain. See https://code.claude.com/docs/en/desktop#ssh-sessions", + "items": { + "type": "string" + } + }, { "key": "statusLine", "type": "object", @@ -2452,6 +3926,11 @@ "type": "string", "description": "A shell command or path to a script that displays session information (context usage, costs, git status, etc.) by reading JSON data from stdin and writing output to stdout. See https://code.claude.com/docs/en/statusline" }, + { + "key": "statusLine.hideVimModeIndicator", + "type": "boolean", + "description": "Set to true when your status line script renders the vim mode indicator itself, to suppress the built-in vim mode display. See https://code.claude.com/docs/en/statusline#manually-configure-a-status-line" + }, { "key": "statusLine.padding", "type": "number", @@ -2484,7 +3963,7 @@ } ] ], - "description": "(Managed settings only) Allowlist of plugin marketplaces users can add. Undefined = no restrictions, empty array = lockdown. Uses exact matching for source specifications. See https://code.claude.com/docs/en/settings#strictknownmarketplaces", + "description": "(Managed settings only) Allowlist of plugin marketplaces users can add. Undefined = no restrictions, empty array = lockdown. Uses exact matching for source specifications. See https://code.claude.com/docs/en/plugin-marketplaces#managed-marketplace-restrictions", "items": { "anyOf": [ { @@ -2688,16 +4167,39 @@ } ] }, + { + "key": "subagentStatusLine", + "type": "object", + "description": "Status line configuration for subagent sessions. See https://code.claude.com/docs/en/statusline#subagent-status-lines" + }, + { + "key": "subagentStatusLine.command", + "type": "string", + "minLength": 1, + "description": "Shell command to run for the subagent status line" + }, + { + "key": "subagentStatusLine.type", + "type": "string", + "const": "command", + "description": "Must be \"command\"" + }, + { + "key": "syntaxHighlightingDisabled", + "type": "boolean", + "description": "Disable syntax highlighting in diffs, code blocks, and file previews. See https://code.claude.com/docs/en/settings#available-settings" + }, { "key": "teammateMode", "type": "string", "enum": [ "auto", "in-process", - "tmux" + "tmux", + "iterm2" ], - "default": "auto", - "description": "How agent team teammates display: \"auto\" picks split panes in tmux or iTerm2, in-process otherwise. Agent teams are experimental and disabled by default. Enable them by adding CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS to your settings.json or environment. See https://code.claude.com/docs/en/agent-teams" + "default": "in-process", + "description": "How agent team teammates display: \"auto\" picks split panes in tmux or iTerm2, in-process otherwise; \"iterm2\" (added in v2.1.186) forces iTerm2 native split panes and requires the it2 CLI (it shows an error with the install command if it2 is missing). The default is \"in-process\" (it was \"auto\" before v2.1.179). Agent teams are experimental and disabled by default. Enable them by adding CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS to your settings.json or environment. See https://code.claude.com/docs/en/agent-teams#choose-a-display-mode" }, { "key": "terminalProgressBarEnabled", @@ -2705,6 +4207,30 @@ "default": true, "description": "Enable the terminal progress bar that shows progress in supported terminals like Windows Terminal and iTerm2 (default: true)" }, + { + "key": "theme", + "default": "dark", + "description": "Color theme for the interface: auto, dark, light, the daltonized variants (deuteranopia-friendly), the ansi variants (16-color terminals), or a custom theme reference such as custom: or custom::. See https://code.claude.com/docs/en/terminal-config#match-the-color-theme", + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "dark", + "light", + "dark-daltonized", + "light-daltonized", + "dark-ansi", + "light-ansi" + ] + }, + { + "type": "string", + "pattern": "^custom:.+", + "description": "Reference to a custom theme defined in ~/.claude/themes/, in the form \"custom:\"" + } + ] + }, { "key": "tui", "type": "string", @@ -2719,6 +4245,12 @@ "type": "boolean", "description": "When true, apply the auto mode classifier during plan mode to auto-approve safe read-only tool calls while planning. Has no effect unless permissions.defaultMode allows auto. See https://code.claude.com/docs/en/permissions" }, + { + "key": "verbose", + "type": "boolean", + "default": false, + "description": "Show full tool output instead of truncated summaries. The --verbose flag overrides this for a single session. Requires Claude Code v2.1.119 or later. See https://code.claude.com/docs/en/settings#available-settings" + }, { "key": "viewMode", "type": "string", @@ -2729,16 +4261,71 @@ ], "description": "Transcript view mode. \"default\" shows standard interactive view; \"verbose\" shows expanded tool details; \"focus\" shows prompt, one-line tool summaries, and final response only (Ctrl+O toggle). See https://code.claude.com/docs/en/settings#available-settings" }, + { + "key": "voice", + "type": "object", + "description": "Voice dictation settings: enabled turns dictation on, mode selects \"hold\" or \"tap\", and autoSubmit sends the prompt on key release in hold mode. Written automatically when you run /voice. Requires a Claude.ai account. See https://code.claude.com/docs/en/voice-dictation" + }, + { + "key": "voice.autoSubmit", + "type": "boolean", + "description": "In hold mode, auto-submit the prompt on key release when the transcript is at least three words long" + }, + { + "key": "voice.enabled", + "type": "boolean", + "description": "Enable push-to-talk voice dictation input" + }, + { + "key": "voice.mode", + "type": "string", + "enum": [ + "hold", + "tap" + ], + "description": "Recording mode: \"hold\" (default) is push-to-talk; \"tap\" taps once to start and again to stop and submit" + }, { "key": "voiceEnabled", "type": "boolean", - "description": "Enable push-to-talk voice dictation. Typically written automatically when /voice is used. Requires a Claude.ai account. See https://code.claude.com/docs/en/settings#available-settings" + "description": "Legacy alias for voice.enabled; prefer the voice object. Requires a Claude.ai account. See https://code.claude.com/docs/en/settings#available-settings" + }, + { + "key": "wheelScrollAccelerationEnabled", + "type": "boolean", + "description": "In fullscreen rendering, accelerate mouse-wheel scroll speed during fast scrolls (v2.1.174+). Set to false for a constant scroll rate per wheel notch. See https://code.claude.com/docs/en/fullscreen#mouse-wheel-scrolling" + }, + { + "key": "workflowKeywordTriggerEnabled", + "type": "boolean", + "default": true, + "description": "Whether including the keyword \"ultracode\" in a prompt triggers a dynamic workflow. Requires Claude Code v2.1.157 or later. See https://code.claude.com/docs/en/settings#available-settings" }, { "key": "worktree", "type": "object", "description": "Configuration for --worktree sessions. See https://code.claude.com/docs/en/settings#worktree-settings" }, + { + "key": "worktree.baseRef", + "type": "string", + "enum": [ + "fresh", + "head" + ], + "default": "fresh", + "description": "Whether to branch worktrees from origin/ (fresh) or local HEAD (head). Default: fresh. Set to 'head' to preserve unpushed commits in new worktrees. See https://code.claude.com/docs/en/settings#worktree-settings" + }, + { + "key": "worktree.bgIsolation", + "type": "string", + "enum": [ + "worktree", + "none" + ], + "default": "worktree", + "description": "Isolation mode for background sessions. \"worktree\" blocks Edit/Write in main checkout until EnterWorktree is called; \"none\" lets background jobs edit the working copy directly without EnterWorktree, for repos where worktrees are impractical. See https://code.claude.com/docs/en/settings#worktree-settings" + }, { "key": "worktree.sparsePaths", "type": "array", @@ -2754,6 +4341,20 @@ "minLength": 1 } }, + { + "key": "worktree.symlinkDirectories", + "type": "array", + "examples": [ + [ + "node_modules", + ".cache" + ] + ], + "description": "Directories to symlink from the main repository into each worktree to avoid duplicating large directories on disk. No directories are symlinked by default. See https://code.claude.com/docs/en/settings#worktree-settings", + "items": { + "type": "string" + } + }, { "key": "wslInheritsWindowsSettings", "type": "boolean", diff --git a/catalog/sub-agents.json b/catalog/sub-agents.json index bf28469..741da02 100644 --- a/catalog/sub-agents.json +++ b/catalog/sub-agents.json @@ -1,12 +1,12 @@ { "source": "https://code.claude.com/docs/en/sub-agents.md", - "fetchedAt": "2026-05-18T12:34:59.151Z", + "fetchedAt": "2026-07-06T12:50:16.704Z", "count": 16, "fields": [ { "name": "background", "required": false, - "description": "Set to `true` to always run this subagent as a [background task](#run-subagents-in-foreground-or-background). Default: `false`" + "description": "Set to `true` to always run this subagent as a [background task](#run-subagents-in-foreground-or-background), even when Claude needs its result right away. When unset, Claude chooses, and {/* min-version: 2.1.198 */}as of v2.1.198 it runs subagents in the background by default" }, { "name": "color", @@ -41,7 +41,7 @@ { "name": "isolation", "required": false, - "description": "Set to `worktree` to run the subagent in a temporary [git worktree](/en/worktrees), giving it an isolated copy of the repository. The worktree is automatically cleaned up if the subagent makes no changes" + "description": "Set to `worktree` to run the subagent in a temporary [git worktree](/en/worktrees), giving it an isolated copy of the repository branched by default from your [default branch](/en/worktrees#choose-the-base-branch) rather than the parent session's `HEAD`. The worktree is automatically cleaned up if the subagent makes no changes" }, { "name": "maxTurns", @@ -61,22 +61,22 @@ { "name": "model", "required": false, - "description": "[Model](#choose-a-model) to use: `sonnet`, `opus`, `haiku`, a full model ID (for example, `claude-opus-4-7`), or `inherit`. Defaults to `inherit`" + "description": "[Model](#choose-a-model) to use: `sonnet`, `opus`, `haiku`, `fable`, a full model ID (for example, `claude-opus-4-8`), or `inherit`. Defaults to `inherit`" }, { "name": "name", "required": true, - "description": "Unique identifier using lowercase letters and hyphens. [Hooks](/en/hooks#subagentstart) receive this value as `agent_type`. The filename does not have to match" + "description": "Unique identifier using lowercase letters and hyphens. [Hooks](/en/hooks#subagentstart) receive this value as `agent_type`. The filename doesn't have to match" }, { "name": "permissionMode", "required": false, - "description": "[Permission mode](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, or `plan`. Ignored for [plugin subagents](#choose-the-subagent-scope)" + "description": "[Permission mode](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan`, or {/* min-version: 2.1.200 */}`manual` as an alias for `default`. The `manual` alias requires Claude Code v2.1.200 or later. Ignored for [plugin subagents](#choose-the-subagent-scope)" }, { "name": "skills", "required": false, - "description": "[Skills](/en/skills) to preload into the subagent's context at startup. The full skill content is injected, not just the description. Subagents can still invoke unlisted project, user, and plugin skills through the Skill tool" + "description": "[Skills](/en/skills) to preload into the subagent's context at startup. The full skill content is injected, not only the description. Subagents can still invoke unlisted project, user, and plugin skills through the Skill tool" }, { "name": "tools",