启动命令行选项

claude 子命令与全部命令行参数参考

作者 David更新于 第 2 篇(共 16 篇)

claude --help 不会列出全部参数——某个参数没出现在 --help 里,不代表它不存在。本页尽量按官方文档收全,但请以你本机版本的实际行为为准。

子命令

除了直接 claude 进入交互式会话,claude 后面还可以跟一个子命令:

子命令作用
claude启动交互式会话
claude --desktop🆕 v2.1.285+:在当前目录打开 Claude 桌面应用;可与 --continue / --resume <id> 一起使用
claude "query"携带初始 prompt 启动交互式会话
claude -p "query"非交互模式:执行一次查询后退出(脚本 / CI 场景)
claude -c / claude --continue继续当前目录下最近一次会话
claude -r "<id|name>" "query"按 ID 或名称恢复指定会话
claude update更新到最新版本
claude install [version]安装/重装原生二进制,可指定版本号或 stable/latest
claude auth login / logout / status登录、登出、查看认证状态
claude mcp管理 MCP 服务器(详见 MCP 文档)
claude mcp login/logout <server>对指定 MCP 服务器单独走 OAuth 登录/登出(v2.1.186+)
claude plugin管理插件(别名 claude plugins);v2.1.269 起 claude plugin eval 可对插件跑评测套件;v2.1.271 起 install / update 可用 --accept-command <sha256> 精确接受上一次 --json 运行所显示的命令;🆕 v2.1.285 起 claude plugin configure <plugin> 查看或设置插件选项,也可用 --values-stdin 从 stdin 读取;v2.1.281 起 validate 还检查插件声明的 MCP 服务器;⚠️ v2.1.283 起机器上装有 git 时,eval 要求 git 2.31 或更高版本
claude agents打开 agent 视图,监控与派发并行的后台会话
claude attach <id|name>在当前终端里接管一个后台会话;🆕 v2.1.290 起可传会话名称的一部分
claude respawn <id>重启一个后台会话(会话内容保留),--all 重启全部
claude stop <id> / claude kill <id>停止一个后台会话
claude logs <id|name>打印某个后台会话最近的输出;🆕 v2.1.290 起可传会话名称的一部分
claude rm <id>从列表移除一个后台会话(本地文件仍保留,仍可 --resume)
claude daemon status / claude daemon stop --any查看/停止后台会话的 supervisor 进程,用于故障恢复
claude project purge [path]删除某个项目在本地的全部状态(会话记录、任务列表、编辑历史等)
claude setup-token为 CI/脚本生成长期有效的 OAuth token
claude remote-control以服务模式启动,供 claude.ai / Claude App 远程控制;--continue 恢复最近一次 Remote Control 会话(v2.1.229+)。v2.1.282 修复了 claude remote-control --debug 报「Unknown argument」
claude gateway --config gateway.yaml启动自托管的 Claude apps 网关(面向企业管理员,v2.1.195+)
claude self-hosted-runner🆕 v2.1.224+:把你自己的机器或容器注册成自托管运行环境,让 Claude Code web、移动端、桌面端的会话在上面跑(Team 与 Enterprise 套餐)。🆕 v2.1.271 起新增 --drain-marker-file <path>(SIGTERM 排空时该文件存在,就向服务端把这次退出报告为主机排空,仅用于遥测)与 --host-config-snapshot disk|memory(同版本修复了主机配置目录超过 64 MiB 时静默丢失全部主机配置);同版本起跑在自托管运行环境上的会话也能用 fast mode(组织允许时)。⚠️ v2.1.281 起运行环境改用私有文件把系统提示词交给 Claude Code,包装脚本或 command hook 里追加的 --system-prompt / --append-system-prompt 要改成对应的 -file 形式;v2.1.283 起生命周期 hook 的 git 跳过仓库自带的 Git LFS pre-push hook,没有 --configure-git 时不签名提交
claude ultrareview [target]非交互式跑一次 ultrareview 深度评审

常用参数速查表

按使用场景分组,便于查找;完整字段名与说明见官方 CLI reference。

权限与安全

