这是 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(默认)、jsonstream-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 设置当前会话的模型。可用别名 sonnetopus,或完整模型名称 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 可以进一步预设无需确认的工具。