mcpField
C
claude-code-headless

claude-code-headless

github.com/0xdarkmatterAgent 工作流7844 次安装2 周前更新
代码仓库

关于 claude-code-headless

claude-code-headless 是一项用于通过脚本非交互运行 Claude Code 的技能,涵盖结构化输出、会话续接、工具权限和 CI/CD 用法。

主要功能

  1. 01非交互式命令行执行
  2. 02文本、JSON 和 stream-JSON 输出
  3. 03恢复或继续会话
  4. 04允许或禁止指定工具
  5. 05配置权限模式

适用场景

  1. 01通过脚本自动分析代码
  2. 02在 CI/CD 任务中解析响应
  3. 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/
.gitkeep
references/
output-formats.md
integration-patterns.md
cli-options.md
scripts/
.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-formattext、json、stream-json
-r, --resume按会话 ID 恢复
-c, --continue继续最近的会话
--allowedTools以逗号分隔的允许使用的工具
--disallowedTools以逗号分隔的禁止使用的工具
--mcp-configMCP 服务配置 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