这是 Claude Code CLI 的完整命令参考。核心用法:claude 启动交互会话,claude -p "提示词" 非交互输出后退出,claude -c 继续上次对话。常用标志:--permission-mode plan 只读计划模式,--allowedTools 预批准工具,--output-format json 结构化输出,--model sonnet 切换模型。用 claude --help 可查看所有标志,但部分高级标志不列在其中,以本文为准。
Claude Code CLI 命令参考:标志速查与常见用法 #
命令速查表 #
| 命令 |
说明 |
示例 |
claude |
启动交互式会话 |
claude |
claude "query" |
带初始提示启动交互会话 |
claude "解释这个项目" |
claude -p "query" |
非交互模式:输出后退出 |
claude -p "解释这个函数" |
cat file | claude -p "query" |
处理管道输入的文件内容 |
cat logs.txt | claude -p "解释" |
claude -c |
继续当前目录最近的对话 |
claude -c |
claude -c -p "query" |
继续对话(非交互模式) |
claude -c -p "检查类型错误" |
claude -r "<session>" "query" |
通过 ID 或名称恢复特定会话 |
claude -r "auth-refactor" "完成这个 PR" |
claude update |
更新到最新版本 |
claude update |
claude install [version] |
安装或重装原生二进制,接受版本号如 2.1.118,或 stable/latest |
claude install stable |
claude auth login |
登录 Anthropic 账号。--email 预填邮箱,--sso 强制 SSO,--console 使用 API 计费 |
claude auth login --console |
claude auth logout |
退出登录 |
claude auth logout |
claude auth status |
以 JSON 显示认证状态。--text 输出可读文本。已登录退出码 0,未登录退出码 1 |
claude auth status |
claude agents |
打开代理视图,监控和派发后台会话。--json 打印 JSON 数组供脚本使用 |
claude agents --json |
claude attach <id> |
附加到后台会话 |
claude attach 7c5dcf5d |
claude auto-mode defaults |
打印内置的自动模式分类规则为 JSON |
claude auto-mode defaults > rules.json |
claude daemon status |
打印后台会话监控进程状态。进程未运行时退出码 1 |
claude daemon status |
claude logs <id> |
打印后台会话的最近输出 |
claude logs 7c5dcf5d |
claude mcp |
配置 MCP 服务器 |
见 MCP 文档 |
claude plugin |
管理插件。别名 claude plugins |
claude plugin install code-review@claude-plugins-official |
claude project purge [path] |
删除项目本地数据。--dry-run 预览,-y 跳过确认,--all 处理所有项目 |
claude project purge ~/work/repo --dry-run |
claude remote-control |
启动远程控制服务器 |
claude remote-control --name "我的项目" |
claude respawn <id> |
重启后台会话,保留对话内容。--all 重启所有运行中的会话 |
claude respawn 7c5dcf5d |
claude rm <id> |
从列表中移除后台会话,对话记录仍本地保留 |
claude rm 7c5dcf5d |
claude setup-token |
为 CI 和脚本生成长效 OAuth 令牌,直接打印到终端。需要 Claude 订阅 |
claude setup-token |
claude stop <id> |
停止后台会话。别名 claude kill |
claude stop 7c5dcf5d |
claude ultrareview [target] |
非交互式运行 ultrareview。成功退出码 0,失败退出码 1。--json 输出原始数据,--timeout 覆盖 30 分钟默认超时 |
claude ultrareview 1234 --json |
常用标志参考 #
系统提示相关标志 #
--system-prompt 和 --system-prompt-file 互斥,追加标志可与替换标志组合使用。如果在交互和非交互模式下都可用,追加标志保留默认提示的工具指导和安全指令,替换标志则完全丢弃。
| 标志 |
行为 |
示例 |
--system-prompt |
替换整个默认系统提示 |
claude --system-prompt "你是 Python 专家" |
--system-prompt-file |
用文件内容替换默认提示 |
claude --system-prompt-file ./prompts/review.txt |
--append-system-prompt |
追加到默认提示末尾 |
claude --append-system-prompt "始终使用 TypeScript" |
--append-system-prompt-file |
将文件内容追加到默认提示末尾 |
claude --append-system-prompt-file ./style-rules.txt |
会话管理 #
| 标志 |
说明 |
示例 |
--continue, -c |
加载当前目录最近的对话 |
claude -c |
--resume, -r |
通过 ID 或名称恢复特定会话,或交互式选择。v2.1.144 起后台会话会标记 bg |
claude -r auth-refactor |
--fork-session |
恢复时创建新会话 ID,配合 --resume 或 --continue 使用 |
claude --resume abc123 --fork-session |
--name, -n |
设置会话显示名称,显示在 /resume 和终端标题中 |
claude -n "my-feature-work" |
--session-id |
使用指定 UUID 作为会话 ID |
claude --session-id "550e8400-e29b-41d4-a716-446655440000" |
--no-session-persistence |
禁用会话持久化,仅 print 模式可用 |
claude -p --no-session-persistence "query" |
--from-pr |
恢复与指定 PR 关联的会话,接受 PR 编号或 URL |
claude --from-pr 123 |
权限控制 #
| 标志 |
说明 |
示例 |
--permission-mode |
以指定模式启动:default/acceptEdits/plan/auto/dontAsk/bypassPermissions |
claude --permission-mode plan |
--dangerously-skip-permissions |
跳过所有权限提示,等效于 --permission-mode bypassPermissions |
claude --dangerously-skip-permissions |
--allow-dangerously-skip-permissions |
把 bypassPermissions 加入 Shift+Tab 切换循环,但不立即启动 |
claude --permission-mode plan --allow-dangerously-skip-permissions |
--allowedTools |
无需确认即可使用的工具,支持模式匹配 |
--allowedTools "Bash(git log *)" "Read" |
--disallowedTools |
禁止使用的工具。纯工具名直接移除该工具,加作用域只拒绝匹配调用 |
--disallowedTools "Bash(rm *)" "Edit" |
输出控制 #
| 标志 |
说明 |
示例 |
--print, -p |
非交互模式,输出后退出 |
claude -p "query" |
--output-format |
输出格式:text(默认)、json、stream-json |
claude -p --output-format json "query" |
--input-format |
输入格式:text(默认)、stream-json |
claude -p --input-format stream-json |
--json-schema |
获取符合 JSON Schema 的输出,仅 print 模式 |
claude -p --json-schema '{"type":"object"}' "query" |
--verbose |
启用详细日志,逐轮输出 |
claude --verbose |
--include-partial-messages |
包含部分流式事件,需同时使用 --print 和 --output-format stream-json |
claude -p --output-format stream-json --include-partial-messages "query" |
--include-hook-events |
在输出流中包含 hook 生命周期事件,需 --output-format stream-json |
claude -p --output-format stream-json --include-hook-events "query" |
--exclude-dynamic-system-prompt-sections |
把每机器的系统提示部分移到第一条用户消息,提升多用户提示缓存复用 |
claude -p --exclude-dynamic-system-prompt-sections "query" |
模型与代理 #
| 标志 |
说明 |
示例 |
--model |
设置当前会话的模型。可用别名 sonnet、opus,或完整模型名称 |
claude --model claude-sonnet-4-6 |
--effort |
设置思考深度:low/medium/high/xhigh/max,可用级别取决于模型 |
claude --effort high |
--agent |
以指定子代理运行会话,覆盖 agent 设置 |
claude --agent my-custom-agent |
--agents |
动态定义子代理,JSON 格式。字段同子代理 frontmatter,加 prompt 字段 |
claude --agents '{"reviewer":{"description":"审查代码","prompt":"你是代码审查员"}}' |
--fallback-model |
默认模型过载时自动回退,print 模式和后台会话有效,交互会话忽略 |
claude -p --fallback-model sonnet "query" |
--max-turns |
限制代理交互回合数,仅 print 模式。超出时报错退出,默认无限制 |
claude -p --max-turns 3 "query" |
--max-budget-usd |
API 调用最大消费上限,仅 print 模式 |
claude -p --max-budget-usd 5.00 "query" |
--betas |
向 API 请求添加 Beta 头,仅 API Key 用户可用 |
claude --betas interleaved-thinking |
后台会话与远程控制 #
| 标志 |
说明 |
示例 |
--bg |
以后台代理启动会话,立即返回。打印会话 ID 和管理命令 |
claude --bg "调查这个不稳定的测试" |
--remote-control, --rc |
启动交互会话并启用远程控制,可选命名 |
claude --remote-control "我的项目" |
--remote-control-session-name-prefix <prefix> |
自动生成的远程控制会话名称前缀,默认为机器主机名 |
claude remote-control --remote-control-session-name-prefix dev-box |
--remote |
在 claude.ai 创建新的 Web 会话 |
claude --remote "修复登录 bug" |
--teleport |
在本地终端恢复 Web 会话 |
claude --teleport |
实用技巧 #
非交互式脚本用法 #
# 管道输入
cat build-error.txt | claude -p "简要解释这个构建错误的根本原因"
# 结构化输出供脚本解析
claude -p "列出所有 API 端点" --output-format json > endpoints.json
# 流式 JSON 实时处理
claude -p "分析日志文件" --output-format stream-json | jq '.content'
# 组合权限限制与最大回合数
claude -p "分析认证系统" --permission-mode plan --max-turns 5 --tools "Read,Glob,Grep"
常见错误排查 #
| 问题 |
原因 |
解决方法 |
claude update 报错命令不存在 |
输错子命令 |
检查拼写,例如 claude udpate 会提示 Did you mean claude update? |
非交互模式 -p 未输出 |
未加 -p 或 --print,启动的是交互会话 |
确认使用 -p 标志 |
| 会话无法恢复 |
会话 ID 或名称错误,或会话已被删除 |
用 claude -c 恢复最近对话,或用 -r 配合交互选择器 |
claude auth status 退出码 1 |
未登录或令牌失效 |
运行 claude auth login 重新登录 |
常见问题 #
怎么恢复一个指定名称的对话会话? #
使用 claude -r <会话名称>,例如 claude -r "my-feature-work"。会话名称在启动时用 --name 设置,或通过 /rename 命令在会话期间设置。
Claude Code CLI 能集成到 CI/CD 流程中吗? #
可以。用 claude -p "查询" 非交互模式,结合 --output-format json 输出结构化结果供脚本解析。--max-turns 和 --max-budget-usd 可控制资源消耗,--fallback-model 在模型过载时自动回退。
怎么在脚本中限制 Claude 只能读文件不能执行修改? #
使用 claude --permission-mode plan 启动只读计划模式,并用 --tools "Read,Glob,Grep" 限制可用工具集合。--allowedTools 可以进一步预设无需确认的工具。