Claude Code
權限提示
purplemux 如何攔截 Claude Code 的「我可以執行嗎?」對話,讓你在儀表板、鍵盤或手機上核可。
Claude Code 預設會在權限對話上阻塞 — 工具呼叫、檔案寫入等等。purplemux 會在對話一出現的瞬間捕捉,並把它送到你最近能用到的裝置上。
哪些會被攔截
Claude Code 會因多種原因觸發 Notification hook。purplemux 只把兩種通知類型視為權限提示:
permission_prompt— 標準的「允許執行此工具?」對話worker_permission_prompt— 來自 sub-agent 的同類對話
其餘(閒置提醒等)在狀態端會被忽略,不會把分頁翻成 needs-input,也不會送出推播。
觸發時會發生什麼
- Claude Code 觸發
Notificationhook。~/.purplemux/status-hook.sh把事件與通知類型 POST 到本機伺服器。 - 伺服器把分頁狀態翻成 needs-input(琥珀色脈動),並透過狀態 WebSocket 廣播這項變更。
- 儀表板把提示內嵌渲染在時間軸上,附上 Claude 提供的相同選項 — 沒有 modal、沒有 context 切換。
- 如果你授予了通知權限,會針對
needs-input觸發 Web Push 與 / 或桌面通知。
Claude CLI 本身仍在等待 stdin。purplemux 從 tmux 讀取提示的選項,並在你選一個時把答案轉送回去。
如何回應
三種等價方式:
- 點擊時間軸中的選項。
- 按下數字 — 1、2、3 — 對應選項索引。
- 點選手機上的推播,會直接深層連結到該提示,從那裡選擇。
一旦你選了,purplemux 會把輸入送進 tmux,分頁會切回 busy,Claude 從中斷處繼續。你不必另外確認 — 點擊就是確認。
連續提示會自動重新讀取
如果 Claude 連續問了好幾個問題,下一個 `Notification` 一抵達時,行內提示會以新的選項重新渲染。你不必先把上一個關掉。
行動裝置流程
裝好 PWA 並授予通知權限後,無論瀏覽器分頁是開著、在背景或已關閉,Web Push 都會觸發:
- 通知內容是「Input Required」並指出工作階段。
- 點選後 purplemux 會打開並聚焦到該分頁。
- 行內提示已渲染好;一觸即可選擇。
這就是設定 Tailscale + PWA 的主要原因 — 它讓核可跟著你離開書桌也能進行。
當選項無法解析時
在罕見情況下(提示在 purplemux 讀到之前已捲出 tmux scrollback),選項清單會回傳空的。時間軸會顯示「無法讀取提示」卡片,並以 backoff 重試最多四次。如果仍失敗,請切換到該分頁的 Terminal 模式,並在原始 CLI 中回應 — 底層的 Claude 程序仍在等待。
那閒置提醒呢?
Claude 其他的通知類型 — 例如閒置提醒 — 還是會抵達 hook 端點。伺服器會記錄它們,但不會變更分頁狀態、不發推播、也不會浮現 UI 提示。這是有意為之:只有會阻塞 Claude 的事件才需要你關注。