今天要來介紹 Claude Code 系列的第四個工具:Hooks。Hooks 除了可以幫助我們和 Claude Code pair 的更順暢之外,也能開發出一些好玩的功能。就讓我們開始今天的分享吧!
Claude Code hooks 是使用者定義的 shell 命令,在 Claude Code 生命週期的各個時間點執行。Hooks 提供對 Claude Code 行為的確定性控制,確保某些動作總是會發生,而不是依賴 LLM 選擇執行它們。
想像一下你出門的時候,是不是要自己手動關燈、關窗,檢查好都關完之後才會放心走出家門,結果電梯剛來就想起來廁所排風扇還沒關?
Claude Code Hooks 就像是智能家居一樣,可以偵測到你離開大門後自動幫你斷電,或是在你一開門的時候幫你開燈、開廁所暖氣。他可以在你和 Claude Code 互動的某些時間點,自動化的去做一些事情。
打開 Claude Code 的介面後輸入 /hooks
就可以看到以下的畫面:
縱共有 9 種 hook event:
我自己最常用的是 Notification 和 Stop。用方向鍵上下移動到你想要建立的時間點後按下 enter 就會出現這個畫面:
第一個選項是新增,如果之前有設定過的話就會出現在下方。選擇第一個選項後就會出現可以新增的畫面:
假設這是一個前端專案,你希望他在每次 Claude Code 回應完後都跑一下 TSC,這時候就可以在對話匡中輸入 npm run tsc
並按下送出後,他會詢問你要建立在哪個層級:
選擇你喜歡的層級按下 enter 後就大功告成囉!一路按下 ESC 回到原本的對話串時,隨便輸入點什麼就會看到他執行 npm 的紀錄。不過因為我示範的專案並不需要用 npm 來管理,所以可以看到他跑失敗的紀錄:
在工作上最好用的就是在 Claude Code 寫完程式碼之後跑一下測試,前端專案可以多跑 TSC 檢查型別有沒有錯誤,後端專案則是可以 Build 一下看看是不是專案都正常。
但是 Hooks 可以做的不只在工作上,下一篇文章我會教大家怎麼搭配 Mac 好用的 Raycast 套件來摩擦出新的火花喔!
你還有什麼想聽我分享的 Hooks 使用經驗呢?歡迎留言給我喔!
我們明天見 👋