概述
無頭模式允許您從命令列腳本和自動化工具以程式方式執行 Claude Code,無需任何互動式 UI。基本用法
Claude Code 的主要命令列介面是claude 命令。使用 --print(或 -p)旗標以非互動模式執行並列印最終結果:
配置選項
無頭模式利用 Claude Code 中所有可用的 CLI 選項。以下是用於自動化和腳本編寫的關鍵選項:| 旗標 | 描述 | 範例 |
|---|---|---|
--print, -p | 以非互動模式執行 | claude -p "query" |
--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 "Custom instruction" |
--allowedTools | 以空格分隔的允許工具清單,或 以逗號分隔的允許工具清單字串 | claude --allowedTools mcp__slack mcp__filesystemclaude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | 以空格分隔的拒絕工具清單,或 以逗號分隔的拒絕工具清單字串 | claude --disallowedTools mcp__splunk mcp__githubclaude --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:
- 使用工作階段管理以在多輪對話中維持上下文
-
考慮長時間執行操作的逾時:
- 在進行多個請求時尊重速率限制,透過在呼叫之間新增延遲