Claude Code Hooks 與自動化指南:事件驅動的 AI 工作流完全教學
Claude Code Hooks 完全教學,學會用事件驅動機制自動觸發 Shell 指令,搭配 Skills 建立強大的自動化工作流,附 8 個實用 Hook 範例。
最後更新:2026-05-26
目錄
1. 什麼是 Hooks?跟 Skills 有什麼不同?
Skills 是你主動觸發的指令(/do-something),Hooks 是被動觸發的自動化——當某個事件發生時,系統自動執行你預設的指令。兩者搭配使用,就像「Skills 是引擎,Hooks 是自動駕駛」。
-
Skills:使用者主動觸發(輸入 /指令 或自然語言)→ Claude 執行預設流程
-
Hooks:事件自動觸發(工具被呼叫、訊息送出、指令完成等)→ 系統自動執行 Shell 指令
-
組合威力:/Deploy Skill 執行部署 → 部署完成 → Hook 自動跑 Smoke Test → Smoke Test 通過 → Hook 發 Slack 通知
2. Hook 事件類型
Claude Code 支援多種事件類型,每種事件可以綁定不同的 Hook。
| 事件 | 觸發時機 | 常見用途 |
|---|---|---|
| PreToolUse | 工具呼叫前 | 攔截危險操作、確認檔案變更 |
| PostToolUse | 工具呼叫後 | 自動格式化、Log 記錄 |
| UserPromptSubmit | 使用者送出訊息時 | 訊息預處理、自動帶入上下文 |
| Stop | Claude 完成回應時 | 自動通知、產出摘要 |
| SessionStart | 對話開始時 | 環境初始化、載入上下文 |
3. 設定方式:settings.json
Hooks 設定在 Claude Code 的 settings.json 中。可以用 /update-config 指令設定,或手動編輯。
-
設定檔位置:~/.Claude/Settings.Json(全域)或 .Claude/Settings.Json(專案層級)
-
基本結構:Hooks 物件下按事件類型分組,每個事件可綁定多個 Hook
-
每個 Hook 包含:Type(Command)、Command(要執行的 Shell 指令)、Description(說明)
-
可選欄位:Matcher(只對特定工具名稱觸發)、Timeout(超時設定)
-
優先順序:專案層級的設定會覆蓋全域設定
小提示
- 建議用 /update-config 指令設定,它會自動處理 JSON 格式和路徑問題
- 修改 settings.json 後不需要重啟 Claude Code,設定會立即生效
4. 範例 1-3:開發流程自動化
最常用的開發流程 Hook。
-
範例 1 — 檔案修改後自動 Lint:Posttooluse + Matcher: Write/Edit → 執行 Eslint --Fix 或 Black 自動格式化剛修改的檔案
-
範例 2 — 對話開始時載入專案狀態:Sessionstart → 執行 Git Status 和 Docker Ps,把結果帶入對話上下文
-
範例 3 — 危險操作前攔截:Pretooluse + Matcher: Bash → 檢查指令是否包含 Rm -Rf、Git Push --Force 等危險操作,有的話阻止執行
5. 範例 4-6:品質保證自動化
讓品質檢查自動融入工作流程。
-
範例 4 — 提交前自動跑測試:Pretooluse + Matcher: Bash(當指令包含 Git Commit)→ 先跑 Pytest,測試通過才允許提交
-
範例 5 — 翻譯安全檢查:Posttooluse + Matcher: Write(當修改 .Po 或 Locale 檔案)→ 自動執行 Python3 Scripts/Check_Translations.Py --Js-Safety
-
範例 6 — Json 修改後自動驗證:Posttooluse + Matcher: Write(當修改 Data/Guides/ 下的檔案)→ 自動執行 ./Scripts/Validate_Json.Sh
6. 範例 7-8:通知與記錄
讓團隊自動收到進度更新。
-
範例 7 — 完成後自動通知:Stop → 把 Claude 的最後回應摘要發到 Slack 或 Telegram,讓團隊成員知道任務完成
-
範例 8 — 操作記錄:Posttooluse → 把每次工具呼叫的類型和參數記錄到 Log 檔案,方便事後追蹤「Claude 做了什麼」
7. Hooks + Skills 組合模式
Hooks 和 Skills 組合使用能創造強大的自動化工作流。以下是三種常見的組合模式。
-
模式 1 — 前置檢查:Hook(Pretooluse)確認環境正常 → Skill 執行主要工作。例如部署前 Hook 檢查 Ci 是否通過
-
模式 2 — 後處理鏈:Skill 完成主要工作 → Hook(Stop)自動執行後處理。例如 /Content-Pipeline 建立內容後,Hook 自動 Commit 並通知
-
模式 3 — 品質門禁:Skill 修改程式碼 → Hook(Posttooluse)自動跑 Lint 和測試 → 全部通過才繼續。確保 Ai 產出的程式碼符合品質標準
小提示
- 不要在 Hook 中做太重的工作。Hook 應該快速完成(幾秒內),耗時的工作用 Skill 處理
- Hook 失敗會阻擋 Claude 的操作。確保 Hook 指令是可靠的,避免誤阻擋
8. 除錯與最佳實踐
Hook 設定出問題時的排查方法和設計建議。
-
Hook 沒觸發:確認事件類型和 Matcher 是否正確。用 Echo 指令測試 Hook 是否被呼叫
-
Hook 阻擋了操作:檢查 Hook 的 Exit Code。非零的 Exit Code 會阻止操作
-
Hook 太慢:加入 Timeout 設定,避免 Hook 卡住整個工作流。預設超時 60 秒
-
最佳實踐 1:Hook 指令保持簡單——一個 Hook 做一件事
-
最佳實踐 2:用 Description 清楚說明 Hook 的用途,方便團隊成員理解
-
最佳實踐 3:先在個人設定中測試,確認無誤後再推到專案設定
-
最佳實踐 4:敏感操作(如自動 Push、自動部署)的 Hook 要特別謹慎,建議加入確認步驟
重點整理
- 1 Hooks 是 Claude Code 的事件驅動機制——當特定事件發生時,自動執行你預設的 Shell 指令
- 2 搭配 Skills 使用,可以建立「觸發 Skill → 執行完成 → Hook 自動後處理」的完整自動化鏈
- 3 常見應用:提交前自動 lint、工具呼叫前確認、完成後自動通知
- 4 設定在 settings.json 中,不需要修改程式碼,純設定驅動
相關懶人包
2026 AI Agent 完整指南:從 Copilot 到自主代理人,讓 AI 替你完成整個任務
AI Agent 是 2026 最火紅的技術趨勢。本文帶你搞懂 Agent 和 Copilot 的差別、主流框架、實用場景與風險控管,讓你真正把 AI 從助手變成同事。
2026 AI 工具實用指南:提升工作與生活效率的 10 大應用
從 ChatGPT 到 Claude,全面解析 2026 年最實用的 AI 工具,幫你省時間、提效率、做更好的決策
2026 AI 工具推薦:10 個提升工作效率的免費 AI 神器
精選 2026 年最實用的 10 款免費 AI 工具,涵蓋 ChatGPT、Gemini、Claude、Midjourney 等,從文字寫作到圖片生成,全面提升工作效率的完整指南
一般聲明
本站提供之資訊僅供參考,不保證其完整性與正確性。使用者應自行判斷資訊之適用性。