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

在 tmux 或 screen 中使用 Claude Code:從 detached session 接收通知

更新於 2026年10月31日 · 閱讀時間 6 分鐘
本頁內容 01Attach 狀態:讓通知穿過 tmux 02已 attach 但在其他視窗:使用 bell 03標明是哪個 session 需要你 04Detached 狀態:你需要 push 05Claude Code Notifier 的角色 06GNU screen 07常見問題

在 tmux 裡,Claude Code 的桌面通知不會傳到外層 terminal,除非你在 ~/.tmux.conf 中加入 set -g allow-passthrough on。這樣就能解決 attach 狀態下的問題。但一旦 detach,就沒有任何 terminal 在顯示這個 session,畫面上也就無從提醒你;不過 Claude Code 仍會繼續執行,hook 也會照常觸發。想從 detached session 收到消息,請使用透過網路傳送 push(到手機或聊天 App)的 hook,而不是依賴 terminal 的 hook。

01Attach 狀態:讓通知穿過 tmux

tmux 夾在 Claude Code 與你的 terminal 之間,預設會吃掉 Claude Code 用來發送桌面通知的 escape sequence。Anthropic 的 terminal 指南提供了以下 ~/.tmux.conf 設定:

set -g allow-passthrough on
set -g focus-events on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'

套用到正在執行的 server:

tmux source-file ~/.tmux.conf

allow-passthrough 讓通知與進度更新能傳到外層 terminal,其他幾行則修正用 Shift+Enter 換行的問題。設定完成後,原本在 tmux 外就能顯示 Claude Code 通知的 terminal(Ghostty、Kitty,以及啟用警示的 iTerm2),在 tmux 裡也能顯示。

回傳 terminalSequence 的 hook 也一樣。根據 Anthropic 的 hooks 參考文件,這些 sequence 由 Claude Code 自行寫出,因此在 tmux 和 GNU screen 裡都能運作。範例請見 macOS、Linux 與 SSH 指南。

02已 attach 但在其他視窗:使用 bell

如果 Claude Code 在某個 tmux 視窗執行,而你在另一個視窗工作,bell 是個簡單的訊號。設定 Claude Code 一律發出 bell:

{
  "preferredNotifChannel": "terminal_bell"
}

接著在 ~/.tmux.conf 中讓 tmux 對它做出反應:

setw -g monitor-bell on
set -g bell-action other
set -g visual-bell off

monitor-bell(預設開啟)會標記響過 bell 的視窗,tmux 會在狀態列用 ! 標示。bell-action other 會把你目前所在視窗以外的 bell 轉給 terminal,讓 terminal 發出提示音或跳動圖示。改用 any 則連目前視窗也包含在內。將 visual-bell 設為 on 時,tmux 會改為顯示訊息,而不轉送 bell。

03標明是哪個 session 需要你

同時跑好幾個 session 時,只寫著「Claude 需要你」的通知幫助不大。hook 是在 pane 的環境中執行,因此可以向 tmux 查詢 session 和視窗名稱。這個 Linux 範例會把它們顯示在桌面通知中:

#!/bin/bash
msg=$(jq -r '.message // "Claude Code needs your attention"')
where=""
if [ -n "$TMUX_PANE" ]; then
  where=$(tmux display-message -p -t "$TMUX_PANE" '#S:#W')
fi
notify-send "Claude Code ${where}" "$msg"

將它存成 ~/.claude/hooks/notify-tmux.sh,執行 chmod +x,再設為 Notification 或 Stop hook 的指令。#S 是 session 名稱,#W 是視窗名稱;用 tmux new -s api-refactor 為 session 命名,通知就會告訴你該去哪裡。你也可以把 notify-send 換成你平台上的指令,或換成 push。多 session 指南中還有更多區分 session 的方法。

04Detached 狀態:你需要 push

Detach 正是 tmux 的重點:啟動長時間任務、detach,然後離開。Claude Code 會在 detached session 中繼續工作。但這時已經沒有 terminal 能顯示 escape sequence 或 bell;如果 tmux server 是透過 SSH 啟動的,桌面通知指令可能也無處可送。

