你之所以能從手機核准 Claude Code 的權限請求,是因為 Claude Code 在顯示權限 prompt 前會先執行 PermissionRequest hook,而這個 hook 可以直接回傳決定。只要有工具把請求送到你的手機、等你點選,再回傳 allow 或 deny,你就能在任何地方回應。Claude Code Notifier 透過小巧的命令列工具 ccn(支援 Mac、Windows 和 Linux),搭配 iPhone 或 Android app 來做到這點。
01為什麼權限 prompt 會卡住你的工作
在預設權限模式下,Claude Code 在執行大多數 shell 指令、編輯檔案或抓取網頁前都會先詢問。prompt 會停在 terminal 裡,直到有人回應。如果你剛好去泡咖啡,整個任務就會卡在這個問題上,等你回來才會發現。
有三種方法可以解決:
- 減少核准次數。為你信任的指令加上 allow 規則,或改用較寬鬆的模式。這適合例行工作,詳見Claude Code 權限模式說明。
- 收到通知,再走回去。通知 hook 會告訴你有 prompt 在等待,但你還是得回到鍵盤前。
- 遠端回覆。
PermissionRequesthook 會把問題送到你的手機,再把你的回覆傳回 Claude Code。
本指南介紹的是第三種做法。
02PermissionRequest hook 如何替你回覆
當工具呼叫需要權限決定時,Claude Code 會觸發 PermissionRequest。hook 會從標準輸入收到 JSON,內含 tool_name 與 tool_input(例如 Bash 指令),以及選用的 permission_suggestions,也就是 Claude Code 會建議儲存的規則清單。
hook 會輸出像這樣的 JSON 來回覆:
{
"hookSpecificOutput": {
"hookEventName": "PermissionRequest",
"decision": {
"behavior": "allow"
}
}
}
behavior 的值為 allow 或 deny。拒絕時可以加上 message 告訴 Claude 原因,也可以加上 interrupt: true 讓 Claude 完全停止。允許時,updatedPermissions 可套用權限規則,之後就不會再問。如果 hook 沒有回傳任何內容,Claude Code 會顯示平常的提示。
所以遠端核准 hook 要做三件事:把請求送到你看得到的地方、等待回覆,並在 hook 逾時前輸出正確的 JSON。完整欄位清單與可用的腳本請見用 hook 回覆權限請求。
註冊 hook
hook 設定放在 ~/.claude/settings.json(套用到所有專案)或 .claude/settings.json(只套用到單一專案):
{
"hooks": {
"PermissionRequest": [
{
"matcher": "*",
"hooks": [
{ "type": "command", "command": "/path/to/your-approval-script" }
]
}
]
}
}
matcher 會依工具名稱過濾,所以設成 "Bash" 就只會把 shell 指令送到手機。指令 hook 預設逾時為 600 秒,這也是 hook 最多能等你的時間。
03自己動手做
自製版本是可行的。常見的設計是把請求發到 ntfy 之類的 push 服務,附上兩個會回呼小型 web 端點的動作按鈕,再讓 hook 輪詢該端點,直到收到回覆或計時結束。發送的部分請參考 使用 ntfy 接收 Claude Code push 通知。
真正花時間的是各種邊界情況:
- 你就在鍵盤前。如果 hook 一律等手機回覆,等待期間你就無法在 terminal 裡回答。好的 hook 會偵測到你在場並自動讓開。
- 逾時。hook 必須在 Claude Code 逾時前放棄,並乾淨地退回原本流程。
- 信任。任何能連到你回呼端點的人,都能核准在你電腦上執行的指令,因此必須加上驗證。
- 多個工作階段。每個請求都必須送達正確的工作階段,回覆也要回到同一個工作階段。
如果你喜歡動手做,這會是不錯的週末專案。如果想今天就能用,現成工具可以省下這些功夫。
04使用 Claude Code Notifier
Claude Code Notifier 是由 TouchTap Ltd 開發的獨立工具,並非 Anthropic 所開發,也與其無關。它分成兩部分:ccn 是免費的命令列工具,支援 Mac、Windows 和 Linux;另外還有 iPhone 與 Android 手機 App。
1. 安裝 ccn
在 Mac 與 Linux 上:
curl -fsSL https://claudecodenotifier.com/install.sh | sh
在 Windows 上,於 PowerShell 執行(Windows 支援目前為 beta):
irm https://claudecodenotifier.com/install.ps1 | iex
Homebrew、npm 與外掛的安裝方式列在 ccn 頁面。安裝時會在 ~/.claude/settings.json 加入七個 hook 項目,每個都執行 ccn hook,並保留原檔備份。其中一個就是 PermissionRequest hook。Claude Code 呼叫 ccn 時,它只會執行幾毫秒就結束,不會在背景常駐,而且在任何 terminal 都能用,包括 IDE 內建的 terminal。
2. 配對手機
執行 ccn pair 並掃描 QR code,或在 App 中輸入 6 位數代碼。各作業系統的詳細步驟請見將手機連接到 Claude Code。
3. 直接從通知回覆
當 Claude 需要權限而你不在電腦前時,手機會顯示它想做的事,例如想執行的指令。你可以:
- 允許一次:只限這次呼叫。
- 本工作階段皆允許:同一工作階段中相同類型的請求不會再問。
- 拒絕:Claude 會知道被拒絕並繼續進行。
hook 回傳你的回覆後,Claude 就會繼續工作。
你在座位上時會怎樣
ccn 會檢查你是否在場。如果你在過去 30 秒內有打字,就不會等待:terminal 照常詢問,手機最多只收到一則提醒。如果你不在,terminal 會等手機回覆,最長等到你設定的上限,而且只要你一碰鍵盤就停止等待。所以你永遠可以在離你比較近的那邊回覆。
等待上限是一個設定項:
ccn config set hold_ceiling_seconds 900
可設定 30 到 3600 秒,預設為 600。presence_threshold_seconds 可調整 30 秒的判定區間。大部分設定也能從手機 App 針對個別電腦調整。
確認是否正常運作
ccn doctor # checks hooks, credentials, server connection and presence detection
ccn test # sends a test notification
手機 App 可免費下載,使用時需訂閱或購買終身版,請見價格方案。即使沒有手機,Claude 需要權限時 ccn 仍會在電腦上免費顯示桌面通知。
05也減少需要核准的項目
遠端核准最好搭配合理的 allow 規則一起使用。如果你一天要核准 npm test 二十次,就在 permissions.allow 加一條像 Bash(npm test *) 這樣的規則,把手機留給真正需要看一眼的請求。在小螢幕上核准之前,請先看清楚指令。從手機核准 Claude Code 的操作安全嗎?說明了該檢查哪些地方。
06常見問題
Claude Code 能不能不靠其他工具,直接在手機上請求權限?
Anthropic 的 Remote Control 功能可讓支援方案的使用者從 Claude app 或 claude.ai/code 接續本機 session,包括回應 prompt。像 Claude Code Notifier 這種以 hook 為基礎的工具運作方式不同:不需要開啟 Remote Control,而且只會在需要你的時候通知。從手機使用 Claude Code 有兩者的比較。
如果我沒有在手機上回應,會怎樣?
使用 ccn 時,hook 最多會等待 hold_ceiling_seconds 設定的時間。如果你先回到電腦前碰了鍵盤,它就會停止等待,改由你在 terminal 的 prompt 中回應。
「在此 session 允許」會修改我的 settings.json 嗎?
不會。它只對該 session 有效。若要永久允許,請在 /permissions 或設定檔中加入 allow 規則。
這在 Windows 和 Linux 上能用嗎?
可以。ccn 可在 Mac、Windows 和 Linux 上執行,手機 app 三者都支援。Windows 支援目前為 beta 版。
可以搭配多台電腦使用嗎?
可以。一支手機能與多台電腦配對,一台電腦也能配對多支手機。用 ccn devices 可列出或撤銷已配對的手機。