Skip to content

Latest commit

 

History

History
349 lines (319 loc) · 174 KB

File metadata and controls

349 lines (319 loc) · 174 KB
title Environment variables
source https://code.claude.com/docs/en/env-vars
category code
generated true

Documentation Index

Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt Use this file to discover all available pages before exploring further.

Environment variables

Reference for environment variables that control Claude Code behavior.

Environment variables can control Claude Code behavior such as model selection, authentication, request routing, and feature toggles. Many of the same behaviors can also be configured through a settings file field, a CLI flag, or an in-session command like /model.

This page covers how to:

Set environment variables

A variable you set in your shell lasts for that terminal session, while a variable in a settings file applies every time claude runs.

In your shell

Set the variable before launching claude:

```bash theme={null} export API_TIMEOUT_MS="1200000" claude ```
To set it for every session, add the `export` line to `~/.bashrc`, `~/.zshrc`, or your shell's profile file.
```powershell theme={null} $env:API_TIMEOUT_MS = "1200000" claude ```
To set it for every session, run `[Environment]::SetEnvironmentVariable("API_TIMEOUT_MS", "1200000", "User")` and open a new terminal.
```batch theme={null} set API_TIMEOUT_MS=1200000 claude ```
To set it for every session, run `setx API_TIMEOUT_MS "1200000"` and open a new terminal.

In settings files

Add variables under the env key in a settings.json file. Claude Code reads them directly from the file at startup, so they take effect no matter how claude was launched.

{
  "env": {
    "API_TIMEOUT_MS": "1200000",
    "BASH_DEFAULT_TIMEOUT_MS": "300000"
  }
}

The file you choose controls who the variables apply to:

File Applies to
~/.claude/settings.json You, in every project
.claude/settings.json Everyone working in the project, checked into source control
.claude/settings.local.json You, in this project only, not checked in
Managed settings Everyone in your organization, deployed by an admin

See Settings files for where each file lives and Settings precedence for how they combine when more than one sets the same variable.

Precedence

Where the same behavior has both an environment variable and a settings field, the environment variable takes precedence. For example, ANTHROPIC_MODEL overrides the model setting, and CLAUDE_CODE_AUTO_CONNECT_IDE overrides autoConnectIde. The settings field applies when the environment variable is not set.

How an environment variable interacts with CLI flags and in-session commands varies per feature: --model and /model override ANTHROPIC_MODEL, while CLAUDE_CODE_EFFORT_LEVEL overrides /effort. When a variable interacts with another configuration source, its row in the Variables list states the precedence or links to the page that documents it.

Claude Code reads environment variables at startup, so changes take effect the next time you launch claude.

Variables