發出網路請求的 hook 不在乎有沒有人 attach,任何 push 服務都可以。ntfy 指南以及 Telegram、Slack 與 Discord 指南都有可直接貼上的 hook。這些方式只能告訴你發生了什麼事,無法回覆 Claude,所以權限 prompt 仍會等到你用 tmux attach -t api-refactor 重新 attach 為止。

05Claude Code Notifier 的角色

Claude Code Notifier 是建構在 Claude Code hook 之上的獨立工具(由 TouchTap 開發,並非 Anthropic 出品)。它的免費命令列工具 ccn 可在 Mac、Windows 和 Linux 上執行。由於它掛在 Claude Code 上而不是 terminal 上,無論在 tmux、screen 或一般 shell,attach 或 detach,運作方式都一樣:

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

在桌機上,Claude 完成工作、需要權限或提出問題時,它會顯示桌面通知。配對手機後,同樣的事件會透過 TouchTap 的加密 relay 以 push 通知送達,來源可以是任何執行 ccn 的機器,包括你透過 SSH 連上的伺服器。

手機補上了 detached session 留下的缺口。出現權限請求時,你可以直接在手機上選擇允許一次、在本次 session 中允許或拒絕,Claude 就會繼續執行,不必重新 attach。Claude 提問時你可以選擇答案,完成工作後也能立刻送出下一個指令。如果你在最近 30 秒內有打字,就不會等待手機,terminal 會照常詢問。如果你不在電腦前,terminal 會等待手機的回覆,最長等到你設定的上限(hold_ceiling_seconds),而且只要你一碰鍵盤就會停止等待。

請參閱配對手機、離開電腦執行長時間任務與 ccn 頁面。手機 App 需要訂閱或買斷;詳見價格方案。

06GNU screen

在這方面,screen 的運作跟 tmux 差不多。Anthropic 的 hooks 參考文件指出,hook 的 terminalSequence 輸出在 screen 裡可以運作;當你沒在看的視窗響起 bell 時,screen 也會顯示訊息。Detached 的 screen session 和 detached 的 tmux 有同樣的問題:畫面上什麼都沒有,所以請使用 push。

07常見問題

為什麼 Claude Code 的通知在 tmux 裡不會顯示?

除非開啟 passthrough,否則 tmux 會擋掉 Claude Code 使用的 escape sequence。在 ~/.tmux.conf 中加入 set -g allow-passthrough on,再執行 tmux source-file ~/.tmux.conf。

從 tmux detach 之後,Claude Code 還會繼續執行嗎?

會。程序會繼續在 tmux server 中執行,hook 也會照常觸發。只有需要 attach 著 terminal 的通知才會收不到。

如何從已 detach 的 tmux session 收到通知?

使用透過網路發送 push 的 hook,例如 ntfy、聊天 webhook,或 Claude Code Notifier 的手機 App。Terminal 跳脫序列和 bell 都需要有 attach 中的 client。

不重新 attach 也能核准權限嗎?

單純的 push 服務做不到。使用 Claude Code Notifier 並配對手機後,就能直接在手機上允許或拒絕請求,已 detach 的 session 會繼續執行。

怎麼知道是哪個 tmux session 在等我?

幫 session 命名,並把名稱放進通知內容。Hook 可以用 tmux display-message -p -t "$TMUX_PANE" '#S:#W' 讀取名稱。

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

相關指南

  • 透過 SSH 接收遠端伺服器上 Claude Code 的通知在 VPS 或遠端伺服器上透過 SSH 執行 Claude Code,照樣能收到通知:使用可經由 SSH 傳回的 terminal escape sequence,或透過 ccn 推送到手機。
  • 同時執行多個 Claude Code session:如何知道哪個需要你同時執行多個 Claude Code session 或 worktree?為它們命名、在每則通知中標示專案,並把每個請求送回正確的 session。
  • 讓 Claude Code 繼續跑,人先離開:一套工作流程處理長時間 Claude Code 任務的實用流程:讓電腦保持喚醒、減少不必要的 prompt、在手機上收到通知並直接回覆。
  • 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。