Environment variables
Settings Vendor docs
config
| name | type | required | meaning | concept | |
|---|---|---|---|---|---|
| ANTHROPIC_API_KEY | string | API key sent as `X-Api-Key` header. When set, this key is used instead of your Claude Pro, Max, Team, or Enterprise subscription even if you are logged in. In non-interactive mode (`-p`), the key is always used when present. In interacti... | docs ↗ | ||
| ANTHROPIC_AUTH_TOKEN | string | Custom value for the `Authorization` header (the value you set here will be prefixed with `Bearer `) | docs ↗ | ||
| ANTHROPIC_AWS_API_KEY | string | Workspace API key for Claude Platform on AWS, generated in the AWS Console. Sent as `x-api-key` and takes precedence over AWS SigV4 | docs ↗ | ||
| ANTHROPIC_AWS_BASE_URL | string | Override the Claude Platform on AWS endpoint URL. Use for custom regions or when routing through an LLM gateway. Defaults to `https://aws-external-anthropic.{AWS_REGION}.api.aws` | docs ↗ | ||
| ANTHROPIC_AWS_WORKSPACE_ID | string | Required for Claude Platform on AWS. Sent on every request as the `anthropic-workspace-id` header | docs ↗ | ||
| ANTHROPIC_BASE_URL | string | Override the API endpoint to route requests through a proxy or gateway. When set to a non-first-party host, MCP tool search is disabled by default. Set `ENABLE_TOOL_SEARCH=true` if your proxy forwards `tool_reference` blocks. As of v2.1.... | docs ↗ | ||
| ANTHROPIC_BEDROCK_BASE_URL | string | Override the Amazon Bedrock endpoint URL. Use for custom Amazon Bedrock endpoints or when routing through an LLM gateway. See Amazon Bedrock | docs ↗ | ||
| ANTHROPIC_BEDROCK_MANTLE_BASE_URL | string | Override the Amazon Bedrock Mantle endpoint URL. See Mantle endpoint | docs ↗ | ||
| ANTHROPIC_BEDROCK_SERVICE_TIER | string | Amazon Bedrock service tier (`default`, `flex`, or `priority`). Sent as the `X-Amzn-Bedrock-Service-Tier` header. See Amazon Bedrock | docs ↗ | ||
| ANTHROPIC_BETAS | string | Comma-separated list of additional `anthropic-beta` header values to include in API requests. Claude Code already sends the beta headers it needs; use this to opt into an Anthropic API beta before Claude Code adds native support. Unlike ... | docs ↗ | ||
| ANTHROPIC_CUSTOM_HEADERS | string | Custom headers to add to requests (`Name: Value` format, newline-separated for multiple headers) | docs ↗ | ||
| ANTHROPIC_CUSTOM_MODEL_OPTION | string | Model ID to add as a custom entry in the `/model` picker. Use this to make a non-standard or gateway-specific model selectable without replacing built-in aliases. See Model configuration | docs ↗ | ||
| ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION | string | Display description for the custom model entry in the `/model` picker. Defaults to `Custom model (<model-id>)` when not set | docs ↗ | ||
| ANTHROPIC_CUSTOM_MODEL_OPTION_NAME | string | Display name for the custom model entry in the `/model` picker. Defaults to the model ID when not set | docs ↗ | ||
| ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_FABLE_MODEL | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_FABLE_MODEL_NAME | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_HAIKU_MODEL | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_OPUS_MODEL | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_OPUS_MODEL_NAME | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_SONNET_MODEL | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_SONNET_MODEL_NAME | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES | string | See Model configuration | docs ↗ | ||
| ANTHROPIC_FOUNDRY_API_KEY | string | API key for Microsoft Foundry authentication (see Microsoft Foundry) | docs ↗ | ||
| ANTHROPIC_FOUNDRY_AUTH_TOKEN | string | Bearer token for Microsoft Foundry authentication, such as a Microsoft Entra access token. Claude Code sends it as the `Authorization: Bearer` header. Takes precedence over `ANTHROPIC_FOUNDRY_API_KEY` and over the Azure default credentia... | docs ↗ | ||
| ANTHROPIC_FOUNDRY_BASE_URL | string | 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) | docs ↗ | ||
| ANTHROPIC_FOUNDRY_RESOURCE | string | Microsoft Foundry resource name (for example, `my-resource`). Required if `ANTHROPIC_FOUNDRY_BASE_URL` is not set (see Microsoft Foundry) | docs ↗ | ||
| ANTHROPIC_MODEL | string | Name of the model setting to use (see Model Configuration) | docs ↗ | ||
| ANTHROPIC_SMALL_FAST_MODEL | string | \[DEPRECATED] Name of Haiku-class model for background tasks | docs ↗ | ||
| ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION | string | 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, ... | docs ↗ | ||
| ANTHROPIC_VERTEX_BASE_URL | string | Override Google Cloud's Agent Platform endpoint URL. Use for custom Google Cloud's Agent Platform endpoints or when routing through an LLM gateway. See Google Cloud's Agent Platform | docs ↗ | ||
| ANTHROPIC_VERTEX_PROJECT_ID | string | 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 | docs ↗ | ||
| ANTHROPIC_WORKSPACE_ID | string | Workspace ID for 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 | docs ↗ | ||
| API_FORCE_IDLE_TIMEOUT | string | 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 or local model pauses longer than 5 minutes between chunks. Set to `1` to ... | docs ↗ | ||
| API_TIMEOUT_MS | string | 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... | docs ↗ | ||
| AWS_BEARER_TOKEN_BEDROCK | string | Amazon Bedrock API key for authentication (see Amazon Bedrock API keys) | docs ↗ | ||
| BASH_DEFAULT_TIMEOUT_MS | string | Default timeout for long-running bash commands (default: 120000, or 2 minutes) | docs ↗ | ||
| BASH_MAX_OUTPUT_LENGTH | string | Maximum number of characters in bash outputs before the full output is saved to a file and Claude receives the path plus a short preview. See Bash tool behavior | docs ↗ | ||
| BASH_MAX_TIMEOUT_MS | string | Maximum timeout the model can set for long-running bash commands (default: 600000, or 10 minutes) | docs ↗ | ||
| CCR_FORCE_BUNDLE | string | Set to `1` to force `claude --cloud` to bundle and upload your local repository even when GitHub access is available | docs ↗ | ||
| CLAUDECODE | string | 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. Use to detect when ... | docs ↗ | ||
| CLAUDE_AFK_COUNTDOWN_MS | string | How many milliseconds before auto-continue the on-screen countdown appears on an unanswered `AskUserQuestion` dialog. Default `20000` (20 seconds), capped at the auto-continue timeout. Has no effect unless auto-continue is on; see the `a... | docs ↗ | ||
| CLAUDE_AFK_TIMEOUT_MS | string | How many milliseconds of idle time before an unanswered `AskUserQuestion` dialog auto-continues without you. Auto-continue is off by default; opt in with the `askUserQuestionTimeout` setting. This variable is an override for demos and au... | docs ↗ | ||
| CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS | string | Set to `1` to disable all built-in subagent types such as Explore and Plan. Only applies in non-interactive mode (the `-p` flag). Useful for SDK users who want a blank slate | docs ↗ | ||
| CLAUDE_AGENT_SDK_MCP_NO_PREFIX | string | Set to `1` to skip the `mcp__<server>__` prefix on tool names from SDK-created MCP servers. Tools use their original names. SDK usage only | docs ↗ | ||
| CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS | string | Stall timeout in milliseconds for background subagents. Default `600000` (10 minutes). 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, su... | docs ↗ | ||
| CLAUDE_AUTOCOMPACT_PCT_OVERRIDE | string | 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_C... | docs ↗ | ||
| CLAUDE_AUTO_BACKGROUND_TASKS | string | Set to `1` to force-enable automatic backgrounding of long-running agent tasks. When enabled, subagents are moved to the background after running for approximately two minutes | docs ↗ | ||
| CLAUDE_AX_SCREEN_READER | string | 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. Requ... | docs ↗ | ||
| CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR | string | Return to the original working directory after each Bash or PowerShell command in the main session | docs ↗ | ||
| CLAUDE_CLIENT_PRESENCE_FILE | string | 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, so you stop gettin... | docs ↗ | ||
| CLAUDE_CODE_ACCESSIBILITY | string | 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 | docs ↗ | ||
| CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD | string | 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 | docs ↗ | ||
| CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT | string | Set to `1` to repaint the entire screen on every frame in fullscreen rendering instead of sending incremental updates. Use this if fullscreen mode shows stale or misplaced text fragments. Claude Code enables this automatically for backgr... | docs ↗ | ||
| CLAUDE_CODE_ALWAYS_ENABLE_EFFORT | string | Set to `1` to send the effort 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 or third-party provider that serves models under custom ide... | docs ↗ | ||
| CLAUDE_CODE_API_KEY_HELPER_TTL_MS | string | Interval in milliseconds at which credentials should be refreshed (when using `apiKeyHelper`) | docs ↗ | ||
| CLAUDE_CODE_ARTIFACT_AUTO_OPEN | string | Set to `0` to stop Claude Code from opening the browser automatically when a new artifact is published. Republishing an existing artifact does not open the browser regardless of this setting | docs ↗ | ||
| CLAUDE_CODE_ATTRIBUTION_HEADER | string | 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. Caching on a direct connection to the... | docs ↗ | ||
| CLAUDE_CODE_AUTO_COMPACT_WINDOW | string | 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 models, except on Sonnet 5, which has its own default threshold. Use a ... | docs ↗ | ||
| CLAUDE_CODE_AUTO_CONNECT_IDE | string | Override automatic IDE connection. 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... | docs ↗ | ||
| CLAUDE_CODE_BRIDGE_SESSION_ID | string | Set automatically in Bash tool and hook command subprocesses while the session has an active Remote Control connection, and removed when the connection ends. The value is the session's ID in `session_` form, the same identifier that appe... | docs ↗ | ||
| CLAUDE_CODE_CERT_STORE | string | 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 bi... | docs ↗ | ||
| CLAUDE_CODE_CHILD_SESSION | string | Set to `1` in subprocesses Claude Code spawns via the Bash, PowerShell, and Monitor tools, hook commands, and status line commands. Not set for stdio MCP server subprocesses, which are long-lived and outlive the session that spawned them... | docs ↗ | ||
| CLAUDE_CODE_CLIENT_CERT | string | Path to client certificate file for mTLS authentication | docs ↗ | ||
| CLAUDE_CODE_CLIENT_KEY | string | Path to client private key file for mTLS authentication | docs ↗ | ||
| CLAUDE_CODE_CLIENT_KEY_PASSPHRASE | string | Passphrase for encrypted CLAUDE\_CODE\_CLIENT\_KEY (optional) | docs ↗ | ||
| CLAUDE_CODE_CONNECT_TIMEOUT_MS | string | 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 | docs ↗ | ||
| CLAUDE_CODE_DEBUG_LOGS_DIR | string | Override the debug log file path. Despite the name, this is a file path, not a directory. Requires debug mode to be enabled separately via `--debug`, `/debug`, or the `DEBUG` environment variable: setting this variable alone does not ena... | docs ↗ | ||
| CLAUDE_CODE_DEBUG_LOG_LEVEL | string | 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 | docs ↗ | ||
| CLAUDE_CODE_DISABLE_1M_CONTEXT | string | Set to `1` to disable 1M context window support. When set, 1M model variants are unavailable in the model picker, and Sonnet 5 sessions are treated as having a 200K window. Useful for enterprise environments with compliance requirements | docs ↗ | ||
| CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING | string | Set to `1` to disable adaptive reasoning on Opus 4.6 and Sonnet 4.6 and fall back to the fixed thinking budget controlled by `MAX_THINKING_TOKENS`. From v2.1.111, has no effect on Fable 5, Sonnet 5, or Opus 4.7 and later, which always us... | docs ↗ | ||
| CLAUDE_CODE_DISABLE_ADVISOR_TOOL | string | Set to `1` to disable the advisor tool. 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 witho... | docs ↗ | ||
| CLAUDE_CODE_DISABLE_AGENT_VIEW | string | Set to `1` to turn off background agents and agent view: `claude agents`, `--bg`, `/background`, and the on-demand supervisor. Equivalent to the `disableAgentView` setting | docs ↗ | ||
| CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN | string | Set to `1` to disable fullscreen rendering 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` ... | docs ↗ | ||
| CLAUDE_CODE_DISABLE_ARTIFACT | string | Set to `1` to disable the Artifact tool, which publishes session output as a private web page on claude.ai. Equivalent to the `disableArtifact` setting | docs ↗ | ||
| CLAUDE_CODE_DISABLE_ATTACHMENTS | string | Set to `1` to disable attachment processing. File mentions with `@` syntax are sent as plain text instead of being expanded into file content | docs ↗ | ||
| CLAUDE_CODE_DISABLE_AUTO_MEMORY | string | Set to `1` to disable auto memory. Set to `0` to force auto memory on even when `--bare` mode or `autoMemoryEnabled: false` would otherwise disable it. When disabled, Claude does not create or load auto memory files | docs ↗ | ||
| CLAUDE_CODE_DISABLE_BACKGROUND_TASKS | string | 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 | docs ↗ | ||
| CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF | string | Set to `1` to stop a background session's running background shell commands, dynamic workflows, and, as of v2.1.198, background subagents when the supervisor stops, restarts, or updates that session's process, instead of handing them to ... | docs ↗ | ||
| CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP | string | Set to `1` to stop Claude Code from terminating background shell 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 memor... | docs ↗ | ||
| CLAUDE_CODE_DISABLE_BUNDLED_SKILLS | string | Set to `1` to 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, `.c... | docs ↗ | ||
| CLAUDE_CODE_DISABLE_CLAUDE_MDS | string | Set to `1` to prevent loading any CLAUDE.md memory files into context, including user, project, and auto-memory files | docs ↗ | ||
| CLAUDE_CODE_DISABLE_CRON | string | Set to `1` to disable scheduled tasks. The `/loop` skill and cron tools become unavailable and any already-scheduled tasks stop firing, including tasks that are already running mid-session | docs ↗ | ||
| CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS | string | 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 ... | docs ↗ | ||
| CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS | string | Set to `1` to disable the built-in Explore and Plan subagents. Claude explores with its search tools or the general-purpose subagent instead, and plan mode reads files directly rather than launching Explore and Plan agents. Custom subage... | docs ↗ | ||
| CLAUDE_CODE_DISABLE_FAST_MODE | string | Set to `1` to disable fast mode | docs ↗ | ||
| CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY | string | Set to `1` to disable the "How is Claude doing?" session quality surveys. Surveys are also disabled when `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, or `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` is set, unless `CLAUDE_CODE_ENABLE_FEEDBACK_SURVE... | docs ↗ | ||
| CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING | string | Set to `1` to disable file checkpointing. The `/rewind` command will not be able to restore code changes | docs ↗ | ||
| CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS | string | Set to `1` to remove built-in commit and PR workflow instructions and the git status snapshot from Claude's system prompt. Useful when using your own git workflow skills. Takes precedence over the `includeGitInstructions` setting when set | docs ↗ | ||
| CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP | string | 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 Platfor... | docs ↗ | ||
| CLAUDE_CODE_DISABLE_MOUSE | string | Set to `1` to disable mouse tracking in fullscreen rendering. Keyboard scrolling with `PgUp` and `PgDn` still works. Use this to keep your terminal's native copy-on-select behavior | docs ↗ | ||
| CLAUDE_CODE_DISABLE_MOUSE_CLICKS | string | Set to `1` to disable click, drag, and hover handling in fullscreen rendering 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 o... | docs ↗ | ||
| CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC | string | Equivalent of setting `DISABLE_AUTOUPDATER`, `DISABLE_FEEDBACK_COMMAND`, `DISABLE_ERROR_REPORTING`, and `DISABLE_TELEMETRY` | docs ↗ | ||
| CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK | string | 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 | docs ↗ | ||
| CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK | string | 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 when it detects recent keyboard ac... | docs ↗ | ||
| CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL | string | Set to `1` to skip automatic addition of the official plugin marketplace on first run | docs ↗ | ||
| CLAUDE_CODE_DISABLE_POLICY_SKILLS | string | Set to `1` to skip loading skills from the system-wide managed skills directory. Useful for container or CI sessions that should not load operator-provisioned skills | docs ↗ | ||
| CLAUDE_CODE_DISABLE_TERMINAL_TITLE | string | 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 | docs ↗ | ||
| CLAUDE_CODE_DISABLE_THINKING | string | 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 b... | docs ↗ | ||
| CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL | string | Set to `1` to disable virtual scrolling in fullscreen rendering and render every message in the transcript. Use this if scrolling in fullscreen mode shows blank regions where messages should appear | docs ↗ | ||
| CLAUDE_CODE_DISABLE_WORKFLOWS | string | Set to `1` to disable workflows. Equivalent to the `disableWorkflows` setting | docs ↗ | ||
| CLAUDE_CODE_EFFORT_LEVEL | string | 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 Adju... | docs ↗ | ||
| CLAUDE_CODE_ENABLE_AUTO_MODE | string | Set to `1` to make auto mode available on Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, and signed-in Claude apps gateway sessions. Requires Claude Code v2.1.158 or later. Has no effect on the Anthropic API, where aut... | docs ↗ | ||
| CLAUDE_CODE_ENABLE_AWAY_SUMMARY | string | Override session recap availability. Set to `0` to force recaps off regardless of the `/config` toggle. Set to `1` to force recaps on when `awaySummaryEnabled` is `false`. Takes precedence over the setting and `/config` toggle | docs ↗ | ||
| CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH | string | Set to `1` to refresh plugin state at turn boundaries in non-interactive mode after a background install completes. Off by default because the refresh changes the system prompt mid-session, which invalidates prompt caching for that turn | docs ↗ | ||
| CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL | string | Set to `1` to route the "How is Claude doing?" session quality survey to your own OpenTelemetry collector when Anthropic-bound nonessential traffic is blocked. Survey ratings are emitted only as OTEL events to your configured collector. ... | docs ↗ | ||
| CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING | string | 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 de... | docs ↗ | ||
| CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY | string | 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 ... | docs ↗ | ||
| CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE | string | Removed in v2.1.142, when the fast mode default moved from Opus 4.6 to Opus 4.7 | docs ↗ | ||
| CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION | string | Set to `false` to disable prompt suggestions (the "Prompt suggestions" toggle in `/config`). These are the grayed-out predictions that appear in your prompt input after Claude responds. See Prompt suggestions | docs ↗ | ||
| CLAUDE_CODE_ENABLE_TASKS | string | Controls whether sessions use the structured Task tools (`TaskCreate`, `TaskUpdate`, `TaskGet`, `TaskList`) or the legacy `TodoWrite` tool. As of Claude Code v2.1.142, Task tools are the default in all modes. Set to `0` to revert to `Tod... | docs ↗ | ||
| CLAUDE_CODE_ENABLE_TELEMETRY | string | Set to `1` to enable OpenTelemetry data collection for metrics and logging. Required before configuring OTel exporters. See Monitoring | docs ↗ | ||
| CLAUDE_CODE_EXIT_AFTER_STOP_DELAY | string | Time in milliseconds to wait after the query loop becomes idle before automatically exiting. Useful for automated workflows and scripts using SDK mode | docs ↗ | ||
| CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS | string | Set to `1` to enable agent teams. Agent teams are experimental and disabled by default | docs ↗ | ||
| CLAUDE_CODE_EXTRA_BODY | string | JSON object to merge into the top level of every API request body. Useful for passing provider-specific parameters that Claude Code does not expose directly | docs ↗ | ||
| CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS | string | Override the default token limit for file reads. Useful when you need to read larger files in full | docs ↗ | ||
| CLAUDE_CODE_FORCE_SESSION_PERSISTENCE | string | 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 examp... | docs ↗ | ||
| CLAUDE_CODE_FORCE_STRIKETHROUGH | string | 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 lite... | docs ↗ | ||
| CLAUDE_CODE_FORCE_SYNC_OUTPUT | string | Set to `1` to force-enable DEC private mode 2026 synchronized output 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 n... | docs ↗ | ||
| CLAUDE_CODE_FORK_SUBAGENT | string | Set to `1` to let Claude spawn forked subagents, 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 contex... | docs ↗ | ||
| CLAUDE_CODE_GIT_BASH_PATH | string | Windows only: path to the Git Bash executable (`bash.exe`). Use when Git Bash is installed but not in your PATH. See Windows setup | docs ↗ | ||
| CLAUDE_CODE_GLOB_HIDDEN | string | Set to `false` to exclude dotfiles from results when Claude invokes the Glob tool. Included by default. Does not affect `@` file autocomplete, `ls`, Grep, or Read | docs ↗ | ||
| CLAUDE_CODE_GLOB_NO_IGNORE | string | Set to `false` to make the Glob tool respect `.gitignore` patterns. By default, Glob returns all matching files including gitignored ones. Does not affect `@` file autocomplete, which has its own `respectGitignore` setting | docs ↗ | ||
| CLAUDE_CODE_GLOB_TIMEOUT_SECONDS | string | Timeout in seconds for Glob tool file discovery. Defaults to 20 seconds on most platforms and 60 seconds on WSL | docs ↗ | ||
| CLAUDE_CODE_HIDE_CWD | string | Set to `1` to hide the working directory in the startup logo. Useful for screenshares or recordings where the path exposes your OS username | docs ↗ | ||
| CLAUDE_CODE_IDE_HOST_OVERRIDE | string | Override the host address used to connect to the IDE extension. By default Claude Code auto-detects the correct address, including WSL-to-Windows routing | docs ↗ | ||
| CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL | string | Set to `1` to skip auto-installation of IDE extensions. Equivalent to setting `autoInstallIdeExtension` to `false` | docs ↗ | ||
| CLAUDE_CODE_IDE_SKIP_VALID_CHECK | string | Set to `1` to skip validation of IDE lockfile entries during connection. Use when auto-connect fails to find your IDE despite it running | docs ↗ | ||
| CLAUDE_CODE_MAX_CONTEXT_TOKENS | string | Override the context window size Claude Code assumes for the active model. 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... | docs ↗ | ||
| CLAUDE_CODE_MAX_OUTPUT_TOKENS | string | Set the maximum number of output tokens for most requests. Defaults and caps vary by model; see max output tokens. Increasing this value reduces the effective context window available before auto-compaction triggers | docs ↗ | ||
| CLAUDE_CODE_MAX_RETRIES | string | Override the number of times to retry failed API requests (default: 10). Capped at 15 as of v2.1.186; as of v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` raises the default and removes the cap. For unattended sessions that need to wait through ... | docs ↗ | ||
| CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY | string | Maximum number of read-only tools and subagents that can execute in parallel (default: 10). Higher values increase parallelism but consume more resources | docs ↗ | ||
| CLAUDE_CODE_MAX_TURNS | string | Cap the number of agentic turns when no explicit limit is passed. Equivalent to passing `--max-turns`, which takes precedence when both are set. A value that is not a positive integer is rejected at startup with an error rather than trea... | docs ↗ | ||
| CLAUDE_CODE_MCP_ALLOWLIST_ENV | string | 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 | docs ↗ | ||
| CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT | string | Idle timeout in milliseconds for MCP tool calls. When a stdio, 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 fo... | docs ↗ | ||
| CLAUDE_CODE_NATIVE_CURSOR | string | 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 | docs ↗ | ||
| CLAUDE_CODE_NEW_INIT | string | 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... | docs ↗ | ||
| CLAUDE_CODE_NO_FLICKER | string | Set to `1` to enable fullscreen rendering, a research preview that reduces flicker and keeps memory flat in long conversations. Equivalent to the `tui` setting; you can also switch with `/tui fullscreen` | docs ↗ | ||
| CLAUDE_CODE_OAUTH_REFRESH_TOKEN | string | OAuth refresh token for Claude.ai authentication. When set, `claude auth login` exchanges this token directly instead of opening a browser. Requires `CLAUDE_CODE_OAUTH_SCOPES`. Useful for provisioning authentication in automated environm... | docs ↗ | ||
| CLAUDE_CODE_OAUTH_SCOPES | string | Space-separated OAuth scopes the refresh token was issued with, such as `"user:profile user:inference user:sessions:claude_code"`. Required when `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` is set | docs ↗ | ||
| CLAUDE_CODE_OAUTH_TOKEN | string | OAuth access token for Claude.ai authentication. Alternative to `/login` for SDK and automated environments. Takes precedence over keychain-stored credentials. Generate one with `claude setup-token` | docs ↗ | ||
| CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE | string | Removed in v2.1.160 and now a no-op. Previously pinned fast mode to Claude Opus 4.6 instead of the current default. Opus 4.6 no longer supports fast mode | docs ↗ | ||
| CLAUDE_CODE_OTEL_DIAG_STDERR | string | 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... | docs ↗ | ||
| CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS | string | Timeout in milliseconds for flushing pending OpenTelemetry spans (default: 5000). See Monitoring | docs ↗ | ||
| CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS | string | Interval for refreshing dynamic OpenTelemetry headers in milliseconds (default: 1740000 / 29 minutes). See Dynamic headers | docs ↗ | ||
| CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS | string | Timeout in milliseconds for the OpenTelemetry exporter to finish on shutdown (default: 2000). Increase if metrics are dropped at exit. See Monitoring | docs ↗ | ||
| CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE | string | Set to `1` to let Claude Code run your package manager's upgrade command in the background when a new version is available. Applies to Homebrew and WinGet installations. Other package managers continue to show the upgrade command without... | docs ↗ | ||
| CLAUDE_CODE_PERFORCE_MODE | string | Set to `1` to enable Perforce-aware write protection. When set, Edit, Write, and NotebookEdit fail with a `p4 edit <file>` hint if the target file lacks the owner-write bit, which Perforce clears on synced files until `p4 edit` opens the... | docs ↗ | ||
| CLAUDE_CODE_PLUGIN_CACHE_DIR | string | Override the plugins root directory. Despite the name, this sets the parent directory, not the cache itself: marketplaces and the plugin cache live in subdirectories under this path. Defaults to `~/.claude/plugins` | docs ↗ | ||
| CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS | string | Timeout in milliseconds for git operations when installing or updating plugins (default: 120000). Increase this value for large repositories or slow network connections. See Git operations time out | docs ↗ | ||
| CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE | string | Set to `1` to keep the existing marketplace cache when a `git pull` fails instead of wiping and re-cloning. Useful in offline or airgapped environments where re-cloning would fail the same way. See Marketplace updates fail in offline env... | docs ↗ | ||
| CLAUDE_CODE_PLUGIN_PREFER_HTTPS | string | 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 conf... | docs ↗ | ||
| CLAUDE_CODE_PLUGIN_SEED_DIR | string | 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 ... | docs ↗ | ||
| CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY | string | 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... | docs ↗ | ||
| CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS | string | Maximum time in milliseconds that non-interactive mode 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, r... | docs ↗ | ||
| CLAUDE_CODE_PROPAGATE_TRACEPARENT | string | 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... | docs ↗ | ||
| CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST | string | 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_AP... | docs ↗ | ||
| CLAUDE_CODE_PROXY_RESOLVES_HOSTS | string | Set to `1` to allow the proxy to perform DNS resolution instead of the caller. Opt-in for environments where the proxy should handle hostname resolution | docs ↗ | ||
| CLAUDE_CODE_REMOTE | string | Set automatically to `true` when Claude Code is running as a cloud session. Read this from a hook or setup script to detect whether you are in a cloud environment | docs ↗ | ||
| CLAUDE_CODE_REMOTE_SESSION_ID | string | Set automatically in cloud sessions to the current session's ID. Read this to construct a link back to the session transcript. See Link output back to the session | docs ↗ | ||
| CLAUDE_CODE_RESUME_INTERRUPTED_TURN | string | Set to `1` to automatically resume if the previous session ended mid-turn. Used in SDK mode so the model continues without requiring the SDK to re-send the prompt | docs ↗ | ||
| CLAUDE_CODE_RESUME_PROMPT | string | 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... | docs ↗ | ||
| CLAUDE_CODE_RETRY_WATCHDOG | string | 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 minut... | docs ↗ | ||
| CLAUDE_CODE_SAFE_MODE | string | 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-me... | docs ↗ | ||
| CLAUDE_CODE_SCRIPT_CAPS | string | 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.... | docs ↗ | ||
| CLAUDE_CODE_SCROLL_SPEED | string | Set the mouse wheel scroll multiplier in fullscreen rendering. 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 ... | docs ↗ | ||
| CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS | string | Override the time budget in milliseconds for SessionEnd hooks. Applies to session exit, `/clear`, and switching sessions via interactive `/resume`. By default the budget is 1.5 seconds, automatically raised to the highest per-hook `timeo... | docs ↗ | ||
| CLAUDE_CODE_SESSION_ID | string | Set automatically to the current session ID in Bash and PowerShell tool subprocesses, hook command subprocesses, and stdio MCP server subprocesses. For Bash, PowerShell, and hooks this matches the `session_id` field in the hook JSON inpu... | docs ↗ | ||
| CLAUDE_CODE_SHELL | string | 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... | docs ↗ | ||
| CLAUDE_CODE_SHELL_PREFIX | string | Command prefix that wraps shell commands Claude Code spawns: Bash tool calls, hook commands, status line commands, and stdio MCP server startup commands. PowerShell hooks and exec-form hooks run without the prefix. Useful for logging or ... | docs ↗ | ||
| CLAUDE_CODE_SIMPLE | string | 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.... | docs ↗ | ||
| CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT | string | Set to `1` to use a shorter system prompt and abbreviated tool descriptions on any model. Set to `0`, `false`, `no`, or `off` to opt out even on models where the experiment or server configuration would otherwise enable it. The full tool... | docs ↗ | ||
| CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH | string | Skip client-side authentication for Claude Platform on AWS, for gateways that sign requests themselves | docs ↗ | ||
| CLAUDE_CODE_SKIP_BEDROCK_AUTH | string | Skip AWS authentication for Amazon Bedrock (for example, when using an LLM gateway) | docs ↗ | ||
| CLAUDE_CODE_SKIP_FOUNDRY_AUTH | string | Skip Azure authentication for Microsoft Foundry, for a proxy or gateway that injects its own `Authorization` header. Claude Code sends requests without an Azure credential and preserves the `Authorization` header you supply, for example ... | docs ↗ | ||
| CLAUDE_CODE_SKIP_MANTLE_AUTH | string | Skip AWS authentication for Amazon Bedrock Mantle (for example, when using an LLM gateway) | docs ↗ | ||
| CLAUDE_CODE_SKIP_PROMPT_HISTORY | string | Set to `1` to skip writing prompt history and session transcripts to disk. Sessions started with this variable set do not appear in `--resume`, `--continue`, or up-arrow history. Useful for ephemeral scripted sessions | docs ↗ | ||
| CLAUDE_CODE_SKIP_VERTEX_AUTH | string | Skip Google authentication for Google Cloud's Agent Platform (for example, when using an LLM gateway) | docs ↗ | ||
| CLAUDE_CODE_STOP_HOOK_BLOCK_CAP | string | Maximum number of consecutive times a Stop or 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 nee... | docs ↗ | ||
| CLAUDE_CODE_SUBAGENT_MODEL | string | See Model configuration. 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 | docs ↗ | ||
| CLAUDE_CODE_SUBPROCESS_ENV_SCRUB | string | Set to `1` to strip Anthropic and cloud provider credentials from subprocess environments (Bash tool, hooks, MCP stdio servers). The parent Claude process keeps these credentials for API calls, but child processes cannot read them, reduc... | docs ↗ | ||
| CLAUDE_CODE_SYNC_PLUGIN_INSTALL | string | Set to `1` in non-interactive mode (the `-p` flag) to wait for plugin installation to complete before the first query. Without this, plugins install in the background and may not be available on the first turn. Combine with `CLAUDE_CODE_... | docs ↗ | ||
| CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS | string | 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 | docs ↗ | ||
| CLAUDE_CODE_SYNC_SKILLS | string | 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 ... | docs ↗ | ||
| CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS | string | 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 r... | docs ↗ | ||
| CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS | string | 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 | docs ↗ | ||
| CLAUDE_CODE_SYNTAX_HIGHLIGHT | string | 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` setting | docs ↗ | ||
| CLAUDE_CODE_TASK_LIST_ID | string | Share a task list across sessions. Set the same ID in multiple Claude Code instances to coordinate on a shared task list. See Task list | docs ↗ | ||
| CLAUDE_CODE_TEAM_NAME | string | Name of the agent team this teammate belongs to. Set automatically on agent team members | docs ↗ | ||
| CLAUDE_CODE_TMPDIR | string | 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. As of v2.1.161, on macOS and Linu... | docs ↗ | ||
| CLAUDE_CODE_TMUX_TRUECOLOR | string | Set to `1` to allow 24-bit truecolor output inside tmux. By default, Claude Code clamps to 256 colors when `$TMUX` is set because tmux does not pass through truecolor escape sequences unless configured to. Set this after adding `set -ga ... | docs ↗ | ||
| CLAUDE_CODE_USE_ANTHROPIC_AWS | string | Use Claude Platform on AWS | docs ↗ | ||
| CLAUDE_CODE_USE_BEDROCK | string | Use Amazon Bedrock | docs ↗ | ||
| CLAUDE_CODE_USE_FOUNDRY | string | Use Microsoft Foundry | docs ↗ | ||
| CLAUDE_CODE_USE_MANTLE | string | Use the Amazon Bedrock Mantle endpoint | docs ↗ | ||
| CLAUDE_CODE_USE_NATIVE_FILE_SEARCH | string | Set to `1` to discover custom commands, subagents, and output styles using Node.js file APIs instead of ripgrep. Set this if the bundled ripgrep binary is unavailable or blocked in your environment. Does not affect the Grep or file searc... | docs ↗ | ||
| CLAUDE_CODE_USE_POWERSHELL_TOOL | string | Controls the PowerShell tool. On Windows without Git Bash, the tool is enabled automatically; set to `0` to disable it. On Windows with Git Bash installed, the tool is rolling out progressively: set to `1` to opt in or `0` to opt out. On... | docs ↗ | ||
| CLAUDE_CODE_USE_VERTEX | string | Use Google Cloud's Agent Platform | docs ↗ | ||
| CLAUDE_CONFIG_DIR | string | 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 run... | docs ↗ | ||
| CLAUDE_DISABLE_ADOPT | string | Set to `1` to stop in-flight background work instead of carrying it over when you background a session by pressing `←` or with `/background`. Claude Code asks you to confirm before backgrounding, then stops the tasks that would otherwise... | docs ↗ | ||
| CLAUDE_EFFORT | string | Set automatically in Bash tool subprocesses and hook commands to the active 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... | docs ↗ | ||
| CLAUDE_ENABLE_BYTE_WATCHDOG | string | 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 connections. The byte watchdog abort... | docs ↗ | ||
| CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK | string | 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` | docs ↗ | ||
| CLAUDE_ENABLE_STREAM_WATCHDOG | string | Set to `0` to force-disable the event-level streaming idle watchdog, or set to `1` to force-enable it. When unset, the watchdog is on by default for all providers. Before v2.1.196, the unset default was server-controlled on the direct An... | docs ↗ | ||
| CLAUDE_ENV_FILE | string | Path to a shell script whose contents Claude Code runs before each Bash command in the same shell process, so exports in the file are visible to the command. Use to persist virtualenv or conda activation across commands. Also populated d... | docs ↗ | ||
| CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX | string | Prefix for auto-generated Remote Control session names when no explicit name is provided. Defaults to your machine's hostname, producing names like `myhost-graceful-unicorn`. The `--remote-control-session-name-prefix` CLI flag sets the s... | docs ↗ | ||
| CLAUDE_STREAM_IDLE_TIMEOUT_MS | string | 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 ... | docs ↗ | ||
| DEBUG | string | Set to `1` to enable debug mode, equivalent to launching with `--debug`. Debug logs are written to `~/.claude/debug/<session-id>.txt`, or to the path set by `CLAUDE_CODE_DEBUG_LOGS_DIR`. Only the truthy values `1`, `true`, `yes`, and `on... | docs ↗ | ||
| DISABLE_AUTOUPDATER | string | Set to `1` to disable automatic background updates. Manual `claude update` still works. Use `DISABLE_UPDATES` to block both | docs ↗ | ||
| DISABLE_AUTO_COMPACT | string | Set to `1` to disable automatic compaction when approaching the context limit. The manual `/compact` command remains available. Use when you want explicit control over when compaction occurs | docs ↗ | ||
| DISABLE_COMPACT | string | Set to `1` to disable all compaction: both automatic compaction and the manual `/compact` command | docs ↗ | ||
| DISABLE_COST_WARNINGS | string | Set to `1` to disable cost warning messages | docs ↗ | ||
| DISABLE_DOCTOR_COMMAND | string | Set to `1` to hide the `/doctor` command. Useful for managed deployments where users should not run installation diagnostics | docs ↗ | ||
| DISABLE_ERROR_REPORTING | string | Set to `1` to opt out of Sentry error reporting | docs ↗ | ||
| DISABLE_EXTRA_USAGE_COMMAND | string | Set to `1` to hide the `/usage-credits` command that lets users purchase additional usage beyond rate limits | docs ↗ | ||
| DISABLE_FEEDBACK_COMMAND | string | Set to `1` to disable the `/feedback` command. The older name `DISABLE_BUG_COMMAND` is also accepted | docs ↗ | ||
| DISABLE_GROWTHBOOK | string | Set to `1` to disable GrowthBook feature-flag fetching and use code defaults for every flag. Telemetry event logging stays on unless `DISABLE_TELEMETRY` is also set | docs ↗ | ||
| DISABLE_INSTALLATION_CHECKS | string | Set to `1` to disable installation warnings. Use only when manually managing the installation location, as this can mask issues with standard installations | docs ↗ | ||
| DISABLE_INSTALL_GITHUB_APP_COMMAND | string | 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) | docs ↗ | ||
| DISABLE_INTERLEAVED_THINKING | string | Set to `1` to prevent sending the interleaved-thinking beta header. Useful when your LLM gateway or provider does not support interleaved thinking | docs ↗ | ||
| DISABLE_LOGIN_COMMAND | string | Set to `1` to hide the `/login` command. Useful when authentication is handled externally via API keys or `apiKeyHelper` | docs ↗ | ||
| DISABLE_LOGOUT_COMMAND | string | Set to `1` to hide the `/logout` command | docs ↗ | ||
| DISABLE_PROMPT_CACHING | string | Set to `1` to disable prompt caching for all models (takes precedence over per-model settings) | docs ↗ | ||
| DISABLE_PROMPT_CACHING_FABLE | string | Set to `1` to disable prompt caching for Fable models | docs ↗ | ||
| DISABLE_PROMPT_CACHING_HAIKU | string | Set to `1` to disable prompt caching for Haiku models | docs ↗ | ||
| DISABLE_PROMPT_CACHING_OPUS | string | Set to `1` to disable prompt caching for Opus models | docs ↗ | ||
| DISABLE_PROMPT_CACHING_SONNET | string | Set to `1` to disable prompt caching for Sonnet models | docs ↗ | ||
| DISABLE_TELEMETRY | string | 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 unav... | docs ↗ | ||
| DISABLE_UPDATES | string | Set to `1` to block all updates including manual `claude update` and `claude install`. Stricter than `DISABLE_AUTOUPDATER`. Use when distributing Claude Code through your own channels and users should not self-update | docs ↗ | ||
| DISABLE_UPGRADE_COMMAND | string | Set to `1` to hide the `/upgrade` command | docs ↗ | ||
| DO_NOT_TRACK | string | 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 | docs ↗ | ||
| ENABLE_CLAUDEAI_MCP_SERVERS | string | Set to `false` to disable claude.ai MCP servers in Claude Code. Enabled by default for logged-in users. To disable per-project or per-org, set `disableClaudeAiConnectors` in settings instead | docs ↗ | ||
| ENABLE_PROMPT_CACHING_1H | string | Set to `1` to request a 1-hour prompt cache TTL instead of the default 5 minutes. Intended for API key, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, and Claude Platform on AWS users. Subscription users within include... | docs ↗ | ||
| ENABLE_PROMPT_CACHING_1H_BEDROCK | string | Deprecated. Use `ENABLE_PROMPT_CACHING_1H` instead | docs ↗ | ||
| ENABLE_TOOL_SEARCH | string | Controls 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,... | docs ↗ | ||
| FALLBACK_FOR_ALL_PRIMARY_MODELS | string | 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. As of v2.1.160, a configured fallback model chain triggers on repeated overload errors for a... | docs ↗ | ||
| FORCE_AUTOUPDATE_PLUGINS | string | Set to `1` to force plugin auto-updates even when the main auto-updater is disabled via `DISABLE_AUTOUPDATER` | docs ↗ | ||
| FORCE_PROMPT_CACHING_5M | string | Set to `1` to force the 5-minute prompt cache TTL even when 1-hour TTL would otherwise apply. Overrides `ENABLE_PROMPT_CACHING_1H` | docs ↗ | ||
| HTTPS_PROXY | string | Specify HTTPS proxy server for network connections | docs ↗ | ||
| HTTP_PROXY | string | Specify HTTP proxy server for network connections | docs ↗ | ||
| IS_DEMO | string | Set to `1` to enable demo mode: hides your email and organization name from the header and `/status` output, and skips onboarding. Useful when streaming or recording a session | docs ↗ | ||
| MAX_MCP_OUTPUT_TOKENS | string | Maximum number of tokens allowed in MCP tool responses. Claude Code displays a warning when output exceeds 10,000 tokens. Tools that declare `anthropic/maxResultSizeChars` use that character limit for text content instead, but image cont... | docs ↗ | ||
| MAX_STRUCTURED_OUTPUT_RETRIES | string | Number of times to retry when the model's response fails validation against the `--json-schema` in non-interactive mode (the `-p` flag). Defaults to 5 | docs ↗ | ||
| MAX_THINKING_TOKENS | string | Override the extended thinking token budget. The ceiling is the model's max output tokens 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, ... | docs ↗ | ||
| MCP_CLIENT_SECRET | string | OAuth client secret for MCP servers that require pre-configured credentials. Avoids the interactive prompt when adding a server with `--client-secret` | docs ↗ | ||
| MCP_CONNECTION_NONBLOCKING | string | Controls whether startup waits for MCP servers to connect before the first query. 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 ... | docs ↗ | ||
| MCP_CONNECT_TIMEOUT_MS | string | 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`. Servers still pending... | docs ↗ | ||
| MCP_OAUTH_CALLBACK_PORT | string | Fixed port for the OAuth redirect callback, as an alternative to `--callback-port` when adding an MCP server with pre-configured credentials | docs ↗ | ||
| MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE | string | Maximum number of remote MCP servers (HTTP/SSE) to connect in parallel during startup (default: 20) | docs ↗ | ||
| MCP_SERVER_CONNECTION_BATCH_SIZE | string | Maximum number of local MCP servers (stdio) to connect in parallel during startup (default: 3) | docs ↗ | ||
| MCP_TIMEOUT | string | Timeout in milliseconds for MCP server startup (default: 30000, or 30 seconds) | docs ↗ | ||
| MCP_TOOL_TIMEOUT | string | 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. A per-server `timeout` of at least 1000 also sets the minimum idle window fo... | docs ↗ | ||
| NO_PROXY | string | List of domains and IPs to which requests will be directly issued, bypassing proxy | docs ↗ | ||
| OTEL_LOG_ASSISTANT_RESPONSES | string | 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` i... | docs ↗ | ||
| OTEL_LOG_RAW_API_BODIES | string | 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:<dir>` to write untruncated bodies to disk and emit a `body_ref` path... | docs ↗ | ||
| OTEL_LOG_TOOL_CONTENT | string | Set to `1` to include tool input and output content in OpenTelemetry span events. Disabled by default to protect sensitive data. See Monitoring | docs ↗ | ||
| OTEL_LOG_TOOL_DETAILS | string | Set to `1` to include tool input arguments, MCP server names, user-authored workflow names, raw error strings on tool failures, the refusal `category` on `api_refusal` events, and other tool details in OpenTelemetry traces and logs. Disa... | docs ↗ | ||
| OTEL_LOG_USER_PROMPTS | string | Set to `1` to include user prompt text in OpenTelemetry traces and logs. Disabled by default (prompts are redacted). See Monitoring | docs ↗ | ||
| OTEL_METRICS_INCLUDE_ACCOUNT_UUID | string | Set to `false` to exclude account UUID from metrics attributes (default: included). See Monitoring | docs ↗ | ||
| OTEL_METRICS_INCLUDE_ENTRYPOINT | string | Set to `true` to include the session entrypoint in metrics attributes (default: excluded). Added in v2.1.152. See Monitoring | docs ↗ | ||
| OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES | string | 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 | docs ↗ | ||
| OTEL_METRICS_INCLUDE_SESSION_ID | string | Set to `false` to exclude session ID from metrics attributes (default: included). See Monitoring | docs ↗ | ||
| OTEL_METRICS_INCLUDE_VERSION | string | Set to `true` to include Claude Code version in metrics attributes (default: excluded). See Monitoring | docs ↗ | ||
| SLASH_COMMAND_TOOL_CHAR_BUDGET | string | 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 8,000 characters. Legacy name kept for backwards compatibility | docs ↗ | ||
| TASK_MAX_OUTPUT_LENGTH | string | 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 truncated response | docs ↗ | ||
| USE_BUILTIN_RIPGREP | string | Set to `0` to use system-installed `rg` instead of `rg` included with Claude Code | docs ↗ | ||
| VERTEX_REGION_CLAUDE_3_5_HAIKU | string | Override region for Claude 3.5 Haiku when using Google Cloud's Agent Platform | docs ↗ | ||
| VERTEX_REGION_CLAUDE_3_5_SONNET | string | Override region for Claude 3.5 Sonnet when using Google Cloud's Agent Platform | docs ↗ | ||
| VERTEX_REGION_CLAUDE_3_7_SONNET | string | Override region for Claude 3.7 Sonnet when using Google Cloud's Agent Platform | docs ↗ | ||
| VERTEX_REGION_CLAUDE_4_0_OPUS | string | Override region for Claude 4.0 Opus when using Google Cloud's Agent Platform | docs ↗ | ||
| VERTEX_REGION_CLAUDE_4_0_SONNET | string | Override region for Claude 4.0 Sonnet when using Google Cloud's Agent Platform | docs ↗ | ||
| VERTEX_REGION_CLAUDE_4_1_OPUS | string | Override region for Claude 4.1 Opus when using Google Cloud's Agent Platform | docs ↗ | ||
| VERTEX_REGION_CLAUDE_4_5_OPUS | string | Override region for Claude Opus 4.5 when using Google Cloud's Agent Platform | docs ↗ | ||
| VERTEX_REGION_CLAUDE_4_5_SONNET | string | Override region for Claude Sonnet 4.5 when using Google Cloud's Agent Platform | docs ↗ | ||
| VERTEX_REGION_CLAUDE_4_6_OPUS | string | Override region for Claude Opus 4.6 when using Google Cloud's Agent Platform | docs ↗ | ||
| VERTEX_REGION_CLAUDE_4_6_SONNET | string | Override region for Claude Sonnet 4.6 when using Google Cloud's Agent Platform | docs ↗ | ||
| VERTEX_REGION_CLAUDE_4_7_OPUS | string | Override region for Claude Opus 4.7 when using Google Cloud's Agent Platform. Added in v2.1.111 | docs ↗ | ||
| VERTEX_REGION_CLAUDE_4_8_OPUS | string | Override region for Claude Opus 4.8 when using Google Cloud's Agent Platform. Added in v2.1.154 | docs ↗ | ||
| VERTEX_REGION_CLAUDE_5_SONNET | string | Override region for Claude Sonnet 5 when using Google Cloud's Agent Platform. Added in v2.1.197 | docs ↗ | ||
| VERTEX_REGION_CLAUDE_FABLE_5 | string | Override region for Claude Fable 5 when using Google Cloud's Agent Platform. Added in v2.1.170 | docs ↗ | ||
| VERTEX_REGION_CLAUDE_HAIKU_4_5 | string | Override region for Claude Haiku 4.5 when using Google Cloud's Agent Platform | docs ↗ |