Claude Code 启动参数与环境变量

Claude Code 整理自 @bcherny(Claude Code 创始人,Anthropic)2025–2026 年在 X 上发布的帖子,以及官方文档。

主要来源:
– Jan 2, 2026 X 帖子(13 条使用技巧)
– Jan 31, 2026 X 帖子(10 条团队内部技巧,8.5M 浏览)
– Feb 11, 2026 X 帖子(12 条配置技巧,含 “37 settings, 84 env vars” 原话)
– 官方文档 code.claude.com/docs/en/cli-reference – 官方文档 code.claude.com/docs/en/env-vars


一、CLI 启动标志(Flags)

bcherny 亲自提到的标志

标志 用途 出处
–permission-mode plan 以 Plan 模式启动(只读探索,不写代码) Feb 11 帖子
–permission-mode dontAsk 无需审批权限提示运行 Jan 2 帖子 tip 12
–permission-mode bypassPermissions 等同于 –dangerously-skip-permissions 官方文档
–dangerously-skip-permissions 跳过所有权限提示(在沙箱中使用) Jan 2 帖子 tip 12
–allow-dangerously-skip-permissions 把 bypassPermissions 加入 Shift+Tab 循环,不立即进入该模式 官方文档
–worktree / -w 在独立 git worktree 中启动(如 claude -w feature-auth Jan 31 帖子 tip 1
–worktree –tmux worktree + 自动创建 tmux 会话 官方文档
–teleport 把本地会话切换到 web(claude.ai/code),或把 web 会话恢复到本地 Jan 2 帖子 tip 2
–remote “task” 在 claude.ai 创建新 web 会话 官方文档
–remote-control / –rc 启动支持 Remote Control 的交互会话(可从 claude.ai 或 Claude App 控制) 官方文档
–agent 为当前会话指定 agent(覆盖 agent 设置项) Feb 11 帖子 tip 4
–agents ‘ 用 JSON 动态定义 subagent 官方文档
–name / -n 为会话设置展示名称(可用 claude -r 恢复) 后续线程
–bare 极简模式:跳过 hooks/skills/plugins/MCP/auto-memory/CLAUDE.md 自动发现,只保留 Bash、文件读写工具 后续线程
–add-dir 添加额外工作目录(Claude 可读写该目录文件) 后续线程
–effort 设置当前会话的 effort 等级(low / medium / high / max Feb 11 帖子 tip 2
–model 指定模型(如 claude-opus–4–6,或别名 opus / sonnet Jan 2 帖子 tip 3
-p “query” 非交互(SDK)模式,执行后退出;用于 CI 或脚本 Jan 31 帖子 bonus
–continue / -c 加载当前目录最近的会话 官方文档
–resume / -r 按 ID 或名称恢复会话 官方文档
–fork-session 恢复时创建新会话 ID 而非复用原会话(与 –resume 配合) 官方文档
–chrome 启用 Chrome 浏览器集成(UI 验证、自动化测试) Jan 2 帖子 tip 13
–mcp-config 从 JSON 文件加载 MCP 服务器配置 官方文档
–strict-mcp-config 只使用 –mcp-config 指定的 MCP 服务器,忽略其他 MCP 配置 官方文档
–system-prompt 替换整个系统提示词 官方文档
–append-system-prompt 在默认系统提示词末尾追加内容 官方文档
–append-system-prompt-file 从文件追加系统提示词 官方文档
–tools “Bash,Edit,Read” 限制 Claude 可用的工具集 官方文档
–allowedTools 无需审批直接执行的工具列表(权限白名单) Jan 2 帖子 tip 10
–disallowedTools 从模型上下文中移除的工具(彻底禁用) 官方文档
–max-turns 限制 agentic 轮数(仅 print 模式) 官方文档
–max-budget-usd 限制 API 花费上限(仅 print 模式) 官方文档
–output-format 输出格式:text / json / stream-json(仅 print 模式) 官方文档
–json-schema ‘ 要求输出符合 JSON Schema(仅 print 模式) 官方文档
–fallback-model 主模型过载时自动 fallback 到该模型(仅 print 模式) 官方文档
–debug 启用调试模式,可指定过滤类别(如 “api,mcp” 官方文档
–debug-file 调试日志写入指定文件路径(隐式启用 debug 模式) 官方文档
–enable-auto-mode 解锁 auto 模式加入 Shift+Tab 循环(需 Team/Enterprise 计划) 官方文档
–verbose 详细日志,显示完整逐轮输出 官方文档
–init 运行初始化 hooks 并进入交互模式 官方文档
–plugin-dir 仅本次会话从指定目录加载插件 官方文档
–settings 从 JSON 文件或 JSON 字符串加载额外设置 官方文档
–version / -v 输出版本号 官方文档

常用命令(非标志)

claude # 启动交互会话
claude “query” # 带初始 prompt 启动
claude -p “query” # SDK/非交互模式
claude -c # 继续最近的会话
claude -r “session-name” # 恢复指定会话
claude update # 更新到最新版本
claude auth login # 登录账号
claude auth status # 查看认证状态
claude agents # 列出所有已配置 subagents
claude mcp # 配置 MCP 服务器
claude plugin install  # 安装插件
claude remote-control –name “My Project” # 启动 Remote Control 服务器

二、环境变量(Environment Variables)

bcherny 原话:“We support 37 settings and 84 env vars (use the env field in your settings.json to avoid wrappers).”

以下为完整官方列表(来自 code.claude.com/docs/en/env-vars),标注了 bcherny 帖子中特别提及的项。

认证与 API

变量 说明
ANTHROPIC_API_KEY API Key(设置后即使已登录也优先使用此 Key)
ANTHROPIC_AUTH_TOKEN 自定义 Authorization 请求头值(会加 Bearer 前缀)
ANTHROPIC_BASE_URL 覆盖 API endpoint,用于代理或网关路由
ANTHROPIC_BETAS 逗号分隔的额外 anthropic-beta 头部值
ANTHROPIC_CUSTOM_HEADERS 自定义请求头(Name: Value 格式,多个用换行分隔)
CLAUDE_CODE_OAUTH_TOKEN Claude.ai OAuth access token(替代 /login,适用于 SDK/自动化场景)
CLAUDE_CODE_OAUTH_REFRESH_TOKEN OAuth refresh token,配合 CLAUDE_CODE_OAUTH_SCOPES 免浏览器登录
CLAUDE_CODE_OAUTH_SCOPES OAuth scopes(空格分隔,与上一项配合使用)

模型配置

变量 说明
ANTHROPIC_MODEL 指定使用的模型名称
ANTHROPIC_DEFAULT_HAIKU_MODEL 覆盖 Haiku 模型名
ANTHROPIC_DEFAULT_SONNET_MODEL 覆盖 Sonnet 模型名
ANTHROPIC_DEFAULT_OPUS_MODEL 覆盖 Opus 模型名
ANTHROPIC_CUSTOM_MODEL_OPTION /model 选择器中添加自定义模型入口
ANTHROPIC_CUSTOM_MODEL_OPTION_NAME 自定义模型在选择器中的显示名称
ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION 自定义模型在选择器中的显示描述
CLAUDE_CODE_SUBAGENT_MODEL subagent 使用的模型
ANTHROPIC_SMALL_FAST_MODEL [已废弃] 后台任务使用的 Haiku 级模型
MAX_THINKING_TOKENS 覆盖 extended thinking token 预算(设为 0 禁用 thinking)
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING 设为 1 禁用 Opus 4.6/Sonnet 4.6 的自适应推理
CLAUDE_CODE_DISABLE_THINKING 设为 1 强制禁用 extended thinking
CLAUDE_CODE_EFFORT_LEVEL Effort 等级:low / medium / high / max / auto
CLAUDE_CODE_MAX_OUTPUT_TOKENS 最大输出 token 数

行为控制(bcherny 重点提及)

变量 说明 bcherny 出处
CLAUDE_CODE_TASK_LIST_ID 跨会话共享任务列表(多个 Claude 实例设相同 ID 可协作) Feb 11 后续线程
CLAUDE_CODE_SIMPLE 设为 1 等同于 –bare 极简模式 后续线程
CLAUDE_CODE_ENABLE_TELEMETRY 设为 1 启用 OpenTelemetry 数据收集 Feb 11 帖子 settings 示例
CLAUDECODE Claude Code 产生的子 shell 中自动设为 1,用于检测是否在 CC 内部运行 官方文档

行为控制(完整)

变量 说明
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE 自动压缩触发的上下文使用百分比(1–100,默认约 95%)
CLAUDE_AUTO_BACKGROUND_TASKS 设为 1 强制开启长任务自动后台化
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR 每次 Bash 命令后回到原始工作目录
CLAUDE_CODE_ACCESSIBILITY 设为 1 保持原生终端光标可见(辅助功能)
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD 设为 1–add-dir 目录加载 CLAUDE.md
CLAUDE_CODE_AUTO_COMPACT_WINDOW 自动压缩计算使用的上下文窗口大小(token 数)
CLAUDE_CODE_AUTO_CONNECT_IDE 覆盖自动 IDE 连接行为(false 禁用,true 强制)
CLAUDE_CODE_DEBUG_LOGS_DIR 覆盖调试日志文件路径(需单独启用 –debug
CLAUDE_CODE_DEBUG_LOG_LEVEL 调试日志最低级别:verbose / debug / info / warn / error
CLAUDE_CODE_DISABLE_1M_CONTEXT 设为 1 禁用 1M 上下文窗口支持
CLAUDE_CODE_DISABLE_ATTACHMENTS 设为 1 禁用 @ 语法的文件附件处理
CLAUDE_CODE_DISABLE_AUTO_MEMORY 设为 1 禁用 auto memory(0 强制开启)
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS 设为 1 禁用所有后台任务功能
CLAUDE_CODE_DISABLE_CLAUDE_MDS 设为 1 阻止加载任何 CLAUDE.md 文件
CLAUDE_CODE_DISABLE_CRON 设为 1 禁用定时任务
CLAUDE_CODE_DISABLE_FAST_MODE 设为 1 禁用 fast mode
CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS 设为 1 从系统提示词中移除内置 git 工作流说明
CLAUDE_CODE_DISABLE_MOUSE 设为 1 禁用全屏渲染中的鼠标跟踪
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 等效于同时设置 DISABLE_AUTOUPDATERDISABLE_FEEDBACK_COMMANDDISABLE_ERROR_REPORTINGDISABLE_TELEMETRY
CLAUDE_CODE_DISABLE_TERMINAL_TITLE 设为 1 禁用自动更新终端标题
CLAUDE_CODE_ENABLE_TASKS 设为 1 在非交互模式(-p)中启用任务追踪系统
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS 设为 1 启用实验性 agent teams
CLAUDE_CODE_EXIT_AFTER_STOP_DELAY 查询循环空闲后自动退出的等待时间(毫秒)
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS 覆盖文件读取的默认 token 限制
CLAUDE_CODE_GLOB_HIDDEN 设为 false 从 Glob 结果中排除隐藏文件
CLAUDE_CODE_GLOB_NO_IGNORE 设为 false 使 Glob 工具遵守 .gitignore
CLAUDE_CODE_GLOB_TIMEOUT_SECONDS Glob 工具文件发现的超时秒数
CLAUDE_CODE_MAX_RETRIES 失败 API 请求的重试次数(默认 10)
CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY 只读工具和 subagents 的最大并发数(默认 10)
CLAUDE_CODE_NEW_INIT 设为 1 使 /init 运行交互式初始化流程
CLAUDE_CODE_NO_FLICKER 设为 1 启用全屏渲染(减少闪烁,降低长对话内存占用)
CLAUDE_CODE_RESUME_INTERRUPTED_TURN 设为 1 自动恢复上次中断的会话轮次
CLAUDE_CODE_SCROLL_SPEED 全屏渲染中鼠标滚轮速度倍数(1–20)
CLAUDE_CODE_SHELL 覆盖自动 shell 检测
CLAUDE_CODE_SHELL_PREFIX 包裹所有 bash 命令的前缀(用于日志或审计)
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB 设为 1 从子进程环境中剥离 API 凭证(防注入攻击)
CLAUDE_CODE_SYNTAX_HIGHLIGHT 设为 false 禁用 diff 输出的语法高亮
CLAUDE_CODE_TMPDIR 覆盖内部临时文件目录
CLAUDE_CODE_USE_BEDROCK 使用 Amazon Bedrock
CLAUDE_CODE_USE_VERTEX 使用 Google Vertex AI
CLAUDE_CODE_USE_FOUNDRY 使用 Microsoft Foundry
CLAUDE_CODE_USE_POWERSHELL_TOOL 设为 1 在 Windows 上启用 PowerShell 工具(预览)
CLAUDE_CONFIG_DIR 覆盖配置目录(默认 ~/.claude);可用于多账号并行
CLAUDE_ENABLE_STREAM_WATCHDOG 设为 1 在流式响应停止 90 秒后自动中止
CLAUDE_ENV_FILE 指向一个 shell 脚本,在每次 Bash 命令前被 source(用于保持 virtualenv/conda 激活状态)
CLAUDE_STREAM_IDLE_TIMEOUT_MS 流式响应停滞超时(毫秒,默认 90000);需配合 CLAUDE_ENABLE_STREAM_WATCHDOG=1
CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS 设为 1 禁用所有内置 subagent 类型(仅非交互模式)
CLAUDE_AGENT_SDK_MCP_NO_PREFIX 设为 1 跳过 SDK 创建 MCP 工具的 mcp 前缀
CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX Remote Control 自动生成会话名的前缀

性能与请求

变量 说明
API_TIMEOUT_MS API 请求超时(毫秒,默认 600000)
BASH_DEFAULT_TIMEOUT_MS 长时间运行的 bash 命令默认超时
BASH_MAX_TIMEOUT_MS 模型可设置的 bash 命令最长超时
BASH_MAX_OUTPUT_LENGTH bash 输出在被中间截断前的最大字符数
MCP_TIMEOUT MCP 服务器启动超时(毫秒)
MCP_TOOL_TIMEOUT MCP 工具执行超时(毫秒)
MCP_SERVER_CONNECTION_BATCH_SIZE 本地 MCP 服务器(stdio)并行连接数(默认 3)
MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE 远程 MCP 服务器(HTTP/SSE)并行连接数(默认 20)
MCP_CONNECTION_NONBLOCKING 设为 true 在非交互模式下跳过 MCP 连接等待
ENABLE_TOOL_SEARCH 控制 MCP 工具搜索行为(true / auto / auto:N / false
TASK_MAX_OUTPUT_LENGTH subagent 输出最大字符数(默认 32000,最大 160000)
MAX_MCP_OUTPUT_TOKENS MCP 工具响应最大 token 数(默认 25000)
SLASH_COMMAND_TOOL_CHAR_BUDGET 技能元数据显示的字符预算

压缩控制

变量 说明
DISABLE_AUTO_COMPACT 设为 1 禁用自动压缩(手动 /compact 仍可用)
DISABLE_COMPACT 设为 1 禁用所有压缩(自动+手动)

代理与网络

变量 说明
HTTP_PROXY HTTP 代理服务器
HTTPS_PROXY HTTPS 代理服务器
NO_PROXY 绕过代理的域名/IP 列表
CLAUDE_CODE_PROXY_RESOLVES_HOSTS 设为 1 允许代理执行 DNS 解析
CLAUDE_CODE_CLIENT_CERT mTLS 客户端证书路径
CLAUDE_CODE_CLIENT_KEY mTLS 客户端私钥路径
CLAUDE_CODE_CLIENT_KEY_PASSPHRASE 加密私钥的密码短语

Bedrock / Vertex / Foundry

变量 说明
ANTHROPIC_BEDROCK_BASE_URL 覆盖 Bedrock endpoint URL
AWS_BEARER_TOKEN_BEDROCK Bedrock API Key
CLAUDE_CODE_SKIP_BEDROCK_AUTH 跳过 AWS Bedrock 认证(如使用 LLM 网关)
ENABLE_PROMPT_CACHING_1H_BEDROCK 设为 1 使用 1 小时 prompt cache TTL(仅 Bedrock)
ANTHROPIC_VERTEX_BASE_URL 覆盖 Vertex AI endpoint URL
ANTHROPIC_VERTEX_PROJECT_ID Vertex AI 的 GCP 项目 ID
CLAUDE_CODE_SKIP_VERTEX_AUTH 跳过 Vertex AI 认证
VERTEX_REGION_CLAUDE_4_6_SONNET 覆盖 Sonnet 4.6 在 Vertex 上的区域
VERTEX_REGION_CLAUDE_4_0_OPUS 覆盖各模型在 Vertex 上的区域
ANTHROPIC_FOUNDRY_BASE_URL Foundry 完整 base URL
ANTHROPIC_FOUNDRY_RESOURCE Foundry 资源名称
ANTHROPIC_FOUNDRY_API_KEY Foundry 认证 API Key
CLAUDE_CODE_SKIP_FOUNDRY_AUTH 跳过 Foundry 认证

遥测(OpenTelemetry)

变量 说明
CLAUDE_CODE_ENABLE_TELEMETRY 设为 1 启用 OTel 数据采集
OTEL_METRICS_EXPORTER OTel metrics exporter(如 otlp
OTEL_LOGS_EXPORTER OTel logs exporter
OTEL_EXPORTER_OTLP_ENDPOINT OTel collector endpoint
OTEL_EXPORTER_OTLP_HEADERS OTel exporter headers
OTEL_LOG_TOOL_CONTENT 设为 1 在 span events 中包含工具输入/输出内容
OTEL_LOG_USER_PROMPTS 设为 1 在追踪中包含用户 prompt 文本
CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS 刷新待处理 OTel span 的超时(默认 5000ms)

其他控制

变量 说明
DISABLE_AUTOUPDATER 设为 1 禁用自动更新
DISABLE_ERROR_REPORTING 设为 1 禁用 Sentry 错误上报
DISABLE_TELEMETRY 设为 1 禁用 Statsig 遥测
DISABLE_COST_WARNINGS 设为 1 禁用费用警告
DISABLE_PROMPT_CACHING 设为 1 禁用所有模型的 prompt caching
IS_DEMO 设为 1 启用演示模式(隐藏邮箱/组织信息,适合录屏)
USE_BUILTIN_RIPGREP 设为 0 使用系统安装的 rg 而非内置版本
MAX_STRUCTURED_OUTPUT_RETRIES –json-schema 验证失败时的重试次数(默认 5)
FALLBACK_FOR_ALL_PRIMARY_MODELS 设为任意非空值,让所有主模型过载时都触发 fallback
CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL 跳过 IDE 扩展自动安装

三、settings.json 主要字段

bcherny: “Check your settings into git so your team can benefit, too.”
推荐使用 settings.jsonenv 字段代替包装脚本设置环境变量。

{
 “$schema”: “https://json.schemastore.org/claude-code-settings.json”,
 “permissions”: {
 “allow”: [
 “Bash(npm run lint)”,
 “Bash(npm run test *)”,
 “Bash(bun run *)”,
 “Read(~/.zshrc)”
 ],
 “deny”: [
 “Bash(curl *)”,
 “Read(./.env)”,
 “Read(./.env.*)”
 ]
 },
 “env”: {
 “CLAUDE_CODE_ENABLE_TELEMETRY”: “1”,
 “OTEL_METRICS_EXPORTER”: “otlp”
 },
 “agent”: “my-custom-agent”,
 “defaultMode”: “plan”,
 “effortLevel”: “high”
}

配置文件层级(优先级从高到低)

优先级 来源 说明
1(最高) Managed(企业策略) MDM/注册表/服务器下发,不可覆盖
2 命令行参数 临时会话级覆盖
3 .claude/settings.local.json 本地个人覆盖(已 gitignore)
4 .claude/settings.json 项目级(提交到 git,团队共享)
5(最低) ~/.claude/settings.json 用户级全局设置

四、bcherny 的工作流核心习惯(来自 X 帖子)

  1. 并行运行 5 个 Claude:5 个 git checkout 对应 5 个终端标签页,配合 iTerm2 系统通知
  2. web + 本地并行:本地 terminal + claude.ai/code 同时跑 5–10 个会话,用 –teleport 切换
  3. 全用 Opus with thinking:更慢但 steering 少,整体反而更快
  4. 团队共享 CLAUDE.md:提交到 git,出错就加规则,用 @.claude 标注 PR 自动更新
  5. 每次复杂任务先进 Plan mode(Shift+Tab x2),计划确认后切 auto-accept 一次完成
  6. 把高频操作做成 slash command,检入 .claude/commands/,命令内可内嵌 Bash
  7. subagents 自动化 PR 流程code-simplifier(完成后精简代码)、verify-app(端到端测试)
  8. PostToolUse hook 自动格式化bun run format || true
  9. /permissions 预批准常用命令,而不是 –dangerously-skip-permissions;常见命令检入 settings.json
  10. 长任务:用 –permission-mode dontAsk–dangerously-skip-permissions(仅沙箱)让 Claude 不被打断
  11. 给 Claude 提供验证手段(测试/浏览器/命令),可将结果质量提升 2–3 倍
  12. 配置项提交 git:settings、permissions、MCP 配置(.mcp.json)全部团队共享

Leave a Reply

Your email address will not be published. Required fields are marked *