参数说明
--permission-mode <mode>以指定权限模式启动:default(即 manual)、acceptEdits、plan、auto、dontAsk、bypassPermissions。⚠️ v2.1.283 起不指定(也没有 permissions.defaultMode)时,交互式会话在所有套餐与提供方上都以 auto 起步,-p 仍是 default
--dangerously-skip-permissions跳过全部权限确认,等价于 --permission-mode bypassPermissions。⚠️ v2.1.281 起危险 rm 的确认在这个模式下最多等 2 分钟,无人回答就拒绝并附上改写提示(CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1 关闭)
--allow-dangerously-skip-permissions把 bypassPermissions 加入 Shift+Tab 循环列表,但不强制一开始就用它
--allowedTools / --allowed-tools无需确认即可执行的工具白名单,支持模式匹配,如 "Bash(git log *)"
--disallowedTools / --disallowed-tools拒绝规则,例如 "Bash(rm *)" 只拒绝匹配的调用,裸工具名如 "Edit" 则整体移除该工具
--tools限制 Claude 可用的内置工具集合,如 "Bash,Edit,Read";不影响 MCP 工具
--permission-prompt-tool指定一个 MCP 工具在非交互模式下代为处理权限确认
--safe-mode禁用全部自定义项(CLAUDE.md、skills、插件、hooks、MCP 等)以排查配置问题,比 --bare 更彻底
--bare极简模式:跳过 hooks/skills/插件/MCP/自动记忆/CLAUDE.md 自动发现,只保留 Bash、文件读写工具
--restricted🆕 v2.1.248+:受限模式。移除能执行命令或代码的内置工具与 WebFetch(除非在 --tools 里点名),文件工具限定在工作目录内,拒绝 bypassPermissions,并忽略用户、项目、本机 settings 文件;等价环境变量 CLAUDE_CODE_RESTRICTED=1
--permission-prompts none🆕 v2.1.259+:给无人值守的无头主机用,凡是会弹确认的一律自动拒绝,当前权限模式(含 auto)照常裁决

模型与推理

参数说明
--model <name>设置本次会话模型,支持别名 sonnet/opus/haiku/fable 或完整模型名(v2.1.280 起 opus 在 Anthropic API、Bedrock、Vertex 上指向 Opus 5.5,Foundry 除外;v2.1.284 起 Anthropic API 上 sonnet 指向 Sonnet 5.5)
--effort <level>设置推理强度:low/medium/high/xhigh/max,具体可用档位取决于模型。v2.1.257 起它解除新模型的默认强度锁定只作用于本会话,不再永久生效
--fallback-model <a,b,...>主模型过载/不可用时按顺序自动降级到备用模型
--advisor <model>为本次会话启用顾问模型(第二模型在关键节点提供建议,v2.1.98+)
--betas附加 anthropic-beta 请求头(仅 API Key 用户)

非交互模式与输出

参数说明
--print, -p打印结果后退出,不进入交互模式(v2.1.277 修复了内部错误后挂起、没有结果:现在报告错误并以退出码 1 结束)
--output-format <text|json|stream-json>非交互模式的输出格式
--input-format <text|stream-json>非交互模式的输入格式
--max-turns <n>限制 agentic 轮数,超出直接报错退出(v2.1.281 修复了模型交替输出无法解析的工具调用与超长截断时,一轮无视这个上限无限重试)
--max-budget-usd <n>单次调用的最高花费上限(仅非交互模式)
--json-schema <schema>让最终输出按给定 JSON Schema 校验(结构化输出)
--include-partial-messages输出流式的中间结果片段(需配合 stream-json)
--include-hook-events输出流里包含全部 hook 生命周期事件
--prompt-suggestions每轮结束后额外输出一条“预测下一句 prompt”
--no-session-persistence不落盘会话记录,无法被 --resume
--replay-user-messages把 stdin 收到的用户消息原样回写到 stdout,便于确认

系统提示词定制

参数行为
--system-prompt <text>完全替换默认系统提示词
--system-prompt-file <path>用文件内容替换默认系统提示词
--append-system-prompt <text>在默认提示词末尾追加内容
--append-system-prompt-file <path>追加文件内容到默认提示词末尾
--append-subagent-system-prompt-file <path>🆕 v2.1.261+:从文件读取追加给 subagent 的系统提示词,适合命令行放不下的长提示词
--system-prompt-snapshot off🆕 v2.1.267+:每次请求都重新渲染系统提示词,而不是复用会话记录的那一份,调试提示词文本时用
--exclude-dynamic-system-prompt-sections把工作目录、环境信息等“因机器/用户而异”的片段移到第一条用户消息里,提升跨用户/跨机器的 prompt 缓存命中率

两个 append 参数可以和任一替换参数叠加使用。⚠️ v2.1.283 起 --system-prompt 与 --system-prompt-file 也能同时传(--append-system-prompt 与 --append-system-prompt-file 同理),文件里的文本排在前面;此前前两者互斥。想保留默认的工具指引与安全说明、只是叠加规则时用 append;想完全接管身份定位(例如把 Claude Code 当成流水线里的非编程 agent)时才用替换。

🆕 v2.1.275 起,--system-prompt 的内容里如果有一行 __SYSTEM_PROMPT_DYNAMIC_BOUNDARY__,这一行之上的文本会被全局缓存(与 SDK 的数组形式一致)。

会话恢复与并行

