claude-code-notifier
運作方式 指南 常見問題
◐繁體中文
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
開始使用
所有指南

如何在 Claude Code 完成時收到通知

更新於 2026年10月31日 · 閱讀時間 7 分鐘
本頁內容 01Claude Code 內建的行為 02你需要的兩個 hook 03macOS 上可用的設定 04在 Linux 和 Windows 上做同樣的設定 05確認是否正常運作 06在手機上接收通知 07常見問題

若要在 Claude Code 完成時收到通知,請在 ~/.claude/settings.json 中加入一個 Stop hook,執行系統的通知指令。Stop 會在 Claude 回應結束的當下觸發。若想在「Claude 需要我輸入」時收到通知,再加一個 Notification hook:權限提示等待約六秒,或 Claude 閒置約一分鐘時就會觸發。兩者在 Mac、Windows 和 Linux 上都能用,而 Claude Code Notifier 這類工具還能把同樣的通知傳到你的手機。

01Claude Code 內建的行為

當你似乎不在 terminal 前時,Claude Code 本身就會試著提醒你。預設情況下,它在 iTerm2、Ghostty 和 Kitty 中會送出桌面通知,在 Apple Terminal 中可能會發出 bell 字元,在其他 terminal 則什麼都不做。iTerm2 還必須先開啟提醒設定才會顯示。

所以如果你用的是 VS Code 內建 terminal、Warp、Windows Terminal 或大多數 Linux terminal,通常什麼都收不到。你可以用 preferredNotifChannel 設定強制使用 terminal bell,詳見terminal bell 指南。若要在任何 terminal 中都有真正的桌面通知,就需要 hook。

02你需要的兩個 hook

Hook 是 Claude Code 在工作階段中固定時間點執行的指令。這裡會用到其中兩個:

Hook觸發時機用途
StopClaude 回應結束時(你中斷它時不會觸發)「Claude 已完成」
Notification,matcher 為 permission_prompt權限提示已等待約六秒,且你沒有輸入任何內容「Claude 需要核准」
Notification,matcher 為 idle_promptClaude 完成後約 60 秒,期間你都沒有輸入提醒你輪到你了

Stop 是最快的,每一輪結束就立刻執行。Notification 類型則只在你離開時才會觸發:每次按鍵都會延後它,所以你盯著畫面時不會被打擾。如果想在 Claude 要求權限的當下就收到訊號,請改用 PermissionRequest hook,詳見PermissionRequest 指南。

想了解 hook 的整體運作方式(事件、matcher、設定檔、結束代碼),請參閱 Claude Code hook 詳解。

03macOS 上可用的設定

