跳至主要內容
Vibe Console

Claude Code 完成通知設定:Mac 上跑完自動提醒

Claude Code 或 Codex 跑完、需要你輸入時跳出 macOS 通知:Claude Code hooks、Codex notify,或 Vibe Console 內建提示音。

Nes

Nes

@nesdesignco

· 閱讀時間 5 分鐘

MacBook 瀏海顯示「Claude Code 已完成」終端機 2,下方的終端機分頁有執行中、閒置與等待中的狀態圓點

把任務丟給 Claude Code、自己去做別的事,本來就是長時間跑 Agent 的意義。問題是什麼時候該回來看。看太勤,省下的時間又賠回去;看太晚,Agent 可能從第二分鐘就在等你授權。

在 Mac 上有三種解法,從自己動手寫 hook 到直接用內建功能都有。

有兩個時間點要知道

不管用哪種方法,你都會想在兩個不同的時刻收到提醒:

  1. 完成。 Agent 跑完這一輪,在等你的下一則訊息。
  2. 需要輸入。 Agent 在任務中途停下來,通常是要你允許它執行指令或修改檔案。

第二種更重要。卡在權限提示的 Agent,進度是零。

方法一:Claude Code hooks

Claude Code 可以在特定事件發生時執行 shell 指令。有兩個 hook 事件剛好對應上面兩個時刻:

  • Stop:Claude 回應完畢時執行。
  • Notification:Claude 需要你注意時執行,例如請求權限,或等你輸入等了很久。

把它們加到 ~/.claude/settings.json(所有專案)或某個專案裡的 .claude/settings.json。下面的範例用的是 macOS 內建的 osascript:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Task finished\" with title \"Claude Code\" sound name \"Glass\"'"
          }
        ]
      }
    ],
    "Notification": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Waiting for your input\" with title \"Claude Code\" sound name \"Funk\"'"
          }
        ]
      }
    ]
  }
}

重新啟動 Claude Code,跑個短任務測試一下。第一次執行時,macOS 可能會詢問是否允許「工序指令編寫程式」顯示通知。

這個做法的限制: 通知不會告訴你是哪個專案或哪個終端機,點下去也不會帶你過去,而且其他 Agent 都得各自設定一次。最新的事件清單請看 Claude Code hooks 文件。

方法二:Codex notify

Codex CLI 可以在每一輪 Agent 執行完後跑一支程式。在 ~/.codex/config.toml 裡把 notify 設成一個指令,Codex 會把事件的 JSON 描述傳給它:

notify = ["osascript", "-e", "display notification \"Codex finished\" with title \"Codex\""]

較新的 Codex 版本也支援 hooks,包含 Stop 事件,可以在 hooks.json 或 config.toml 的 [hooks] 表格中設定。各版本的選項不太一樣,請查看對應版本的 Codex hooks 文件。

方法三:Vibe Console 內建

Vibe Console 會替你盯著每個 Agent 終端機,支援全部八種 Agent,不用任何設定:

  • 每個分頁都有狀態圓點,顯示 Agent 是執行中還是閒置,一整片格狀排列的 Agent 狀態一眼就懂。
  • Agent 完成時,App 會播放音效(預設是 Glass),並短暫展開 MacBook 瀏海到那個工作階段,顯示是哪個 Agent、哪個終端機。
  • Agent 停下來等你時,會播放另一個音效(預設是 Funk),不用看螢幕就能分辨是「做完了」還是「卡住了」。
  • 兩種音效都能自訂,也可以關掉。

當 Claude Code 或 Codex 的用量在某個週期內超過 80% 和 100% 時,它也會發 macOS 通知。請看 Claude Code 用量上限。

同時跑好幾個 Agent 時最有感。請看 如何平行執行多個 Claude Code Agent。

該用哪一種?

Hooks / notify Vibe Console
費用 免費 包含在 App 內
設定 每個 Agent 各自設定,JSON 或 TOML 不用設定
能分辨完成與卡住 可以,要設兩個 hook 可以,兩種音效
顯示是哪個終端機 不行 可以,在瀏海裡
八種 Agent 都適用 只限有 hooks 的 是

如果一次只跑一個 Claude Code 工作階段,hooks 就夠用了。如果你在多個專案裡跑好幾個 Agent,一個認得每個終端機的工作區最能省時間。

常見問題

為什麼我的 Claude Code hook 沒有觸發?

確認 JSON 格式正確、檔案放在對的位置,而且有重新啟動 Claude Code。也可以在終端機裡單獨執行那行 osascript 指令,確認通知權限有打開。

可以把通知推到手機上嗎?

Hooks 可以呼叫任何指令,包括推播服務。Claude Code 也支援從它的行動 App 遠端控制,離開座位也能查看工作階段。

免費試用內建提示音 14 天:下載 Vibe Console。

給你的 Agent 一個視窗。

免費試用 14 天,之後 每月 $4.99 或每年 $39.99。