在非交互模式下使用 Claude Code,适用于脚本、CI/CD 和自动化工作流。
什么是无头模式
无头模式(Headless Mode)让 Claude Code 在没有交互式终端的环境中运行。你可以:
- 在 CI/CD 管道中使用
- 在脚本中调用 Claude
- 作为自动化工作流的一部分
- 通过 API 集成到其他工具
使用方式
单轮模式(--print)
最简单的方式——给一个提示,获取回复,退出:
claude --print "这个项目用了什么框架?"
claude --print "给 main.py 写单元测试"
这会启动 Claude,执行任务,输出结果,然后退出。
管道模式
可以与其他命令行工具组合使用:
# 将日志喂给 Claude 分析
tail -100 app.log | claude --print "分析错误模式"
# 批量审查变更
git diff main --name-only | claude --print "审查这些文件的安全问题"
# 自动化翻译
cat messages.json | claude --print "翻译成法语和西班牙语,保持 JSON 格式"
在 CI/CD 中使用
在 GitHub Actions 或其他 CI 系统中:
- name: Code review
run: |
claude --print "审查当前分支与 main 的 diff,关注安全问题和代码质量"
环境变量
在无头模式下,你可能需要设置:
# API 密钥认证
export ANTHROPIC_API_KEY="sk-..."
# 指定模型
export ANTHROPIC_MODEL="claude-sonnet-4-20250514"
# 非交互模式
export CI=true
权限控制
在无头模式下,Claude 不能等待你的批准。你需要:
- 在
.claude/settings.json中预授权必要的命令 - 使用
--allowed-tools标志指定允许的工具 - 或者使用计划模式让 Claude 只生成建议而不执行
输出格式
Claude 的输出是纯文本,可以进一步处理:
# 保存输出到文件
claude --print "生成 API 文档" > docs/api.md
# 管道到其他工具
claude --print "检查代码风格问题" | grep "ERROR"
下一步
- GitHub Actions 集成:在 CI/CD 中使用 Claude Code
- GitLab CI/CD 集成:GitLab 中的自动化工作流
- 常见工作流:更多使用示例