概述
無頭模式允許您從命令列腳本和自動化工具以程式化方式運行 Claude Code,無需任何互動式 UI。基本用法
Claude Code 的主要命令列介面是claude
命令。使用 --print
(或 -p
)標誌以非互動模式運行並列印最終結果:
配置選項
無頭模式利用 Claude Code 中所有可用的 CLI 選項。以下是自動化和腳本編寫的關鍵選項:標誌 | 描述 | 範例 |
---|---|---|
--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 |
多輪對話
對於多輪對話,您可以恢復對話或從最近的會話繼續:輸出格式
文字輸出(預設)
JSON 輸出
返回包含元資料的結構化資料:串流 JSON 輸出
在接收到每個訊息時串流:init
系統訊息開始,接著是使用者和助理訊息清單,最後是包含統計資料的最終 result
系統訊息。每個訊息都作為單獨的 JSON 物件發出。
輸入格式
文字輸入(預設)
串流 JSON 輸入
透過stdin
提供的訊息串流,其中每個訊息代表一個使用者輪次。這允許多輪對話而無需重新啟動 claude
二進位檔案,並允許在模型處理請求時提供指導。
每個訊息都是一個 JSON「使用者訊息」物件,遵循與輸出訊息架構相同的格式。訊息使用 jsonl 格式格式化,其中每行輸入都是一個完整的 JSON 物件。串流 JSON 輸入需要 -p
和 --output-format stream-json
。
代理整合範例
SRE 事件回應機器人
自動化安全審查
多輪法律助理
最佳實務
-
使用 JSON 輸出格式 進行回應的程式化解析:
-
優雅地處理錯誤 - 檢查退出代碼和 stderr:
- 使用會話管理 在多輪對話中維護上下文
-
考慮超時 對於長時間運行的操作:
- 尊重速率限制 在進行多個請求時,透過在呼叫之間添加延遲