Variable Purpose
ANTHROPIC_API_KEY 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 interactive mode, you are prompted to approve the key once before it overrides your subscription. To use your subscription instead, run unset ANTHROPIC_API_KEY
ANTHROPIC_AUTH_TOKEN Custom value for the Authorization header (the value you set here will be prefixed with Bearer )
ANTHROPIC_AWS_API_KEY Workspace API key for Claude Platform on AWS, generated in the AWS Console. Sent as x-api-key and takes precedence over AWS SigV4
ANTHROPIC_AWS_BASE_URL 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
ANTHROPIC_AWS_WORKSPACE_ID Required for Claude Platform on AWS. Sent on every request as the anthropic-workspace-id header
ANTHROPIC_BASE_URL 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
ANTHROPIC_BEDROCK_BASE_URL Override the Bedrock endpoint URL. Use for custom Bedrock endpoints or when routing through an LLM gateway. See Amazon Bedrock
ANTHROPIC_BEDROCK_MANTLE_BASE_URL Override the Bedrock Mantle endpoint URL. See Mantle endpoint
ANTHROPIC_BEDROCK_SERVICE_TIER Bedrock service tier (default, flex, or priority). Sent as the X-Amzn-Bedrock-Service-Tier header. See Amazon Bedrock
ANTHROPIC_BETAS 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 the --betas flag, which requires API key authentication, this variable works with all auth methods including Claude.ai subscription
ANTHROPIC_CUSTOM_HEADERS Custom headers to add to requests (Name: Value format, newline-separated for multiple headers)
ANTHROPIC_CUSTOM_MODEL_OPTION 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
ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION Display description for the custom model entry in the /model picker. Defaults to Custom model (<model-id>) when not set
ANTHROPIC_CUSTOM_MODEL_OPTION_NAME Display name for the custom model entry in the /model picker. Defaults to the model ID when not set
ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES See Model configuration
ANTHROPIC_DEFAULT_HAIKU_MODEL See Model configuration
ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION See Model configuration
ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME See Model configuration
ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES See Model configuration
ANTHROPIC_DEFAULT_OPUS_MODEL See Model configuration
ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION See Model configuration
ANTHROPIC_DEFAULT_OPUS_MODEL_NAME See Model configuration
ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES See Model configuration
ANTHROPIC_DEFAULT_SONNET_MODEL See Model configuration
ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION See Model configuration
ANTHROPIC_DEFAULT_SONNET_MODEL_NAME See Model configuration
ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES See Model configuration
ANTHROPIC_FOUNDRY_API_KEY API key for Microsoft Foundry authentication (see Microsoft Foundry)
ANTHROPIC_FOUNDRY_BASE_URL Full base URL for the Foundry resource (for example, https://my-resource.services.ai.azure.com/anthropic). Alternative to ANTHROPIC_FOUNDRY_RESOURCE (see Microsoft Foundry)
ANTHROPIC_FOUNDRY_RESOURCE Foundry resource name (for example, my-resource). Required if ANTHROPIC_FOUNDRY_BASE_URL is not set (see Microsoft Foundry)
ANTHROPIC_MODEL Name of the model setting to use (see Model Configuration)
ANTHROPIC_SMALL_FAST_MODEL [DEPRECATED] Name of Haiku-class model for background tasks
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION Override AWS region for the Haiku-class model when using Bedrock or Bedrock Mantle. On Bedrock, this only takes effect when ANTHROPIC_DEFAULT_HAIKU_MODEL or the deprecated ANTHROPIC_SMALL_FAST_MODEL is also set, since Bedrock otherwise uses the primary model for background tasks
ANTHROPIC_VERTEX_BASE_URL Override the Vertex AI endpoint URL. Use for custom Vertex endpoints or when routing through an LLM gateway. See Google Vertex AI
ANTHROPIC_VERTEX_PROJECT_ID GCP project ID for Vertex AI requests. Overridden by GCLOUD_PROJECT, GOOGLE_CLOUD_PROJECT, or the project in your GOOGLE_APPLICATION_CREDENTIALS credential file. See Google Vertex AI
ANTHROPIC_WORKSPACE_ID 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
API_TIMEOUT_MS 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
AWS_BEARER_TOKEN_BEDROCK Bedrock API key for authentication (see Bedrock API keys)
BASH_DEFAULT_TIMEOUT_MS Default timeout for long-running bash commands (default: 120000, or 2 minutes)
BASH_MAX_OUTPUT_LENGTH 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
BASH_MAX_TIMEOUT_MS Maximum timeout the model can set for long-running bash commands (default: 600000, or 10 minutes)
CCR_FORCE_BUNDLE Set to 1 to force claude --remote to bundle and upload your local repository even when GitHub access is available
CLAUDECODE Set to 1 in subprocesses Claude Code spawns (Bash and PowerShell tools, tmux sessions, hook commands, status line commands). Use to detect when a script is running inside a subprocess spawned by Claude Code
CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS 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
CLAUDE_AGENT_SDK_MCP_NO_PREFIX 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
CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS 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, surfacing any partial result to the parent
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE 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
CLAUDE_AUTO_BACKGROUND_TASKS 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
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR Return to the original working directory after each Bash or PowerShell command in the main session
CLAUDE_CODE_ACCESSIBILITY 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
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD 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
CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT 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 background sessions and agent view on Windows
CLAUDE_CODE_API_KEY_HELPER_TTL_MS Interval in milliseconds at which credentials should be refreshed (when using apiKeyHelper)
CLAUDE_CODE_ATTRIBUTION_HEADER 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. Anthropic API caching is unaffected
CLAUDE_CODE_AUTO_COMPACT_WINDOW 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. Use a lower value like 500000 on a 1M model to treat the window as 500K for compaction purposes. The value is capped at the model's actual context window. CLAUDE_AUTOCOMPACT_PCT_OVERRIDE is applied as a percentage of this value. Setting this variable decouples the compaction threshold from the status line's used_percentage, which always uses the model's full context window
CLAUDE_CODE_AUTO_CONNECT_IDE 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 fails, such as when tmux obscures the parent terminal. Takes precedence over the autoConnectIde global config setting
CLAUDE_CODE_CERT_STORE 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
CLAUDE_CODE_CLIENT_CERT Path to client certificate file for mTLS authentication
CLAUDE_CODE_CLIENT_KEY Path to client private key file for mTLS authentication
CLAUDE_CODE_CLIENT_KEY_PASSPHRASE Passphrase for encrypted CLAUDE_CODE_CLIENT_KEY (optional)
CLAUDE_CODE_DEBUG_LOGS_DIR 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 enable logging. The --debug-file flag does both at once. Defaults to ~/.claude/debug/<session-id>.txt
CLAUDE_CODE_DEBUG_LOG_LEVEL 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
CLAUDE_CODE_DISABLE_1M_CONTEXT Set to 1 to disable 1M context window support. When set, 1M model variants are unavailable in the model picker. Useful for enterprise environments with compliance requirements
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING 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. {/* min-version: 2.1.111 */}Has no effect on Opus 4.7, which always uses adaptive reasoning
CLAUDE_CODE_DISABLE_AGENT_VIEW 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
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN 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 and the tui setting. You can also switch with /tui default
CLAUDE_CODE_DISABLE_ATTACHMENTS Set to 1 to disable attachment processing. File mentions with @ syntax are sent as plain text instead of being expanded into file content
CLAUDE_CODE_DISABLE_AUTO_MEMORY 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
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS 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
CLAUDE_CODE_DISABLE_CLAUDE_MDS Set to 1 to prevent loading any CLAUDE.md memory files into context, including user, project, and auto-memory files
CLAUDE_CODE_DISABLE_CRON 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
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS Set to 1 to strip Anthropic-specific anthropic-beta request headers and beta tool-schema fields (such as defer_loading and eager_input_streaming) from API requests. Use this when a proxy gateway rejects requests with errors like "Unexpected value(s) for the anthropic-beta header" or "Extra inputs are not permitted". Standard fields (name, description, input_schema, cache_control) are preserved.
CLAUDE_CODE_DISABLE_FAST_MODE Set to 1 to disable fast mode
CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY 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_SURVEY_FOR_OTEL opts back in. To set a sample rate instead of disabling outright, use the feedbackSurveyRate setting. See Session quality surveys
CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING Set to 1 to disable file checkpointing. The /rewind command will not be able to restore code changes
CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS 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
CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP Set to 1 to prevent automatic remapping of Opus 4.0 and 4.1 to the current Opus version on the Anthropic API. Use when you intentionally want to pin an older model. The remap does not run on Bedrock, Vertex, or Foundry
CLAUDE_CODE_DISABLE_MOUSE 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
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC Equivalent of setting DISABLE_AUTOUPDATER, DISABLE_FEEDBACK_COMMAND, DISABLE_ERROR_REPORTING, and DISABLE_TELEMETRY
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK 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
CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL Set to 1 to skip automatic addition of the official plugin marketplace on first run
CLAUDE_CODE_DISABLE_POLICY_SKILLS 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
CLAUDE_CODE_DISABLE_TERMINAL_TITLE Set to 1 to disable automatic terminal title updates based on conversation context
CLAUDE_CODE_DISABLE_THINKING Set to 1 to force-disable extended thinking regardless of model support or other settings. More direct than MAX_THINKING_TOKENS=0
CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL 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
CLAUDE_CODE_EFFORT_LEVEL 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
CLAUDE_CODE_ENABLE_AWAY_SUMMARY 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
CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH 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
CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL 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. No survey data is sent to Anthropic in this mode. Applies when CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, DISABLE_TELEMETRY, or DO_NOT_TRACK is set, and has no effect otherwise. CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY and the organization product feedback policy take precedence
CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING Controls whether tool call inputs stream from the API as Claude generates them. With this off, a large tool input such as a long file write arrives only after Claude finishes generating it, which can look like it's hanging. Enabled by default on the Anthropic API. On Bedrock and Vertex, enabled per model where the deployed container supports it. Set to 0 to opt out. Set to 1 to force on when routing through a proxy via ANTHROPIC_BASE_URL, ANTHROPIC_VERTEX_BASE_URL, or ANTHROPIC_BEDROCK_BASE_URL. Off by default on Foundry and gateway connections
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY Set to 1 to populate the /model picker from your gateway's /v1/models endpoint when ANTHROPIC_BASE_URL points at an Anthropic-compatible gateway such as LiteLLM, Kong, or an internal proxy. Off by default because gateways backed by a shared API key would otherwise show every user every model the key can access. Discovered models are still filtered by the availableModels allowlist
CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE {/* max-version: 2.1.141 */}Removed in v2.1.142. Fast mode defaults to Opus 4.7. Set CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 to keep Opus 4.6 instead
CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION 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
CLAUDE_CODE_ENABLE_TASKS 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 and Migrate to Task tools
CLAUDE_CODE_ENABLE_TELEMETRY Set to 1 to enable OpenTelemetry data collection for metrics and logging. Required before configuring OTel exporters. See Monitoring
CLAUDE_CODE_EXIT_AFTER_STOP_DELAY Time in milliseconds to wait after the query loop becomes idle before automatically exiting. Useful for automated workflows and scripts using SDK mode
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS Set to 1 to enable agent teams. Agent teams are experimental and disabled by default
CLAUDE_CODE_EXTRA_BODY 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
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS Override the default token limit for file reads. Useful when you need to read larger files in full
CLAUDE_CODE_FORCE_SYNC_OUTPUT 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 no effect under tmux
CLAUDE_CODE_FORK_SUBAGENT Set to 1 to enable forked subagents. 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, and all subagent spawns run in the background. Works in interactive mode and via the SDK or claude -p
CLAUDE_CODE_GIT_BASH_PATH Windows only: path to the Git Bash executable (bash.exe). Use when Git Bash is installed but not in your PATH. See Windows setup
CLAUDE_CODE_GLOB_HIDDEN 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
CLAUDE_CODE_GLOB_NO_IGNORE 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
CLAUDE_CODE_GLOB_TIMEOUT_SECONDS Timeout in seconds for Glob tool file discovery. Defaults to 20 seconds on most platforms and 60 seconds on WSL
CLAUDE_CODE_HIDE_CWD Set to 1 to hide the working directory in the startup logo. Useful for screenshares or recordings where the path exposes your OS username
CLAUDE_CODE_IDE_HOST_OVERRIDE 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
CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL Skip auto-installation of IDE extensions. Equivalent to setting autoInstallIdeExtension to false
CLAUDE_CODE_IDE_SKIP_VALID_CHECK Set to 1 to skip validation of IDE lockfile entries during connection. Use when auto-connect fails to find your IDE despite it running
CLAUDE_CODE_MAX_CONTEXT_TOKENS Override the context window size Claude Code assumes for the active model. Only takes effect when DISABLE_COMPACT is also set. Use this when routing to a model through ANTHROPIC_BASE_URL whose context window does not match the built-in size for its name
CLAUDE_CODE_MAX_OUTPUT_TOKENS 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.
CLAUDE_CODE_MAX_RETRIES Override the number of times to retry failed API requests (default: 10)
CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY Maximum number of read-only tools and subagents that can execute in parallel (default: 10). Higher values increase parallelism but consume more resources
CLAUDE_CODE_MAX_TURNS 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 treated as no cap
CLAUDE_CODE_MCP_ALLOWLIST_ENV 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
CLAUDE_CODE_NATIVE_CURSOR 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
CLAUDE_CODE_NEW_INIT Set to 1 to make /init run an interactive setup flow. The flow asks which files to generate, including CLAUDE.md, skills, and hooks, before exploring the codebase and writing them. Without this variable, /init generates a CLAUDE.md automatically without prompting.
CLAUDE_CODE_NO_FLICKER 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
CLAUDE_CODE_OAUTH_REFRESH_TOKEN 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 environments
CLAUDE_CODE_OAUTH_SCOPES 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
CLAUDE_CODE_OAUTH_TOKEN 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
CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE Set to 1 to pin fast mode to Claude Opus 4.6 instead of the default Opus 4.7. With the variable set, /fast runs on Opus 4.6. Without it, /fast runs on Opus 4.7
CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS Timeout in milliseconds for flushing pending OpenTelemetry spans (default: 5000). See Monitoring
CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS Interval for refreshing dynamic OpenTelemetry headers in milliseconds (default: 1740000 / 29 minutes). See Dynamic headers
CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS Timeout in milliseconds for the OpenTelemetry exporter to finish on shutdown (default: 2000). Increase if metrics are dropped at exit. See Monitoring
CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE 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 running it. See Auto updates
CLAUDE_CODE_PERFORCE_MODE 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 them. This prevents Claude Code from bypassing Perforce change tracking
CLAUDE_CODE_PLUGIN_CACHE_DIR 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
CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS 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
CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE 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 environments
CLAUDE_CODE_PLUGIN_PREFER_HTTPS 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
CLAUDE_CODE_PLUGIN_SEED_DIR 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
CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY 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
CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST 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
CLAUDE_CODE_PROXY_RESOLVES_HOSTS 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
CLAUDE_CODE_REMOTE 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
CLAUDE_CODE_REMOTE_SESSION_ID Set automatically in cloud sessions to the current session's ID. Read this to construct a link back to the session transcript. See Link artifacts back to the session
CLAUDE_CODE_RESUME_INTERRUPTED_TURN 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
CLAUDE_CODE_RESUME_PROMPT 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
CLAUDE_CODE_SCRIPT_CAPS 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
CLAUDE_CODE_SCROLL_SPEED Set the mouse wheel scroll multiplier in fullscreen rendering. 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
CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS 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 timeout configured in settings files, up to 60 seconds. Timeouts on plugin-provided hooks do not raise the budget
CLAUDE_CODE_SESSION_ID Set automatically in Bash and PowerShell tool subprocesses and in hook command subprocesses to the current session ID. Matches the session_id field in the hook JSON input. Updated on /clear. Use to correlate scripts and external tools with the Claude Code session that launched them
CLAUDE_CODE_SHELL Override automatic shell detection. Useful when your login shell differs from your preferred working shell (for example, bash vs zsh)
CLAUDE_CODE_SHELL_PREFIX Command prefix that wraps shell commands Claude Code spawns: Bash tool calls, hook commands, and stdio MCP server startup commands. Useful for logging or auditing. Example: setting /path/to/logger.sh runs each command as /path/to/logger.sh <command>
CLAUDE_CODE_SIMPLE 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
CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT 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 set, hooks, MCP servers, and CLAUDE.md discovery remain enabled
CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH Skip client-side authentication for Claude Platform on AWS, for gateways that sign requests themselves
CLAUDE_CODE_SKIP_BEDROCK_AUTH Skip AWS authentication for Bedrock (for example, when using an LLM gateway)
CLAUDE_CODE_SKIP_FOUNDRY_AUTH Skip Azure authentication for Microsoft Foundry (for example, when using an LLM gateway)
CLAUDE_CODE_SKIP_MANTLE_AUTH Skip AWS authentication for Bedrock Mantle (for example, when using an LLM gateway)
CLAUDE_CODE_SKIP_PROMPT_HISTORY 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
CLAUDE_CODE_SKIP_VERTEX_AUTH Skip Google authentication for Vertex (for example, when using an LLM gateway)
CLAUDE_CODE_STOP_HOOK_BLOCK_CAP 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 needs more iterations to resolve
CLAUDE_CODE_SUBAGENT_MODEL See Model configuration
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB 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, reducing exposure to prompt injection attacks that attempt to exfiltrate secrets via shell expansion. On Linux, this also runs Bash subprocesses in an isolated PID namespace so they cannot read host process environments via /proc; as a side effect, ps, pgrep, and kill cannot see or signal host processes. claude-code-action sets this automatically when allowed_non_write_users is configured
CLAUDE_CODE_SYNC_PLUGIN_INSTALL 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_SYNC_PLUGIN_INSTALL_TIMEOUT_MS to bound the wait
CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS 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
CLAUDE_CODE_SYNTAX_HIGHLIGHT 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
CLAUDE_CODE_TASK_LIST_ID 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
CLAUDE_CODE_TEAM_NAME Name of the agent team this teammate belongs to. Set automatically on agent team members
CLAUDE_CODE_TMPDIR 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
CLAUDE_CODE_TMUX_TRUECOLOR 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 terminal-overrides ',*:Tc' to your ~/.tmux.conf. See Terminal configuration for other tmux settings
CLAUDE_CODE_USE_ANTHROPIC_AWS Use Claude Platform on AWS
CLAUDE_CODE_USE_BEDROCK Use Bedrock
CLAUDE_CODE_USE_FOUNDRY Use Microsoft Foundry
CLAUDE_CODE_USE_MANTLE Use the Bedrock Mantle endpoint
CLAUDE_CODE_USE_NATIVE_FILE_SEARCH 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 search tools
CLAUDE_CODE_USE_POWERSHELL_TOOL 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 Linux, macOS, and WSL, set to 1 to enable it, which requires pwsh on your PATH. When enabled on Windows, Claude can run PowerShell commands natively instead of routing through Git Bash. See PowerShell tool
CLAUDE_CODE_USE_VERTEX Use Vertex
CLAUDE_CONFIG_DIR Override the configuration directory (default: ~/.claude). All settings, credentials, session history, and plugins are stored under this path. Useful for running multiple accounts side by side: for example, alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'
CLAUDE_EFFORT Set automatically in Bash tool subprocesses and hook commands to the active effort level for the turn: low, medium, high, xhigh, or max. Matches the effort.level field passed to hooks. Only set when the current model supports the effort parameter
CLAUDE_ENABLE_BYTE_WATCHDOG 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
CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK 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
CLAUDE_ENABLE_STREAM_WATCHDOG Set to 1 to enable the event-level streaming idle watchdog. Off by default. Applies to all providers, including Bedrock. For Vertex and Foundry, this is the only idle watchdog available. 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
CLAUDE_ENV_FILE 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 dynamically by SessionStart, Setup, CwdChanged, and FileChanged hooks
CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX 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 same value for a single invocation
CLAUDE_STREAM_IDLE_TIMEOUT_MS 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. On Bedrock, also applies when CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1
DEBUG 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 enable debug mode, so namespace patterns like DEBUG=express:* set for other tools do not trigger it
DISABLE_AUTOUPDATER Set to 1 to disable automatic background updates. Manual claude update still works. Use DISABLE_UPDATES to block both
DISABLE_AUTO_COMPACT 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
DISABLE_COMPACT Set to 1 to disable all compaction: both automatic compaction and the manual /compact command
DISABLE_COST_WARNINGS Set to 1 to disable cost warning messages
DISABLE_DOCTOR_COMMAND Set to 1 to hide the /doctor command. Useful for managed deployments where users should not run installation diagnostics
DISABLE_ERROR_REPORTING Set to 1 to opt out of Sentry error reporting
DISABLE_EXTRA_USAGE_COMMAND Set to 1 to hide the /usage-credits command that lets users purchase additional usage beyond rate limits
DISABLE_FEEDBACK_COMMAND Set to 1 to disable the /feedback command. The older name DISABLE_BUG_COMMAND is also accepted
DISABLE_GROWTHBOOK 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
DISABLE_INSTALLATION_CHECKS Set to 1 to disable installation warnings. Use only when manually managing the installation location, as this can mask issues with standard installations
DISABLE_INSTALL_GITHUB_APP_COMMAND Set to 1 to hide the /install-github-app command. Already hidden when using third-party providers (Bedrock, Vertex, or Foundry)
DISABLE_INTERLEAVED_THINKING Set to 1 to prevent sending the interleaved-thinking beta header. Useful when your LLM gateway or provider does not support interleaved thinking
DISABLE_LOGIN_COMMAND Set to 1 to hide the /login command. Useful when authentication is handled externally via API keys or apiKeyHelper
DISABLE_LOGOUT_COMMAND Set to 1 to hide the /logout command
DISABLE_PROMPT_CACHING Set to 1 to disable prompt caching for all models (takes precedence over per-model settings)
DISABLE_PROMPT_CACHING_HAIKU Set to 1 to disable prompt caching for Haiku models
DISABLE_PROMPT_CACHING_OPUS Set to 1 to disable prompt caching for Opus models
DISABLE_PROMPT_CACHING_SONNET Set to 1 to disable prompt caching for Sonnet models
DISABLE_TELEMETRY 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
DISABLE_UPDATES 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
DISABLE_UPGRADE_COMMAND Set to 1 to hide the /upgrade command
DO_NOT_TRACK Set to 1 to opt out of telemetry. Equivalent to setting DISABLE_TELEMETRY. Honored as the standard cross-tool convention
ENABLE_CLAUDEAI_MCP_SERVERS Set to false to disable claude.ai MCP servers in Claude Code. Enabled by default for logged-in users
ENABLE_PROMPT_CACHING_1H Set to 1 to request a 1-hour prompt cache TTL instead of the default 5 minutes. Intended for API key, Bedrock, Vertex, Foundry, and 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
ENABLE_PROMPT_CACHING_1H_BEDROCK Deprecated. Use ENABLE_PROMPT_CACHING_1H instead
ENABLE_TOOL_SEARCH Controls 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)
FALLBACK_FOR_ALL_PRIMARY_MODELS Set to any non-empty value to trigger fallback to --fallback-model after repeated overload errors on any primary model. By default, only Opus models trigger the fallback
FORCE_AUTOUPDATE_PLUGINS Set to 1 to force plugin auto-updates even when the main auto-updater is disabled via DISABLE_AUTOUPDATER
FORCE_PROMPT_CACHING_5M Set to 1 to force the 5-minute prompt cache TTL even when 1-hour TTL would otherwise apply. Overrides ENABLE_PROMPT_CACHING_1H
HTTP_PROXY Specify HTTP proxy server for network connections
HTTPS_PROXY Specify HTTPS proxy server for network connections
IS_DEMO 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
MAX_MCP_OUTPUT_TOKENS 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 content from those tools is still subject to this variable (default: 25000)
MAX_STRUCTURED_OUTPUT_RETRIES 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
MAX_THINKING_TOKENS Override the extended thinking token budget. The ceiling is the model's max output tokens minus one. Set to 0 to disable thinking entirely. On models with adaptive reasoning, the budget is ignored unless adaptive reasoning is disabled via CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING
MCP_CLIENT_SECRET OAuth client secret for MCP servers that require pre-configured credentials. Avoids the interactive prompt when adding a server with --client-secret
MCP_CONNECTION_NONBLOCKING 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 still block startup regardless, since their tools must be present when the first prompt is built
MCP_CONNECT_TIMEOUT_MS 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 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
MCP_OAUTH_CALLBACK_PORT Fixed port for the OAuth redirect callback, as an alternative to --callback-port when adding an MCP server with pre-configured credentials
MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE Maximum number of remote MCP servers (HTTP/SSE) to connect in parallel during startup (default: 20)
MCP_SERVER_CONNECTION_BATCH_SIZE Maximum number of local MCP servers (stdio) to connect in parallel during startup (default: 3)
MCP_TIMEOUT Timeout in milliseconds for MCP server startup (default: 30000, or 30 seconds)
MCP_TOOL_TIMEOUT Timeout in milliseconds for MCP tool execution (default: 100000000, about 28 hours). A per-server timeout field in .mcp.json overrides this for that server. Values below 1000 are floored to one second
NO_PROXY List of domains and IPs to which requests will be directly issued, bypassing proxy
OTEL_LOG_RAW_API_BODIES 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 instead. Disabled by default; bodies include the entire conversation history. See Monitoring
OTEL_LOG_TOOL_CONTENT Set to 1 to include tool input and output content in OpenTelemetry span events. Disabled by default to protect sensitive data. See Monitoring
OTEL_LOG_TOOL_DETAILS Set to 1 to include tool input arguments, MCP server names, raw error strings on tool failures, and other tool details in OpenTelemetry traces and logs. Disabled by default to protect PII. See Monitoring
OTEL_LOG_USER_PROMPTS Set to 1 to include user prompt text in OpenTelemetry traces and logs. Disabled by default (prompts are redacted). See Monitoring
OTEL_METRICS_INCLUDE_ACCOUNT_UUID Set to false to exclude account UUID from metrics attributes (default: included). See Monitoring
OTEL_METRICS_INCLUDE_SESSION_ID Set to false to exclude session ID from metrics attributes (default: included). See Monitoring
OTEL_METRICS_INCLUDE_VERSION Set to true to include Claude Code version in metrics attributes (default: excluded). See Monitoring
SLASH_COMMAND_TOOL_CHAR_BUDGET 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
TASK_MAX_OUTPUT_LENGTH 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
USE_BUILTIN_RIPGREP Set to 0 to use system-installed rg instead of rg included with Claude Code
VERTEX_REGION_CLAUDE_3_5_HAIKU Override region for Claude 3.5 Haiku when using Vertex AI
VERTEX_REGION_CLAUDE_3_5_SONNET Override region for Claude 3.5 Sonnet when using Vertex AI
VERTEX_REGION_CLAUDE_3_7_SONNET Override region for Claude 3.7 Sonnet when using Vertex AI
VERTEX_REGION_CLAUDE_4_0_OPUS Override region for Claude 4.0 Opus when using Vertex AI
VERTEX_REGION_CLAUDE_4_0_SONNET Override region for Claude 4.0 Sonnet when using Vertex AI
VERTEX_REGION_CLAUDE_4_1_OPUS Override region for Claude 4.1 Opus when using Vertex AI
VERTEX_REGION_CLAUDE_4_5_OPUS Override region for Claude Opus 4.5 when using Vertex AI
VERTEX_REGION_CLAUDE_4_5_SONNET Override region for Claude Sonnet 4.5 when using Vertex AI
VERTEX_REGION_CLAUDE_4_6_OPUS Override region for Claude Opus 4.6 when using Vertex AI
VERTEX_REGION_CLAUDE_4_6_SONNET Override region for Claude Sonnet 4.6 when using Vertex AI
VERTEX_REGION_CLAUDE_4_7_OPUS {/* min-version: 2.1.111 */}Override region for Claude Opus 4.7 when using Vertex AI
VERTEX_REGION_CLAUDE_HAIKU_4_5 Override region for Claude Haiku 4.5 when using Vertex AI

Standard OpenTelemetry exporter variables (OTEL_METRICS_EXPORTER, OTEL_LOGS_EXPORTER, OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_PROTOCOL, OTEL_EXPORTER_OTLP_HEADERS, OTEL_METRIC_EXPORT_INTERVAL, OTEL_RESOURCE_ATTRIBUTES, and signal-specific variants) are also supported. See Monitoring for configuration details.

See also