086、Claude Code 无头模式:在 CI/CD 流水线中的 headless 使用与参数配置
086、Claude Code 无头模式:在 CI/CD 流水线中的 headless 使用与参数配置
上周五凌晨两点,我盯着 Jenkins 构建日志里那行Error: Interactive mode is not supported in non-TTY environment发呆。CI 节点上跑 Claude Code 做自动化代码审查,结果它非要我按回车确认。这已经不是第一次了——之前写脚本时用claude code --help测试过参数,但真正塞进流水线就翻车。无头模式(headless)这个坑,我踩了三次才彻底填平。
无头模式到底在解决什么问题
Claude Code 默认启动后是一个交互式 REPL,你可以输入自然语言指令,它逐条执行。但在 CI/CD 场景下,没有人在终端前敲键盘,也没有 TTY 设备。流水线需要的是“给一段指令,跑完就退出,返回状态码”。这就是 headless 模式的本质:把 Claude Code 从对话工具变成命令行工具。
启动无头模式的核心参数是--headless或-y(自动确认所有操作)。但光加这个参数远远不够,后面还有一堆配置需要对齐。
基础用法:从交互到非交互
最简单的无头调用长这样:
