From f26646fee2634cb6f30aacb68573cc327d17cdf8 Mon Sep 17 00:00:00 2001 From: samkeen <17389+samkeen@users.noreply.github.com> Date: Mon, 15 Jun 2026 15:17:33 +0000 Subject: [PATCH] chore: sync catalog with upstream docs Auto-generated by .github/workflows/catalog-drift.yml. --- catalog/cli-reference.json | 82 ++++++++++----- catalog/env-vars.json | 202 ++++++++++++++++++++++++++++++------- catalog/hooks.json | 116 +++++++++++++++++++-- catalog/keybindings.json | 2 +- catalog/mcp.json | 2 +- catalog/model-config.json | 12 ++- catalog/permissions.json | 4 +- catalog/settings.json | 190 +++++++++++++++++++++++++++++++++- catalog/sub-agents.json | 6 +- 9 files changed, 529 insertions(+), 87 deletions(-) diff --git a/catalog/cli-reference.json b/catalog/cli-reference.json index 27cee14..dd9ca64 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-06-15T15:17:32.236Z", + "commandCount": 27, + "flagCount": 68, "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,16 @@ "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 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)", @@ -101,12 +111,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 +146,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 +166,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", @@ -178,7 +188,7 @@ }, { "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", + "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", "example": "`claude --bg \"investigate the flaky test\"`" }, { @@ -216,11 +226,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 +241,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 +269,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,7 +318,7 @@ }, { "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)", + "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-4-6`" }, { @@ -346,6 +356,11 @@ "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", @@ -359,7 +374,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", @@ -408,7 +428,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 +436,21 @@ "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": "`--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 +468,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..cc56113 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-06-15T15:17:27.251Z", + "count": 267, "envVars": [ { "name": "ANTHROPIC_API_KEY", @@ -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)", @@ -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 [Vertex AI](/en/google-vertex-ai), [Foundry](/en/microsoft-foundry), [Mantle](/en/amazon-bedrock#use-the-mantle-endpoint), [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", @@ -235,7 +260,7 @@ }, { "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), in [Remote Control](/en/remote-control) sessions, 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. In other cases, such as a default local session, 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 }, { @@ -253,6 +278,16 @@ "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))", @@ -278,6 +313,11 @@ "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`", "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's own spawn path 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 + }, { "name": "CLAUDE_CODE_CLIENT_CERT", "purpose": "Path to client certificate file for mTLS authentication", @@ -310,7 +350,12 @@ }, { "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, or on 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 and `--advisor` flag become unavailable and any configured `advisorModel` is ignored. Requires Claude Code v2.1.98 or later", "default": null }, { @@ -320,7 +365,7 @@ }, { "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 }, { @@ -338,6 +383,11 @@ "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_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", @@ -405,12 +455,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 +468,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 Vertex AI, and Microsoft Foundry. 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 Bedrock, Vertex AI, or Foundry](/en/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-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 +490,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 }, { @@ -450,7 +510,7 @@ }, { "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 +520,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 +548,11 @@ "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 tmux server first started by Claude Code's Bash tool, causes a genuine top-level session to be misclassified as nested. 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_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 +560,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 make [forked subagents](/en/sub-agents#fork-the-current-conversation) the model's default, or `0` to disable them, overriding any server-side rollout. When enabled, Claude spawns a fork, a subagent that inherits the full conversation context instead of starting fresh, whenever it would otherwise 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 }, { @@ -600,7 +665,7 @@ }, { "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. To run fast mode on Opus 4.6 until it is retired, select the model with `/model` first, then `/fast on`", "default": null }, { @@ -645,7 +710,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,6 +718,16 @@ "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_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)", @@ -683,6 +758,11 @@ "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_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 +770,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 on the native scroll path. 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 }, { @@ -710,12 +790,12 @@ }, { "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 }, { @@ -753,6 +833,11 @@ "purpose": "Skip Google authentication for Vertex (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)", @@ -773,6 +858,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 +890,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 }, { @@ -840,17 +940,22 @@ }, { "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 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 `1` to force-enable the event-level streaming idle watchdog, or set to `0` to force-disable it. When unset, the default is 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 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 +970,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. For the event-level watchdog on third-party providers, requires `CLAUDE_ENABLE_STREAM_WATCHDOG=1`; the body idle timeout described under `API_FORCE_IDLE_TIMEOUT` applies independently. On 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 +1015,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 }, { @@ -950,7 +1055,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 +1080,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,7 +1095,7 @@ }, { "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 }, { @@ -995,7 +1105,7 @@ }, { "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, [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 within included usage receive 1-hour TTL automatically. 1-hour cache writes are billed at a higher rate", "default": null }, { @@ -1005,12 +1115,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 Vertex AI or when `ANTHROPIC_BASE_URL` points to a non-first-party host. Values: `true` (always defer and send the beta header, requests fail on Vertex AI 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 +1160,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 +1170,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 +1200,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" }, { @@ -1123,6 +1233,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)", @@ -1200,7 +1320,17 @@ }, { "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 Vertex AI. 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 Vertex AI. Added in v2.1.154", + "default": null + }, + { + "name": "VERTEX_REGION_CLAUDE_FABLE_5", + "purpose": "{/* min-version: 2.1.170 */}Override region for Claude Fable 5 when using Vertex AI. Added in v2.1.170", "default": null }, { diff --git a/catalog/hooks.json b/catalog/hooks.json index ff4dd27..cbf0ebf 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-06-15T15:17:28.394Z", + "count": 30, "events": [ { "name": "ConfigChange", @@ -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 cannot 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": [] }, { @@ -269,6 +302,22 @@ { "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) (`-p`), 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 +336,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 +383,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 +396,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 +426,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": [] }, { @@ -452,6 +542,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 +576,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", @@ -577,7 +671,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", @@ -606,7 +700,7 @@ }, { "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", diff --git a/catalog/keybindings.json b/catalog/keybindings.json index 830fbb3..46b2afc 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-06-15T15:17:31.528Z", "count": 20, "contexts": [ { diff --git a/catalog/mcp.json b/catalog/mcp.json index 2a643a7..e62dad4 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-06-15T15:17:29.699Z", "count": 3, "scopes": [ { diff --git a/catalog/model-config.json b/catalog/model-config.json index 40a8657..d049bcb 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-06-15T15:17:33.249Z", + "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, 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..ea6ea68 100644 --- a/catalog/permissions.json +++ b/catalog/permissions.json @@ -1,6 +1,6 @@ { "source": "https://code.claude.com/docs/en/permissions.md", - "fetchedAt": "2026-05-18T12:34:59.743Z", + "fetchedAt": "2026-06-15T15:17:30.551Z", "count": 6, "modes": [ { @@ -13,7 +13,7 @@ }, { "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", diff --git a/catalog/settings.json b/catalog/settings.json index 89f9704..685b25e 100644 --- a/catalog/settings.json +++ b/catalog/settings.json @@ -1,8 +1,8 @@ { "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-06-15T15:17:26.376Z", + "count": 327, "settings": [ { "key": "$schema", @@ -168,6 +168,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", @@ -706,6 +714,11 @@ "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_TIMEOUT_MS", "type": "string", @@ -882,6 +895,15 @@ ], "description": "Disable adaptive reasoning" }, + { + "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_ATTACHMENTS", "type": "string", @@ -1084,6 +1106,15 @@ ], "description": "Refresh plugins at turn boundaries" }, + { + "key": "env.CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL", + "type": "string", + "enum": [ + "0", + "1" + ], + "description": "Enable feedback survey collection via OpenTelemetry for enterprises" + }, { "key": "env.CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING", "type": "string", @@ -1093,6 +1124,15 @@ ], "description": "Force fine-grained tool output streaming" }, + { + "key": "env.CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY", + "type": "string", + "enum": [ + "0", + "1" + ], + "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_PROMPT_SUGGESTION", "type": "string", @@ -1144,6 +1184,15 @@ "type": "string", "description": "Token limit for file read operations" }, + { + "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", @@ -1275,6 +1324,15 @@ "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.7. With this set, /fast runs on Opus 4.6. Without it, /fast runs on Opus 4.7. See https://code.claude.com/docs/en/fast-mode and https://code.claude.com/docs/en/env-vars" + }, { "key": "env.CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS", "type": "string", @@ -1290,6 +1348,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 +1385,29 @@ ], "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_PROVIDER_MANAGED_BY_HOST", "type": "string", @@ -1452,6 +1537,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", @@ -1629,7 +1719,7 @@ "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.7 by default for 2.5x faster output at higher per-token cost. Requires extra usage enabled. Toggle with /fast command. Set CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 to pin fast mode to Opus 4.6. See https://code.claude.com/docs/en/fast-mode" }, { "key": "fastModePerSessionOptIn", @@ -2026,6 +2116,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", @@ -2173,11 +2273,31 @@ "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.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 +2317,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 +2466,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 +2490,17 @@ "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": "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", @@ -2452,6 +2594,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", @@ -2688,6 +2835,23 @@ } ] }, + { + "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": "teammateMode", "type": "string", @@ -2739,6 +2903,26 @@ "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", diff --git a/catalog/sub-agents.json b/catalog/sub-agents.json index bf28469..a79a4ea 100644 --- a/catalog/sub-agents.json +++ b/catalog/sub-agents.json @@ -1,6 +1,6 @@ { "source": "https://code.claude.com/docs/en/sub-agents.md", - "fetchedAt": "2026-05-18T12:34:59.151Z", + "fetchedAt": "2026-06-15T15:17:29.208Z", "count": 16, "fields": [ { @@ -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,7 +61,7 @@ { "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",