Skip to content

12 · Headless 模式

claude -p 是一切自动化的起点

📚 《Claude Code 进阶玩法》第 12/20 篇 · 下一篇:13 · GitHub Actions 深度用法

非交互模式让 Claude Code 变成可编排的命令行工具。

Headless 模式:自动化的起点

01 输出契约

指定 JSON 输出格式供下游解析——自然语言输出的格式漂移会把下游脚本天天搞崩。契约是自动化的地基。

02 权限策略

无人值守权限要比交互模式更紧:工具白名单(allowedTools)只放本任务必需的,默认只读——脚本里一句歧义指令改了不该改的文件,没人当场喊停。

03 典型脚本

每日代码库健康报告(依赖过期/TODO 清点/死链扫描):cron 定时 + claude -p + 报告落盘。失败要有重试与告警。

04 动手

上线 cron 定时的"依赖过期扫描+报告"脚本 → 验收:连续三天自动产出。

05 小结

headless 是积木,后面三篇都在拼它。下一篇进 CI。

📎 实战案例

headless 任务沿用了交互模式的宽权限,脚本里一句歧义指令「顺手」改了文件。工程师给无人值守默认只读+工具白名单、输出指定 JSON 契约后,cron 定时健康日报连续三天稳定产出。

踩坑

  • 我的 headless 任务沿用了交互模式宽权限,"顺手"改了文件——无人值守默认只读。
  • 下游解析自然语言输出,模型换版全线崩——JSON 契约从第一天定。