Claude Code In Action

進階 Hooks 與多型態資料流

超越 `PreToolUse` 與 `PostToolUse`,掌握 Claude Agent 的全生命週期。本指南將剖析多型態 `stdin` 的資料結構陷阱,並實作攔截除錯模式。

模組一:Agent 生命週期事件探測

請點擊上方事件節點

了解各個 Hook 在 Claude Code 運作過程中的確切攔截時機與情境。

模組二:多型態 Stdin 資料流模擬器

最令人困惑的痛點 (The Confusing Part)

開發 Hook 最大的挑戰在於:輸入到命令 (`stdin`) 的結構,會根據 Hook 類型執行的 Tool 發生劇烈變化。在未確認結構前撰寫解析邏輯,極易導致腳本崩潰。

Select Payload Scenario

stdin_payload_viewer.json

                        

模組三:萬用除錯攔截器 (The Helper Hook)

為了克服未知的資料結構,官方推薦了一個防禦性開發技巧:設定 "matcher": "*" 並利用 jq 將資料流導出。體驗下方的攔截管線:

// config.json
"PostToolUse": [
{
"matcher": "*",
"hooks": [{
"type": "command",
"command": "jq . > post-log.json"
}]
}
]
post-log.json 等待寫入...
無資料

💡 透過這層輔助 Hook,我們就能明確檢視當前環境的 JSON 結構,再回頭撰寫精確的解析邏輯,避免直接踩雷。