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:
-
使用會話管理 在多輪對話中維護上下文
-
考慮超時 對於長時間運行的操作:
-
尊重速率限制 在進行多個請求時,通過在呼叫之間添加延遲