深色模式
12 · Headless 模式
claude -p 是一切自动化的起点
📚 《Claude Code 进阶玩法》第 12/20 篇 · 下一篇:13 · GitHub Actions 深度用法
非交互模式让 Claude Code 变成可编排的命令行工具。
01 输出契约
指定 JSON 输出格式供下游解析——自然语言输出的格式漂移会把下游脚本天天搞崩。契约是自动化的地基。
02 权限策略
无人值守权限要比交互模式更紧:工具白名单(allowedTools)只放本任务必需的,默认只读——脚本里一句歧义指令改了不该改的文件,没人当场喊停。
03 典型脚本
每日代码库健康报告(依赖过期/TODO 清点/死链扫描):cron 定时 + claude -p + 报告落盘。失败要有重试与告警。
04 动手
上线 cron 定时的"依赖过期扫描+报告"脚本 → 验收:连续三天自动产出。
05 小结
headless 是积木,后面三篇都在拼它。下一篇进 CI。
📎 实战案例
headless 任务沿用了交互模式的宽权限,脚本里一句歧义指令「顺手」改了文件。工程师给无人值守默认只读+工具白名单、输出指定 JSON 契约后,cron 定时健康日报连续三天稳定产出。
踩坑
- 我的 headless 任务沿用了交互模式宽权限,"顺手"改了文件——无人值守默认只读。
- 下游解析自然语言输出,模型换版全线崩——JSON 契约从第一天定。