参数说明
--continue, -c恢复当前目录最近一次会话
--resume, -r <id|name>按 ID/名称恢复会话,或不带参数打开交互式选择器
--fork-session恢复会话时创建新会话 ID,而不是复用原 ID
--from-pr <number|url>恢复与指定 PR 关联的会话(Claude 创建 PR 时会自动关联)
--session-id <uuid>为本次会话指定一个 UUID
--name, -n <name>设置会话显示名称,可用 --resume <name> 找回
--worktree, -w [name]在独立的 git worktree 里启动,便于并行开发互不干扰
--tmux为 worktree 创建 tmux 会话(需配合 --worktree)
--bg, --background以后台 agent 形式启动并立即返回。⚠️ v2.1.281 起目录还没通过工作区信任确认时会先请你信任(非交互运行则直接退出),不再直接启动并运行项目 hook
--exec <cmd>配合 --bg,把一条 shell 命令作为后台任务运行,而非启动 Claude 会话
--agent <name>指定本次会话使用的 subagent
--agents <json>以 JSON 动态定义本次会话可用的 subagent(字段与 agent 文件的 frontmatter 对应,prompt 即它的系统提示词)。🆕 v2.1.281 起配合 -p 也可以传一个 JSON 文件的路径,适合命令行放不下的大段定义,prompt 也允许为空
--forward-subagent-text🆕 v2.1.211 新增:把 subagent 的思考过程也带进输出(也有同名环境变量)。v2.1.219 起也转发深度 2 及以上的嵌套 subagent,按派生它的 Agent tool_use id 归类
--teammate-mode设置 agent team 队友的展示方式:in-process/auto/tmux/iterm2
--teleport把一个 web 会话拉到本地终端继续
--remote-control, --rc [name]启动交互式会话并开启远程控制,可从 claude.ai / Claude App 继续操作

目录、配置与 MCP

参数说明
--add-dir <path...>额外授权 Claude 读写的工作目录(不会自动发现这些目录下的 .claude/ 配置,.claude/skills/ 除外)。⚠️ v2.1.257 起拒绝网络路径(UNC 共享、/net/<host> 自动挂载),Windows 上请改用映射盘符
--settings <path|json>指定一份 settings JSON 文件或内联 JSON 字符串,覆盖同名配置项
--setting-sources <user,project,local>指定加载哪些来源的 settings;v2.1.281 起从这个会话派生的会话(队友、/bg、claude agents 会话、--worktree --tmux)沿用同样的限制
--mcp-config <file...>从 JSON 文件/字符串加载 MCP 服务器配置
--strict-mcp-config只使用 --mcp-config 里的 MCP 服务器,忽略其它来源
--plugin-dir <path>仅本次会话从指定目录/.zip 加载一个插件,可重复传参。🆕 v2.1.265 起也可以指向一个装了多个插件的文件夹:每个带清单的子目录都会加载,运行中增删也会被发现。v2.1.280 起也可以用环境变量 CLAUDE_CODE_PLUGIN_DIRS 一次列出多个目录;v2.1.283 起 stream-json 的 system/init 消息里,plugin_errors 中加载失败的条目带上 path
--plugin-url <url>仅本次会话从 URL 拉取插件 .zip
--disable-slash-commands本次会话禁用全部 skills 与命令

调试与其它

参数说明
--debug ["cat1,cat2"]开启调试模式,可选按分类过滤(如 "api,hooks",! 前缀表示排除)
--debug-file <path>把调试日志写到指定文件(隐式开启调试模式)
--verbose展示完整的逐轮输出
--version, -v输出版本号
--ide启动时若刚好只有一个可用 IDE,则自动连接
--init在非交互模式下,会话开始前运行 init 匹配的 Setup hooks
--init-only只运行 Setup / SessionStart hooks 然后退出,不进入对话
--chrome / --no-chrome启用/禁用 Chrome 浏览器自动化集成;🆕 v2.1.282 起企业可用托管设置 allowClaudeInChromeWithManagedMcp 让它与独占 MCP 控制的 managed-mcp.json 共存
--cloud <task>用给定任务描述在 claude.ai 上新建一个 web 会话(旧名 --remote)
--ax-screen-reader输出无装饰边框/动画的纯文本,适配屏幕阅读器

示例

# 交互式启动,带初始 prompt
claude "解释一下这个仓库的整体架构"

# 非交互模式,管道输入,输出 JSON
git log --oneline -20 | claude -p "总结这些提交" --output-format json

# 在独立 worktree 里并行修一个 bug
claude --worktree fix-auth-bug

# 计划模式起步,并允许后续切到 bypassPermissions
claude --permission-mode plan --allow-dangerously-skip-permissions

# CI 场景:限制轮数、限制预算、禁用交互确认
claude -p --max-turns 5 --max-budget-usd 2.00 --dangerously-skip-permissions "跑一遍 lint 并修复"

常见误用提醒

  • claude --dangerously-skip-permissions daemon <id> 在 v2.1.199 之前会被当成新会话的 prompt 文本(因为 daemon <id> 被解释为消息内容,而不是子命令),v2.1.199 起才正确路由到 daemon 子命令。只有紧跟在最前面的 --dangerously-skip-permissions/--allow-dangerously-skip-permissions 才会触发这个特殊路由。
  • --bg 不能和 -p/--print 同时使用(v2.1.198 起会直接报错拒绝,而不是静默产生一个无法 attach 的会话)。
  • 子命令拼错时(如 claude udpate)会提示“你是不是想输入 xxx”,并直接退出而不会误当成新会话的 prompt。

本页目录