Claude 代码 SDK
无头模式
以编程方式运行 Claude Code,无需交互式 UI
概述
无头模式允许您通过命令行脚本和自动化工具以编程方式运行 Claude Code,无需任何交互式 UI。
基本用法
Claude Code 的主要命令行界面是 claude
命令。使用 --print
(或 -p
)标志以非交互模式运行并打印最终结果:
配置选项
SDK 利用 Claude Code 中可用的所有 CLI 选项。以下是 SDK 使用的关键选项:
标志 | 描述 | 示例 |
---|---|---|
--print , -p | 以非交互模式运行 | claude -p "查询" |
--output-format | 指定输出格式(text 、json 、stream-json ) | claude -p --output-format json |
--resume , -r | 通过会话 ID 恢复对话 | claude --resume abc123 |
--continue , -c | 继续最近的对话 | claude --continue |
--verbose | 启用详细日志记录 | claude --verbose |
--append-system-prompt | 附加到系统提示(仅与 --print 一起使用) | claude --append-system-prompt "自定义指令" |
--allowedTools | 允许工具的空格分隔列表,或 允许工具的逗号分隔列表字符串 | claude --allowedTools mcp__slack mcp__filesystem claude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | 拒绝工具的空格分隔列表,或 拒绝工具的逗号分隔列表字符串 | claude --disallowedTools mcp__splunk mcp__github claude --disallowedTools "Bash(git commit),mcp__github" |
--mcp-config | 从 JSON 文件加载 MCP 服务器 | claude --mcp-config servers.json |
--permission-prompt-tool | 用于处理权限提示的 MCP 工具(仅与 --print 一起使用) | claude --permission-prompt-tool mcp__auth__prompt |
有关 CLI 选项和功能的完整列表,请参阅 CLI 参考 文档。
多轮对话
对于多轮对话,您可以恢复对话或从最近的会话继续:
输出格式
文本输出(默认)
JSON 输出
返回包含元数据的结构化数据:
响应格式:
流式 JSON 输出
在接收到每条消息时流式传输:
每个对话都以初始的 init
系统消息开始,然后是用户和助手消息列表,最后是包含统计信息的最终 result
系统消息。每条消息都作为单独的 JSON 对象发出。
输入格式
文本输入(默认)
流式 JSON 输入
通过 stdin
提供的消息流,其中每条消息代表一个用户轮次。这允许在不重新启动 claude
二进制文件的情况下进行多轮对话,并允许在模型处理请求时向其提供指导。
每条消息都是一个 JSON ‘用户消息’ 对象,遵循与输出消息模式相同的格式。消息使用 jsonl 格式进行格式化,其中输入的每一行都是一个完整的 JSON 对象。流式 JSON 输入需要 -p
和 --output-format stream-json
。
代理集成示例
SRE 事件响应机器人
自动化安全审查
多轮法律助手
最佳实践
-
使用 JSON 输出格式 进行响应的程序化解析:
-
优雅地处理错误 - 检查退出代码和 stderr:
-
使用会话管理 在多轮对话中维护上下文
-
考虑超时 对于长时间运行的操作:
-
遵守速率限制 在进行多个请求时,通过在调用之间添加延迟