前言
在使用 Claude Code 時,如果你跟我一樣習慣同時開多個 session,在不同終端機之間來回切換,很容易就會忘記某個 session 還在等你回應,結果 Claude 就默默停在那邊空等。
更麻煩的是,只要你一離開終端機視窗,幾乎不可能即時注意到它正在等確認,常常一回來才發現已經浪費了不少時間。
這篇文章要分享的是:如何透過 Hook 搭配 macOS 原生通知,讓 Claude Code 一需要你的確認,就立刻跳出系統通知提醒你。就算你切到其他 App、甚至不在 Terminal 前,也不會再錯過任何重要互動。
前置需求
安裝必要工具
首先需要安裝兩個命令列工具:
brew install jq terminal-notifier
| 工具 | 用途 |
|---|---|
| jq | 解析 JSON |
| terminal-notifier | 發送 macOS 通知 |
設定 Hook
接著就是設定 Hook 了,編輯 ~/.claude/settings.json,加入以下設定:
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "jq -r '.message // \"需要您的確認\"' | xargs -0 terminal-notifier -title 'Claude Code' -message $1 -sound Glass"
}
]
}
]
}
}
值得注意的選項如下:
| 參數 | 說明 |
|---|---|
-title 'Claude Code' | 通知標題 |
-sound Glass | 播放 Glass 音效 |
自訂選項
如果你想更換音效,可以把 Glass 換成其他系統音效名稱:
-sound Ping-sound Pop-sound Submarine
想要靜音的話,直接移除 -sound Glass 就可以了。
測試
設定完成後,可以手動測試一下:
terminal-notifier -title 'Claude Code' -message '測試通知' -sound Glass
如果看到通知彈出,就代表設定成功了!

疑難排解
沒有收到通知
- 確認沒有啟用勿擾模式
- 確認工具已安裝:
which jq terminal-notifier - 檢查 System Settings → Notifications → terminal-notifier 權限是否 Allow notifications

總結
設定完成後,之後 Claude Code 需要你的注意時,就會自動跳出 macOS 原生通知了,再也不用擔心錯過重要提示。整個設定流程基本上 5 分鐘內就能搞定,推薦大家都設定一下!