关于 claude-code-headless
claude-code-headless 是一项用于通过脚本非交互运行 Claude Code 的技能,涵盖结构化输出、会话续接、工具权限和 CI/CD 用法。
主要功能
- 01非交互式命令行执行
- 02文本、JSON 和 stream-JSON 输出
- 03恢复或继续会话
- 04允许或禁止指定工具
- 05配置权限模式
适用场景
- 01通过脚本自动分析代码
- 02在 CI/CD 任务中解析响应
- 03按会话 ID 执行多轮任务
MCP 相关
该技能介绍了 `--mcp-config` 选项,用于指定 MCP 服务配置文件。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 0xdarkmatter/ claude-mods --skill claude-code-headless安装后在 Claude Code 中输入/claude-code-headless确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/.gitkeepreferences/output-formats.mdintegration-patterns.mdcli-options.mdscripts/.gitkeep详细介绍
Claude Code 无头模式
通过脚本运行 Claude Code,无需交互式界面。
快速开始
# Basic headless execution
claude -p "Explain this code" --allowedTools "Read,Grep"
# JSON output for parsing
claude -p "List files" --output-format json
# Continue conversation
claude -p "Start analysis" --output-format json > result.json
session=$(jq -r '.session_id' result.json)
claude --resume "$session" "Now fix the issues"
基本 CLI 选项
| 标志 | 说明 |
|---|---|
-p, --print | 非交互式(无头)模式 |
--output-format | text、json、stream-json |
-r, --resume | 按会话 ID 恢复 |
-c, --continue | 继续最近的会话 |
--allowedTools | 以逗号分隔的允许使用的工具 |
--disallowedTools | 以逗号分隔的禁止使用的工具 |
--mcp-config | MCP 服务配置 JSON 的路径 |
--verbose | 启用详细日志 |
--append-system-prompt | 添加到系统提示词 |
权限模式
| 模式 | 标志 | 效果 |
|---|---|---|
| 默认 | (无) | 提示请求权限 |
| 接受编辑 | --permission-mode acceptEdits | 自动接受文件更改 |
| 绕过 | --permission-mode bypassPermissions | 跳过所有提示 |
输出格式
文本(默认)
claude -p "Hello"
# Outputs: Human-readable response
JSON
claude -p "Hello" --output-format json
{
"type": "result",
"subtype": "success",
"result": "Hello! How can I help?",
"session_id": "abc123",
"total_cost_usd": 0.001,
"duration_ms": 1234,
"num_turns": 1
}
Stream-JSON
claude -p "Hello" --output-format stream-json
# Real-time JSONL output for each message
常见模式
限制工具的脚本
claude -p "Analyze the codebase" \
--allowedTools "Read,Grep,Glob" \
--disallowedTools "Write,Edit,Bash"
CI/CD 集成
claude -p "Review this PR diff" \
--permission-mode acceptEdits \
--output-format json \
--append-system-prompt "Focus on security issues"
多轮自动化
session=$(claude -p "Start task" --output-format json | jq -r '.session_id')
claude --resume "$session" "Continue with step 2"
claude --resume "$session" "Finalize and report"
错误处理
result=$(claude -p "Task" --output-format json)
if [[ $(echo "$result" | jq -r '.is_error') == "true" ]]; then
echo "Error: $(echo "$result" | jq -r '.result')" >&2
exit 1
fi
官方文档
其他资源
./references/cli-options.md- 完整的 CLI 标志参考./references/output-formats.md- 输出格式架构./references/integration-patterns.md- CI/CD 和脚本示例
另请参阅: claude-code-hooks(自动化事件)、claude-code-debug(故障排除)
评论
支持 Markdown