其他变量
BASH_*、CLAUDE_*、DISABLE_*、ENABLE_*、MCP_*、OTEL_*、代理和调试类环境变量:Bash 超时与输出、流式空闲看门狗、压缩与提示缓存、遥测退出、MCP 启动与发现缓存、OpenTelemetry 属性。
取值约定与总览一致。注意:
DISABLE_TELEMETRY、DISABLE_ERROR_REPORTING、CLAUDE_CODE_TMUX_TRUECOLOR、IS_DEMO这类变量设为0或false的效果与设为1相同(任意非空值都生效),要恢复默认必须取消设置;而DO_NOT_TRACK按标准布尔值读取,0表示不退出。默认值、上限和版本要求以官方为准。
Bash 与工具
| 变量 | 用途 |
|---|---|
BASH_DEFAULT_TIMEOUT_MS | 前台 Bash/PowerShell 工具命令的默认超时(毫秒,默认 120000);设得超过 30 分钟时也成为后台命令的默认时限 |
BASH_MAX_OUTPUT_LENGTH | 读回命令结果的 bash 输出最大字符数(默认 30000,最大 150000);设置了 bashOutputMaxChars 时本变量被忽略 |
BASH_MAX_TIMEOUT_MS | 模型可为前台 Bash/PowerShell 命令设置的最大超时(毫秒,默认 600000);有效上限取它与 BASH_DEFAULT_TIMEOUT_MS 中较大者 |
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR | 主会话里每条 Bash/PowerShell 命令之后回到原始工作目录 |
CLAUDE_ENV_FILE | 一个 shell 脚本的路径,Claude Code 在每条 Bash 命令之前、在同一个 shell 进程里运行它,所以其中的 export 对命令可见;用来持久化 virtualenv 或 conda 激活等 |
USE_BUILTIN_RIPGREP | 0:使用系统安装的 rg 而不是 Claude Code 附带的 |
SLASH_COMMAND_TOOL_CHAR_BUDGET | 覆盖展示给 Skill 工具的 Skill 元数据字符预算(默认按上下文窗口的 1% 动态缩放,回退 8000 字符;旧名保留以兼容) |
TASK_MAX_OUTPUT_LENGTH | 已在 v2.1.277 移除,连同它所调整的 TaskOutput 工具一起成为空操作 |
MAX_THINKING_TOKENS | 扩展思考的固定 token 预算;Claude Code 把它限制在比请求最大输出 token 少一个、且不低于 1024 |
MAX_STRUCTURED_OUTPUT_RETRIES | 非交互 -p 模式下,模型响应未通过 --json-schema 校验时允许的尝试次数 |
CLAUDE_* 变量:运行环境、流式看门狗与无障碍
| 变量 | 用途 |
|---|---|
CLAUDECODE | 在 Claude Code 派生的子进程(Bash、PowerShell 工具、tmux 会话、Hook 命令、状态栏命令、stdio MCP 服务器子进程)里设为 1;IDE 扩展也在其集成终端里设置 |
CLAUDE_CONFIG_DIR | 覆盖配置目录(默认 ~/.claude),所有设置、会话历史和插件都存在该路径下;用于隔离多套配置 |
CLAUDE_EFFORT | 由 Claude Code 在 Bash 工具子进程和 Hook 命令里自动设为当前努力等级(low/medium/high/xhigh/max),与传给 Hook 的 effort.level 一致 |
CLAUDE_PID | Claude Code 在其派生的子进程(Bash 与 PowerShell 工具命令、Hook 命令)里设为自己的进程 ID;Linux 上 Bash 工具的 shell 集成用它拒绝会杀掉 Claude Code 自己的 pkill |
CLAUDE_JOB_DIR | 由 Claude Code 在每个后台会话里设为该会话的 ~/.claude/jobs/<id> 目录,会话运行的 shell 命令会继承;临时文件写到 $CLAUDE_JOB_DIR/tmp |
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE | 自动压缩窗口的百分比(1 到 100),到此比例时触发自动压缩;用 50 之类的较低值提前压缩,不能把阈值抬高到默认之上 |
CLAUDE_AUTO_BACKGROUND_TASKS | 1:强制启用长时间运行的智能体任务的自动转后台(子智能体运行约两分钟后移到后台) |
CLAUDE_AFK_TIMEOUT_MS | 未回答的 AskUserQuestion 对话框空闲多久后无需你而自动继续(毫秒);自动继续默认关闭,用 askUserQuestionTimeout 设置选择开启 |
CLAUDE_AFK_COUNTDOWN_MS | 自动继续前多少毫秒屏幕上出现倒计时(默认 20000,不超过自动继续超时) |
CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS | 1:禁用所有内置子智能体类型(Explore、Plan 等),只在非交互 -p 模式有效,适合想要「白板」的 SDK 用户 |
CLAUDE_AGENT_SDK_MCP_NO_PREFIX | 1:SDK 创建的 MCP 服务器的工具名不加 mcp__<server>__ 前缀,沿用原名(仅 SDK 使用) |
CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS | 子智能体的停滞超时(毫秒,默认 600000,即 10 分钟) |
CLAUDE_STREAM_IDLE_TIMEOUT_MS | 事件级和字节级流式空闲看门狗关闭停滞连接前的超时(毫秒);显式设置时最小 300000(5 分钟),更低的值被抬到下限 |
CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS | 字节级流式空闲看门狗的超时(毫秒),设置后对该看门狗优先于 CLAUDE_STREAM_IDLE_TIMEOUT_MS,事件级看门狗不变 |
CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS | 流式请求第一个响应字节的期限(毫秒),在执行首字节期限的连接上生效 |
CLAUDE_ENABLE_STREAM_WATCHDOG | 0 强制禁用事件级流式空闲看门狗,1 强制启用;未设置时对所有服务商默认开启 |
CLAUDE_ENABLE_BYTE_WATCHDOG | 1 强制启用字节级流式空闲看门狗,0 强制禁用(同时关闭运行首字节期限的连接上的首字节期限) |
CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK | 1:在 Bedrock 的 vnd.amazon.eventstream 响应上启用字节级看门狗(同时启用 Bedrock 流式请求的首字节期限),默认关闭 |
CLAUDE_SUBAGENT_BG_SHELL_MAX_MS | 已在 v2.1.260 移除,现为空操作 |
CLAUDE_DISABLE_ADOPT | 1:用 ← 或 /background 把会话转到后台时,停止进行中的后台工作而不是把它们一并带过去(转后台前会请你确认) |
CLAUDE_CLIENT_PRESENCE_FILE | 外部工具(如锁屏监听器)在你解锁屏幕时创建、锁屏时删除的文件路径;文件存在期间 Claude Code 跳过 Remote Control 移动端推送 |
CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX | 没有显式名称时自动生成的 Remote Control 会话名前缀,默认是机器主机名(生成形如 myhost-graceful-unicorn 的名字) |
CCR_FORCE_BUNDLE | 1:让 claude --cloud 打包并上传你的本地仓库,而不是从其远端克隆 |
CLAUDE_AX_SCREEN_READER | 1:渲染对屏幕阅读器友好的输出(无装饰边框或动画的平文本);0 即使 axScreenReader 为 true 也强制关闭 |
CLAUDE_AX_PREPARK_MS | 屏幕阅读器模式下写入新行或改动行之前等待的毫秒数(默认 0;v2.1.287 之前默认 50) |
CLAUDE_AX_STARTUP_QUIET_MS | 屏幕阅读器模式下,启动确认行之后保持首次界面渲染多少毫秒,让屏幕阅读器念完整行再被新输出打断 |
更新、命令隐藏、压缩与提示缓存
| 变量 | 用途 |
|---|---|
DEBUG | 1:启用调试模式,等价于 --debug;调试日志写到 ~/.claude/debug/<session-id>.txt 或 CLAUDE_CODE_DEBUG_LOGS_DIR 指定的路径 |
DISABLE_AUTOUPDATER | 1:禁用后台自动更新(手动 claude update 仍可用;DISABLE_UPDATES 则两者都阻止) |
DISABLE_UPDATES | 1:阻止所有更新,含手动 claude update 和 claude install,比 DISABLE_AUTOUPDATER 更严格;适合用自己的渠道分发 Claude Code 时 |
FORCE_AUTOUPDATE_PLUGINS | 1:即使主自动更新器被 DISABLE_AUTOUPDATER 禁用,也强制插件自动更新 |
DISABLE_INSTALLATION_CHECKS | 1:禁用安装警告(只在手动管理安装位置时用,可能掩盖标准安装的问题) |
DISABLE_AUTO_COMPACT | 1:接近上下文上限时禁用自动压缩,手动 /compact 仍可用 |
DISABLE_COMPACT | 1:禁用所有压缩,包括自动压缩和手动 /compact |
DISABLE_COST_WARNINGS | 1:禁用成本警告消息 |
DISABLE_DOCTOR_COMMAND | 1:隐藏 /doctor 设置体检 Skill 及其 /checkup 别名(不影响 claude doctor 命令) |
DISABLE_EXTRA_USAGE_COMMAND | 1:隐藏让用户购买超出速率限制的额外用量的 /usage-credits 命令 |
DISABLE_FEEDBACK_COMMAND | 1:禁用 /feedback 命令和 Claude 起草的反馈,也禁用 /bug 和 /share(它们经同一路径上报) |
DISABLE_INSTALL_GITHUB_APP_COMMAND | 1:隐藏 /install-github-app(使用第三方服务商时本就隐藏) |
DISABLE_LOGIN_COMMAND / DISABLE_LOGOUT_COMMAND | 1:隐藏 /login(认证由 API Key 或 apiKeyHelper 在外部处理时有用)/ /logout |
DISABLE_UPGRADE_COMMAND | 1:隐藏 /upgrade 命令 |
DISABLE_INTERLEAVED_THINKING | 1:不发送交错思考 beta 头(LLM 网关或服务商不支持时) |
DISABLE_PROMPT_CACHING | 1:对所有模型禁用提示缓存(优先于按模型的设置) |
DISABLE_PROMPT_CACHING_FABLE / _HAIKU / _OPUS / _SONNET | 1:分别对 Fable 模型、默认 Haiku、默认 Opus、默认 Sonnet 禁用提示缓存 |
ENABLE_PROMPT_CACHING_1H | 1:请求 1 小时而不是默认 5 分钟的提示缓存 TTL(面向 API Key、Bedrock、Agent Platform、Foundry 和 Claude Platform on AWS 用户) |
ENABLE_PROMPT_CACHING_1H_BEDROCK | 已弃用,改用 ENABLE_PROMPT_CACHING_1H |
FORCE_PROMPT_CACHING_5M | 1:即使本该适用 1 小时 TTL,也强制 5 分钟 TTL,覆盖 CLAUDE_CODE_PROMPT_CACHE_TTL、CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL、ENABLE_PROMPT_CACHING_1H 等 |
ENABLE_TOOL_SEARCH | 控制 MCP 工具搜索:未设置时 Claude Code 默认推迟加载所有 MCP 工具(在某些服务商和旧模型上仍然预先加载,细节见官方) |
ENABLE_CLAUDEAI_MCP_SERVERS | false:不拉取 claude.ai 的 MCP 服务器(登录用户默认开启;要按项目或按组织禁用,改用设置里的 disableClaudeAiConnectors) |
MAX_MCP_OUTPUT_TOKENS | MCP 工具响应允许的最大 token 数(超过 10000 token 时显示警告;声明了 anthropic/maxResultSizeChars 的工具用该字符上限) |
终端显示、代理与遥测
| 变量 | 用途 |
|---|---|
FORCE_HYPERLINK | 1:终端支持但未被自动检测到时启用可点击的 OSC 8 超链接;0 禁用 |
IS_DEMO | 设为任意非空值启用演示模式:在页眉和 /status 输出里隐藏邮箱和组织名并跳过引导(设为 0 或 false 仍然启用) |
HTTP_PROXY / HTTPS_PROXY | 指定网络连接使用的 HTTP / HTTPS 代理服务器 |
NO_PROXY | 请求直接发出、绕过代理的域名和 IP 列表 |
DISABLE_TELEMETRY | 设为任意非空值退出遥测(设为 0 或 false 仍然是退出;取消设置才恢复);遥测关闭同时会让依赖功能开关拉取的功能不可用 |
DO_NOT_TRACK | 1:与 DISABLE_TELEMETRY 效果相同(含功能开关拉取);它按标准布尔值读取,所以 0 保持遥测开启 |
DISABLE_ERROR_REPORTING | 设为任意非空值退出错误上报(设为 0 或 false 仍然是退出) |
DISABLE_GROWTHBOOK | 1 或 true:禁用 GrowthBook 功能开关拉取,所有开关使用代码默认值;Remote Control 等需要功能开关的功能因此不可用 |
MCP 变量
| 变量 | 用途 |
|---|---|
MCP_TIMEOUT | MCP 服务器启动超时(毫秒,默认 30000) |
MCP_TOOL_TIMEOUT | MCP 工具执行超时(毫秒,默认 100000000,约 28 小时);HTTP、SSE 或 claude.ai 连接器服务器的每个请求默认另有 60 秒超时 |
MCP_CONNECTION_NONBLOCKING | 控制启动是否等 MCP 服务器连上再处理第一个查询:默认非阻塞,服务器在后台连接、工具陆续可用 |
MCP_CONNECT_TIMEOUT_MS | 阻塞式 MCP 启动在快照工具列表之前等待连接批次多久(毫秒,默认 5000;MCP_CONNECTION_NONBLOCKING=0 或标记为 always-load 的服务器适用) |
MCP_SERVER_CONNECTION_BATCH_SIZE | 启动时并行连接的本地(stdio)MCP 服务器最大数量(默认 3) |
MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE | 启动时并行连接的远程(HTTP/SSE)MCP 服务器最大数量(默认 20) |
MCP_DISCOVERY_CACHE | 开关 MCP 发现缓存:开启后曾用过的远程 HTTP 或 SSE 服务器可显示 cached 状态,Claude Code 在第一次工具调用时才连接它而不是启动时 |
MCP_DISCOVERY_CACHE_TTL_S | 发现缓存条目不经刷新直接使用的秒数(默认 900);过期后仍使用但在后台刷新 |
MCP_DISCOVERY_CACHE_MAX_STALE_S | 发现缓存条目的最大年龄(秒,默认 14400 即 4 小时);更旧则丢弃并在启动时连接服务器 |
MCP_DISCOVERY_CACHE_STRIKES | 缓存条目在后台刷新连续失败多少次后 Claude Code 放弃该条目(见官方) |
MCP_CLIENT_SECRET | 需要预配置凭证的 MCP 服务器的 OAuth 客户端密钥,免去用 --client-secret 添加服务器时的交互提示 |
MCP_OAUTH_CALLBACK_PORT | OAuth 重定向回调的固定端口,是添加带预配置凭证的 MCP 服务器时 --callback-port 的替代 |
MCP_PROTOCOL_NEGOTIATION | 仅 v2 MCP 客户端运行时:Claude Code 是否探测服务器的 MCP 协议修订 2026-07-28;auto 探测 HTTP、claude.ai 连接器和 stdio 服务器 |
MCP_SDK_GENERATION | 固定本进程连接 MCP 服务器所用的客户端运行时:v1(基于 MCP TypeScript SDK 1.x)或 v2(SDK 2.0);不设则用 v2 |
OpenTelemetry 变量
使用前先设置 CLAUDE_CODE_ENABLE_TELEMETRY=1;下列变量都应设在 shell、用户设置或托管设置里,在项目和本地设置里被忽略(为防止仓库悄悄打开内容采集)。
| 变量 | 用途 |
|---|---|
OTEL_LOG_USER_PROMPTS | 1:在 OpenTelemetry 追踪和日志里包含用户提示文本(默认脱敏) |
OTEL_LOG_ASSISTANT_RESPONSES | 1:在 assistant_response 日志事件里包含模型回复文本;未设置时沿用 OTEL_LOG_USER_PROMPTS 的值,0 则保持回复不记录 |
OTEL_LOG_TOOL_CONTENT | 1:在 tool.output span 事件里包含工具内容(需要追踪;默认关闭以保护敏感数据) |
OTEL_LOG_TOOL_DETAILS | 1:包含工具输入参数、MCP 服务器名、用户编写的工作流名、工具失败的原始错误字符串、api_refusal 事件的拒绝类别等 |
OTEL_LOG_RAW_API_BODIES | 把 Anthropic Messages API 请求与响应 JSON 作为 api_request_body/api_response_body 日志事件发出:1 为按内容上限截断的内联正文,file:<dir> 则把未截断的正文写到目录 |
OTEL_LOG_MANAGED_SETTINGS | 1:把脱敏后的托管设置及其脱敏前的 SHA-256 摘要加到 managed_settings_resolved 日志事件(默认关闭) |
OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT | 标准 OpenTelemetry SDK 的属性值长度上限;含内容的遥测属性取它与 CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH 中较小者 |
OTEL_METRICS_INCLUDE_ACCOUNT_UUID | false:指标属性里排除账号 UUID(默认包含) |
OTEL_METRICS_INCLUDE_SESSION_ID | false:指标属性里排除会话 ID(默认包含) |
OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES | 自 v2.1.161 起,OTEL_RESOURCE_ATTRIBUTES 的键附加到指标数据点标签;false 排除(默认包含) |
OTEL_METRICS_INCLUDE_ENTRYPOINT | true:指标属性里包含会话入口点(默认排除,v2.1.152 加入) |
OTEL_METRICS_INCLUDE_VERSION | true:指标属性里包含 Claude Code 版本(默认排除) |
OTEL_METRICS_INCLUDE_REPOSITORY | true:给指标和事件标上标识会话仓库的 vcs.* 属性(默认排除,需要 v2.1.269+) |
ENABLE_BETA_TRACING_DETAILED | 1:与 BETA_TRACING_ENDPOINT 一起开启详细 beta 追踪,增加含内容的 span 属性和 claude_code.hook span |
另有 CLAUDE_CODE_OTEL_*(在 F 到 O 页)控制导出器的刷新、关闭、诊断和动态头。监控与 OTel 配置的整体说明见监控用量。