主题
CLI 参考(命令行 flag)
Claude Code 命令行的完整参考:所有 claude 子命令与 CLI flag 的名称、用途和语法。
对你最常用的几个 flag(按你的工作方式)
完整 flag 见下方参考;结合你"前后端联调 + 重度 subagent/MCP + bypassPermissions"的用法,最该记的:
| flag | 干什么 | 你为啥用得上 |
|---|---|---|
claude --resume / -c | 选/续上次会话 | 你会话多,切回特定任务 |
claude --worktree <名> / -w | 隔离分支开会话 | 并行改前端 + SpringBlade 不踩脚 |
claude --add-dir ../x | 临时加目录访问 | 跨 kj-frontend / SpringBlade 联调 |
claude -p "..." | 非交互一次性跑 | 接脚本 / CI / 管道 |
claude --model opus[1m] | 指定模型/1M 上下文 | 大仓库审计时 |
claude --bare | 跳过插件/技能/MCP/CLAUDE.md | 想要一个干净环境复现问题 |
你已是 native 安装 v2.1.158;
claude doctor/claude mcp/claude plugin这些子命令也常用到。
官方文档要点
以下为按官方文档整理的系统性参考。
是什么
这是 Claude Code 官方 CLI reference 页面的内容,分两大块:CLI commands(如何启动会话、管道传内容、恢复对话、管理更新)和 CLI flags(用命令行参数定制 Claude Code 行为)。它还单列了 System prompt flags(4 个改写/追加系统提示词的 flag)。页面明确提醒:claude --help 并不会列出每一个 flag,所以某个 flag 没出现在 --help 里并不代表它不可用。
怎么工作
- 启动形态由命令决定:
claude进入交互式会话;claude "query"带初始提示进交互式;claude -p "query"走 SDK 打印模式(print mode)后退出;cat file | claude -p "query"处理管道内容。 - 会话延续:
claude -c(=--continue) 加载当前目录最近一次对话(含用/add-dir加进来的目录的会话);claude -r "<session>" "query"(=--resume) 按 ID 或名字恢复,或不带参数弹交互式选择器;--fork-session在恢复时生成新 session ID 而不复用原 ID。 - print mode(
-p/--print)是一大批 flag 的前提:--max-turns、--max-budget-usd、--json-schema、--init、--maintenance、--no-session-persistence、--fallback-model(仅在 -p 和后台会话生效,交互式忽略) 等都标注为 print mode only 或需配合 -p。 - 结构化/流式输出靠组合 flag:
--output-format取text/json/stream-json;很多增强项要求--output-format stream-json且常需--verbose,例如--include-hook-events、--include-partial-messages、--prompt-suggestions、--replay-user-messages。 - 权限控制三套机制:
--permission-mode选起始模式(default/acceptEdits/plan/auto/dontAsk/bypassPermissions);--dangerously-skip-permissions等价于--permission-mode bypassPermissions;--allowedTools/--disallowedTools用规则匹配放行/拒绝具体调用,--tools则限制有哪些内置工具可用。 - 系统提示词有 4 个 flag:
--system-prompt/--system-prompt-file整体替换默认提示词(二者互斥);--append-system-prompt/--append-system-prompt-file在默认提示词后追加;append 类可与某个 replace 类组合。 - 后台/并行会话:
--bg把会话作为后台 agent 启动并立即返回(打印 session ID);claude agents打开 agent view 监控/派发;配套claude attach/logs/respawn/rm/stop(kill)从 shell 管理;claude daemon status查 supervisor 状态。 - 子命令拼错时 Claude Code 会给出最接近的建议并退出而不启动会话,例如
claude udpate会打印Did you mean claude update?。
怎么配置 / 用法
flag 持久化与配置位置示例:1) --add-dir 只对本会话授予文件访问,要跨会话持久化需在 settings 里设 permissions.additionalDirectories。2) --settings 接受 settings JSON 文件路径或内联 JSON 字符串,会覆盖 settings.json 中同名 key(未写的 key 保留文件值):claude --settings ./settings.json。3) --setting-sources 用逗号分隔指定加载哪些来源:claude --setting-sources user,project(可选 user/project/local)。4) MCP:claude --mcp-config ./mcp.json,加 --strict-mcp-config 则只用该文件的 MCP 服务器。5) 结构化输出:claude -p --json-schema '{"type":"object","properties":{...} }' "query"。6) 多用户缓存复用:claude -p --exclude-dynamic-system-prompt-sections "query"(仅默认系统提示词生效,设了 --system-prompt/--system-prompt-file 时忽略)。7) 长效 token:claude setup-token(需 Claude 订阅,打印 token 到终端但不保存)。
什么时候用
- 脚本/CI 里非交互运行:用
-p/--print,配--output-format json或--json-schema取结构化结果;用--max-turns/--max-budget-usd设上限防跑飞;用--fallback-model在默认模型过载/下线时自动回退。 - 想让脚本调用启动更快:用
--bare(跳过 hooks/skills/plugins/MCP/auto memory/CLAUDE.md 的自动发现,只留 Bash、file read、file edit),会设CLAUDE_CODE_SIMPLE。 - 只想在默认编码助手身份上加几条规则:用 append 类(
--append-system-prompt/--append-system-prompt-file),保留默认工具指引和安全说明;当任务的身份/权限模型与 Claude Code 不同(如流水线里无人值守的非编码 agent)才用 replace 类。 - 别把临时 flag 当持久人格:页面建议持久人格用 output styles,项目级长期约定用 CLAUDE.md,而这些 flag 只对当次调用生效。
- 多用户/多机跑同一任务想提升 prompt-cache 命中率:用
--exclude-dynamic-system-prompt-sections,把工作目录、环境信息、memory 路径、git-repo 标记挪到首条 user 消息。
限制 / 坑
claude --help不会列出全部 flag——flag 不在--help里不代表不可用。--enable-auto-mode已在 v2.1.111 移除(max-version 标注 2.1.110);auto mode 现默认在Shift+Tab循环里,改用--permission-mode auto起始。--system-prompt与--system-prompt-file互斥;replace 类会丢掉全部默认提示词(含工具指引和安全说明),需自行承担任务所需的一切。--fallback-model只在 print mode(-p)和后台会话(非交互)生效,交互式会话里被忽略。--add-dir只授予文件读写访问,大多数.claude/配置不会从这些目录被发现;要持久化得写进 settings 的permissions.additionalDirectories。- 大量增强输出 flag 有硬性前置:
--include-hook-events/--include-partial-messages/--prompt-suggestions/--replay-user-messages都要求--output-format stream-json(多数还要--verbose),--replay-user-messages还要求--input-format stream-json。 --session-id必须是合法 UUID;--tmux必须配--worktree。--no-session-persistence仅 print mode;同样效果在任何模式可用环境变量CLAUDE_CODE_SKIP_PROMPT_HISTORY。--exclude-dynamic-system-prompt-sections设了--system-prompt/--system-prompt-file时被忽略。--channels是 Research preview 且需要 Claude.ai 认证;--dangerously-load-development-channels会绕开 allowlist 并提示确认。claude setup-token需要 Claude 订阅,且只打印不保存 token。
硬事实速查(45 条)
- CLI commands:
claude(交互)、claude "query"(带初始提示)、claude -p "query"(SDK 后退出)、cat file | claude -p "query"(管道)、claude -c(续最近对话)、claude -c -p "query"(SDK 续)、claude -r "<session>" "query"(按 ID/名恢复)。 claude update(更新到最新);claude install [version]接受版本号如2.1.118,或stable/latest。claude auth login(支持--email预填、--sso强制 SSO、--console用 Console 走 API 计费);claude auth logout;claude auth status(输出 JSON,--text人类可读,登录退 0 未登录退 1)。claude agents(打开 agent view,支持--cwd <path>、--json、--permission-mode、--model、--effort、--settings、--add-dir、--plugin-dir、--mcp-config,需交互式终端)。- 后台会话管理:
claude attach <id>、claude logs <id>、claude respawn <id>(--all重启全部运行中)、claude rm <id>、claude stop <id>(也接受claude kill)。 claude auto-mode defaults(打印内置 auto mode 分类器规则 JSON);claude auto-mode config(看应用 settings 后的有效配置)。claude daemon status(打印 supervisor 状态/版本/socket 目录/worker 数,未运行退 1)。claude mcp(配置 MCP 服务器);claude plugin(管理插件,别名claude plugins)。claude project purge [path](删项目本地状态:transcripts/task lists/debug logs/file-edit history/prompt history/~/.claude.json中该项目条目;flags:--dry-run、-y/--yes、-i/--interactive、--all)。claude remote-control(启动 Remote Control 服务器,server 模式无本地交互);claude setup-token(生成长效 OAuth token,需订阅)。claude ultrareview [target](非交互跑 ultrareview,成功退 0 失败退 1,--json原始负载,--timeout <minutes>覆盖 30 分钟默认)。--add-dir(加额外工作目录);--agent(指定 agent);--agents(JSON 动态定义 subagent,字段同 frontmatter 加prompt)。--allow-dangerously-skip-permissions(把 bypassPermissions 加进 Shift+Tab 循环但不以此起始);--dangerously-skip-permissions(=--permission-mode bypassPermissions)。--allowedTools(免提示执行的工具,规则匹配);--disallowedTools(裸工具名从 context 移除,带域规则如Bash(rm *)只拒匹配调用);--tools(限制可用内置工具,""全禁、"default"全开、或"Bash,Edit,Read")。--append-system-prompt/--append-system-prompt-file(追加);--system-prompt/--system-prompt-file(整体替换,前两组与后两组可组合,后两个互斥)。--bare(最小模式,设CLAUDE_CODE_SIMPLE);--betas(beta header,仅 API key 用户,如interleaved-thinking)。--bg(后台 agent 启动并返回 session ID,可配--exec/--agent);--exec(把 shell 命令作为 PTY 后台 job,配--bg)。--channels(Research preview,空格分隔plugin:<name>@<marketplace>,需 Claude.ai 认证);--dangerously-load-development-channels(接受plugin:<name>@<marketplace>和server:<name>,提示确认)。--chrome/--no-chrome(Chrome 浏览器集成开/关)。--continue,-c;--resume,-r(v2.1.144 起后台会话在选择器里标bg);--fork-session(配--resume/--continue);--from-pr(接受 PR 号、GitHub/GitHub Enterprise PR URL、GitLab MR URL、Bitbucket PR URL)。--debug(可带类目过滤如"api,hooks"或"!statsig,!file");--debug-file <path>(隐式开 debug,优先级高于CLAUDE_CODE_DEBUG_LOGS_DIR)。--disable-slash-commands(禁所有 skills 和 commands)。--effort(取low/medium/high/xhigh/max,可用级别看模型,覆盖effortLevel不持久)。--exclude-dynamic-system-prompt-sections(把 per-machine 段挪到首条 user 消息,仅默认系统提示词生效)。--fallback-model(默认模型过载/下线时自动回退,仅 -p 和后台会话)。--ide(恰有一个有效 IDE 时自动连)。--init/--maintenance(print mode 下用对应 matcher 跑 Setup hooks);--init-only(跑 Setup 和 SessionStart hooks 后退出不开对话)。--include-hook-events/--include-partial-messages(均需--output-format stream-json,后者还需--print)。--input-format(print 模式输入格式:text/stream-json);--output-format(text/json/stream-json)。--json-schema(print mode only,agent 完成后输出符合 JSON Schema 的校验过的输出)。--max-budget-usd(print mode only,达上限停);--max-turns(print mode only,达上限报错退出,默认无限)。--mcp-config(从 JSON 文件或字符串加载 MCP,空格分隔);--strict-mcp-config(只用--mcp-config的 MCP)。--model(别名sonnet/opus或全名如claude-sonnet-4-6,覆盖model设置和ANTHROPIC_MODEL)。--name,-n(会话显示名,可claude --resume <name>恢复;/rename中途改名)。--no-session-persistence(print mode only,等效 envCLAUDE_CODE_SKIP_PROMPT_HISTORY)。--permission-mode(default/acceptEdits/plan/auto/dontAsk/bypassPermissions,覆盖 settings 的defaultMode);--permission-prompt-tool(非交互下用 MCP 工具处理权限提示)。--plugin-dir(从目录或.zip加载插件,单 flag 一路径,可重复);--plugin-url(从 URL 拉.zip插件,可重复或空格分隔)。--print,-p;--prompt-suggestions(需--print+--output-format stream-json+--verbose)。--remote(在 claude.ai 建 web 会话);--remote-control,--rc(交互式会话同时开 Remote Control,可带名字);--remote-control-session-name-prefix <prefix>(默认 hostname,等效 envCLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX)。--replay-user-messages(需--input-format stream-json且--output-format stream-json)。--session-id(须合法 UUID,如550e8400-e29b-41d4-a716-446655440000)。--setting-sources(逗号分隔user/project/local);--settings(JSON 文件或内联字符串)。--teleport(在本地终端恢复 web 会话);--teammate-mode(auto(默认)/in-process/tmux,覆盖teammateMode)。--tmux(为 worktree 建 tmux,需--worktree;有 iTerm2 用原生 pane,--tmux=classic用传统 tmux)。--verbose(覆盖viewMode);--version,-v;--worktree,-w(在<repo>/.claude/worktrees/<name>起隔离 worktree,可传#<number>或 GitHub PR URL)。