AI 課本 › 📺 Claude Code

Claude Code 中的 Hooks

2026/05/07 · 3 分鐘 · 官方字幕實證
介紹 hooks 如何在 Claude Code 生命週期的固定時間點執行指令,一定會跑
💡 你可以怎麼用:把你老是要提醒 Claude 的事列出來(例如改完要排版、做完要通知你),挑一件在 Claude Code 輸入 /hooks 設成 hook;「不准碰某個資料夾」這類禁令就用 Pre-tool use 來擋。不會寫腳本也沒關係,可以直接請 Claude 幫你寫好 hook 設定。
看全部 18 條重點

🧑‍🏫 這支影片介紹 Claude Code 的 hooks。Claude Code 是 Anthropic 出的 AI 寫程式工具,hook 就是你事先設好「某個時間點一到,就自動跑某個指令」。它和平常用文字交代 AI 最大的不同是:hook 保證每次都會執行,不靠 AI 記得。想把某些規則定死的人,很值得看。

📘 術語
Hook(掛鉤):在 Claude Code 生命週期的不同時間點執行指令的機制,每次都一定會執行
Deterministic(確定性的):一定會執行、沒有例外;相對於寫在 claude.md 裡的指示,Claude 有時不會照做
Life cycle(生命週期):Claude Code 運作過程中的各個時間點,hooks 可以掛在這些時間點上執行
claude.md(claude.md 檔案):可以在裡面寫指示要 Claude 做事,但不保證每次都照做
settings.json(設定檔):設定 hooks 的檔案;放在 .Claude/settings.json 屬於專案層級,可以 check in 進 repo
Matcher(比對條件):非必填的設定,指定 hook 套用在哪個工具上,例如 edit 或 multi-edit
Event(事件):hook 觸發的時間點,例如 User prompt submit、Pre-tool use、Post-tool use、Notification、Stop
Pre-tool use(工具呼叫前):在工具呼叫前執行的事件,可以把工具呼叫擋下來
Post-tool use(工具呼叫後):在工具呼叫完成後執行的事件,適合拿來自動排版和記錄
Formatter(排版工具):依副檔名自動排版程式碼的工具,例如 prettier、Go format、Ruff
stdin(標準輸入):Pre-tool use hook 從這裡收到 JSON 格式的工具名稱和輸入內容
Exit code(結束代碼):hook 結束時回傳的代碼:0 代表繼續執行,2 代表封鎖
stderr(標準錯誤輸出):被封鎖時,這裡的訊息會回傳給 Claude 當作回饋,讓它知道原因並調整
Environment variable(環境變數):用 Claude project dir 環境變數指向專案裡的腳本,不受目前工作目錄影響
✏️ 小考一題

Pre-tool use hook 要用哪個 exit code 結束,才能擋下這次工具呼叫,並把 stderr 訊息回傳給 Claude?

A. 1B. 2C. -1D. 0
看答案
答案:B。字幕 [01:34] 說 hook 以 exit code 2 結束時動作會被封鎖,stderr 訊息會回傳給 Claude;[02:05] 再強調 exit code 0 代表繼續執行,exit code 2 代表封鎖。
📺 看原片📚 在課本 App 讀
💛 覺得有幫助?支持一下台灣Pay 銀行轉帳 QRPayPal QR
課本免費、沒有廣告,支持與否都能照常讀 🐰

重點整理自 YouTube 影片字幕,每條附時間碼可跳回原片;🧑‍🏫/↳ 是 Claude 補充的白話,不是影片原話。