開啟 ~/.claude/settings.json(不存在就新建一個),加入以下內容。如果檔案中已有 hooks 物件,請把 Stop 和 Notification 作為鍵加進去,而不是整個取代。

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude has finished\" with title \"Claude Code\"'"
          }
        ]
      }
    ],
    "Notification": [
      {
        "matcher": "permission_prompt|idle_prompt",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

Stop 沒有 matcher,所以每一輪都會觸發。Notification 的 matcher 則把它限制在代表「該回來了」的兩種類型。

如果什麼都沒出現,可能是 macOS 擋掉了 Script Editor,而 osascript 是透過它來顯示通知的。先在 Terminal 執行一次 osascript -e 'display notification "test"',再開啟 系統設定 > 通知,找到 Script Editor 並開啟 允許通知。

04在 Linux 和 Windows 上做同樣的設定

保留上面的 JSON 結構,只要替換 command 字串即可。

Linux(需要桌面通知 daemon,因此無法用在 headless 伺服器上):

"command": "notify-send 'Claude Code' 'Claude has finished'"

如果沒有 notify-send,在 Debian 和 Ubuntu 上請安裝 libnotify-bin,其他發行版則安裝對應的套件。SSH 和伺服器環境請參考透過 SSH 接收通知。

Windows(PowerShell)。Anthropic 官方範例會開啟一個訊息方塊,而不是角落的 toast 通知:

"command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude has finished', 'Claude Code')\""

這個方塊可能會出現在 terminal 視窗後面,所以請先在 PowerShell 中測試指令。在 WSL 下,必須能透過 Windows interop 呼叫 powershell.exe。其他做法請參考Windows 指南。

05確認是否正常運作

  1. 在 Claude Code 中輸入 /hooks,應該會看到你的 hook 列在 Stop 和 Notification 底下。
  2. 問 Claude 一個簡短的問題。它回覆時,應該會跳出 Stop 通知。
  3. 請它做一件需要權限的事,接著切換到其他視窗等待。大約六秒後會收到 permission_prompt 通知。

對 settings.json 的修改通常會立即生效。如果 /hooks 中沒有出現某個 hook,請檢查檔案是否為有效的 JSON(不能有結尾逗號,也不能有註解)。用 claude --debug 啟動 Claude Code,就能看到每個 hook 執行了什麼。更多解法請見疑難排解清單。

06在手機上接收通知

桌面通知只有在你坐在電腦前時才有用。一旦離開座位,就需要把通知送到別的地方。常見的做法有三種:

  • 自行架設的 push 服務,例如 ntfy,在同樣的 hook 中用 curl 呼叫。便宜又有彈性。請參考 ntfy 指南。
  • 聊天 webhook,支援 Telegram、Slack 或 Discord。如果你本來就整天掛在聊天軟體上,這很適合。請參考聊天 webhook 指南。
  • Claude Code Notifier,幫你處理好 hook,還能直接從手機回覆。

如果只是想收到提醒,自己動手的做法就很夠用。它們的限制在於只能單向通知:你知道 Claude 在等你,但還是得回到鍵盤前才能核准任何操作。

Claude Code Notifier 是獨立工具(並非 Anthropic 出品),由兩部分組成:ccn,一個支援 Mac、Windows 和 Linux 的免費命令列工具,以及 iPhone 和 Android app。只要一行指令就能安裝:

curl -fsSL https://claudecodenotifier.com/install.sh | sh

在 Windows 上,請在 PowerShell 中執行 irm https://claudecodenotifier.com/install.ps1 | iex(Windows 支援目前為 beta)。其他安裝方式,包括 Homebrew、npx @touchtap/ccn 和 Claude Code 外掛,請見 ccn 頁面。

安裝時會新增七個各自執行 ccn hook 的 hook 項目,settings.json 其餘內容維持不變,並在旁邊存一份一次性備份。即使完全沒有手機,ccn 也會在 Claude 完成、需要權限或提出問題時,在電腦上顯示桌面通知。這部分免費,而且不需要網路。

用 ccn pair 配對手機後,還能獲得:

  • 回合一結束就收到「Claude 已完成」的 push 通知;
  • 權限請求可以選擇允許一次、在本次工作階段中允許,或拒絕;
  • 直接在手機上回答 Claude 的選擇題;
  • 在 Claude 完成後,立刻透過後續輸入框送出下一個指示。

如果你在過去 30 秒內有打字,就不會等待手機回應,terminal 會照常詢問。app 需要訂閱或買斷,請見價格方案。設定步驟請參考配對手機。

07常見問題

為什麼我的 Notification hook 要等很久才觸發?

permission_prompt 類型會等到 prompt 顯示約六秒且你都沒有輸入才觸發,idle_prompt 則會在 Claude 完成約 60 秒後才觸發。這個延遲是刻意設計的,避免你正盯著畫面時還被打擾。想要即時的「已完成」通知,請用 Stop hook;想要即時的「需要核准」通知,請用 PermissionRequest hook。

如果我按 Esc 中斷 Claude,Stop hook 會觸發嗎?

不會。因為你中斷而結束的回合不會執行 Stop。回合因 API 錯誤(例如 rate limit)而結束時也不會執行。這種情況 Claude Code 會另外觸發 StopFailure 事件,你可以用同樣的方式掛 hook。

Stop hook 會在每則訊息後觸發,還是只在整個任務完成時觸發?

每個回合結束後都會觸發。Claude Code 無法得知你的整體任務何時完成,只知道它何時停止回應。如果你們來回對話很多次,每次回覆都會收到一則通知。覺得太多的話,可以改用 idle_prompt 通知,它只會在你離開約一分鐘後才觸發。

在 VS Code 或 JetBrains 的 terminal 中也能用嗎?

可以。hook 是由 Claude Code 本身執行,而不是由 terminal 執行,所以在任何 terminal 中都能運作,包括 IDE 內建的 terminal。會受 terminal 影響的是內建通知。請參考 IDE terminal 指南。

不在手機上安裝任何東西,也能收到通知嗎?

部分可以。發送到 ntfy 或聊天 webhook 的 hook,可以把通知送到你手機上現有的 app,但只能告訴你發生了什麼事。若要在手機上核准或回答,就需要能把你的回覆傳回 hook 的工具,這正是 Claude Code Notifier app 的功能。

Claude Code Notifier Claude Code 完成或需要你處理時,手機會收到 push 通知,並可直接在手機上核准、拒絕或回覆。ccn 命令列工具在 Mac、Windows 和 Linux 上皆可免費使用。
下載 iOS 版 下載 Android 版 安裝 ccn

相關指南

  • Claude Code 的 Stop hook:在 Claude 完成時執行指令說明 Claude Code 的 Stop hook 如何運作、會收到哪些輸入、如何在 Claude 完成時執行指令,以及如何安全地讓 Claude 繼續工作。
  • Claude Code 的 Notification hook:觸發時機與使用方式Claude Code 的 Notification hook 何時觸發、permission_prompt 和 idle_prompt 代表什麼、它收到的輸入,以及為何會延遲觸發。
  • Claude Code hook 完整解析:每個事件及其用途介紹 Claude Code hook 是什麼、要寫在 settings.json 的哪裡、matcher、輸入與 exit code 如何運作,以及每個 hook 事件的用途。
  • Claude Code 內建通知:terminal bell 與 preferredNotifChannel說明 Claude Code 內建提醒的運作方式、preferredNotifChannel 各個值的作用,以及如何設定 iTerm2、Apple Terminal、Kitty、Ghostty 和 tmux。
claude-code-notifier

Claude Code Notifier 為獨立的第三方應用程式,與 Anthropic, PBC 並無關聯,亦未獲其背書或贊助。「Claude」及「Claude Code」為 Anthropic, PBC 之商標。

App iOS App Android App ccn(macOS、Windows、Linux) 所有指南
法律資訊 隱私權政策 服務條款 其他語言 © 2026 touchtap. 保留所有權利。 TouchTap Ltd 註冊於英格蘭和威爾斯,公司編號 13942589。