Advanced
Claude Code Headless Mode 教程
使用 Claude Code headless mode、print mode、JSON 输出、工具权限、CI 检查和脚本自动化。
Headless Mode 可以让 Claude Code 在没有完整交互式终端会话的情况下运行指定提示词。它适合可重复检查、CI 实验、PR 摘要、Issue 分流,以及输入输出边界清晰的结构化分析。
基础 Print Mode
用 -p 或 --print 执行非交互式提示:
claude -p "总结这个仓库的改动,并列出测试风险"提示词要具体。让自动化在大仓库里执行模糊任务,很容易消耗不必要的用量,并产生噪声输出。
结构化输出
自动化场景应选择脚本容易解析的输出格式:
claude -p "Review this diff and return the top risks" \
--output-format json长任务可以使用流式输出:
claude -p "Analyze this pull request" \
--output-format stream-json \
--verbose--verbose 适合调试。生产自动化中只有确实需要追踪时才保留详细日志。
Headless 工作流权限
Headless 工作流应显式声明工具和权限模式:
claude -p "只总结这个 PR,不修改文件" \
--allowedTools "Read,Glob,Grep,LS,Bash(git diff:*)" \
--permission-mode plan不要给每次提交都会运行的脚本配置宽权限。写文件、安装依赖、部署和破坏性 Shell 命令都应该保留人工审查。
适合场景
- 总结 PR 并识别测试缺口。
- 把 Issue 转成可复现的排查清单。
- 检查文档中的过时命令或失效链接。
- 根据近期提交生成 release note 草稿。
- 在受控 CI 中运行固定代码质量提示词。
不适合场景
需求不清的架构决策、高风险迁移、支付/认证改动,以及需要产品讨论的任务,不适合直接用 Headless Mode。先用交互式会话和 Plan Mode。
成本和稳定性检查
- 提示词保持聚焦。
- 限制 Claude Code 可检查的文件和工具。
- 自动化未验证前,优先只读。
- 记录完整命令和输出格式。
- 上 CI 前先在交互环境用
/status确认凭证路径。