# 用手機控制你的 Mac 寫程式:Claude Code Remote Control 完整教學(含 push 推播 + 全自動配置)
上課中、騎車紅燈、躺床滑手機,順手叫 Mac 跑一個 task。Claude Code 在 2026/02 推出的 Remote Control 把這件事做成五分鐘設定的標配。本文從零教到推播,包含一個官方文件沒寫的隱藏設定。
TL;DR
Remote Control = 手機接管 Mac 上的 Claude Code session。指令還是 Mac 跑(你的檔案、MCP、plugin 都還在),但對話介面同步到 iPhone / Android / 任何瀏覽器。Pro / Max 訂閱免費附贈,CLI ≥ 2.1.51 即可。
最快的設定路徑:
/rc進階:在 ~/.claude/settings.json 加兩行,從此每個新 session 自動 ready,長 task 完成主動推播。
目錄
- 這東西到底解決什麼問題
- 跟 Claude Code on the web 差在哪
- 前置條件
- 五分鐘 setup
- 打開 push 推播
- 一次設定,永久自動:兩個 hidden key
- 我自己最常用的三個情境
- 必踩的四個坑
- 跟其他「離開 terminal」方案的比較
- FAQ
- 延伸資源
這東西到底解決什麼問題
我每天的工作流是:Mac 在家開著、跑很多長 task(影片上傳、Maven build、Spring Boot 起服、blog 寫作)。
過去的尷尬:
- 上課中 task 卡住,不能切回 Mac 看
- 躺床想到一個主題,懶得起床開電腦
- 出門才發現 build 還沒跑完,手機只能乾等
跟 Claude Code on the web 差在哪
兩者都是「不在 Mac 前面也能用 Claude Code」,但設計目的差很多。
| 問題 | Remote Control | Claude Code on the web |
|---|---|---|
| Claude 跑在哪 | 你的 Mac | Anthropic 雲端 VM |
| 看得到本機檔案嗎 | ✅ 全部 | ❌ 只能 clone GitHub repo |
| MCP server 用得到嗎 | ✅ 你本機裝什麼就有什麼 | 部分支援 |
| Mac 關機可以用嗎 | ❌ Session 死 | ✅ 雲端跑著 |
| 適合場景 | 接著手邊做到一半的工作 | 出差只有 iPad、想開新任務 |
前置條件
| 項目 | 需求 |
|---|---|
| CLI 版本 | ≥ 2.1.51(push 推播要 ≥ 2.1.110) |
| 訂閱 | Pro($20/月)/ Max($100-200/月)。API key 不行 |
| 登入方式 | claude.ai OAuth。ANTHROPIC_API_KEY 環境變數要 unset |
| 手機 app | iPhone 從 App Store / Android 從 Play Store 找「Claude by Anthropic」 |
| Mac 與手機帳號 | 必須同一個 Google / Email 登入 |
claude --version
不到 2.1.51 就升級:
npm i -g @anthropic-ai/claude-code@latest
# 或 brew upgrade claude-code(如果你是 brew 裝的)
五分鐘 setup
Step 1 — 手機裝 app + 登入同帳號
App Store 搜「Claude by Anthropic」(出版商:Anthropic)。注意:不要被一堆第三方 app(Happy、CloudCLI)吸過去,官方 app 才是 Remote Control 的接收端。
裝完用 Mac 同一個帳號登入。
小提醒:不確定 Mac 上登的是哪個帳號?在任意 Claude Code session 打 /status 會顯示。
Step 2 — Mac 端打配對指令
任意一個 active 的 Claude Code session(甚至你正在跟它聊天的這個 session 都行)打:
/rc
或全名 /remote-control。會印兩個東西:
- Session URL(瀏覽器點開可用)
- QR code(手機掃用)
/remote-control "ami clinical 開發中"
不取的話會自動用 hostname + 隨機詞(例如 BobMac-graceful-unicorn)。
Step 3 — 手機掃 QR / 找 session
掃 QR:app 會打開但不會自動跳到 session。你要:
從這秒開始,這個 session 在 Mac terminal 跟手機是雙向同步的。Mac 那邊看得到你手機打的字,手機那邊看得到 Mac 端的回應跟工具呼叫。
Step 4 — 驗證真的接管 Mac
在手機 session 打:
你跑在哪台機器?pwd 一下,然後 ls 看看
如果回的路徑是你 Mac 上的目錄(不是 /workspace 之類雲端 VM 路徑)→ 確認真的在控制 Mac。
打開 push 推播
光是同步還不夠。真正改變工作流的是「Mac 跑長 task → 手機叮一聲」。
開啟方式
在 Mac 任意 Claude Code session 打:
/config
找到 Push when Claude decides → 切成 true。
怎麼觸發推播
兩種方式:
notify me when done」之類字眼實際例子:
跑這個 Spring Boot integration test,跑完通知我
Mac 跑 5 分鐘 → 跑完手機叮一聲。你看通知就知道結果,不用每隔幾分鐘切回 Mac 看。
推播沒進來怎麼辦
| 症狀 | 解法 |
|---|---|
/config 顯示 No mobile registered | 開手機 Claude app(讓它 refresh push token),下次 RC 連線時自動清掉警告 |
| iOS 完全收不到 | 設定 → 通知 → Claude → 確認允許;關掉 Focus mode |
| Android 延遲嚴重 | 系統設定 → 電池最佳化 → 把 Claude 排除 |
一次設定,永久自動:兩個 hidden key
預設行為有兩個小麻煩:
claude 都要再打 /rc 才有 RC/config 確認推播沒被關掉官方文件沒寫對應的 JSON key(只寫了反向的 disableRemoteControl)。但其實兩個都有 hidden key 可以一勞永逸寫進設定檔。
直接抄這兩行
編輯 ~/.claude/settings.json,在 top-level 加兩個 key:
{
"remoteControlAtStartup": true,
"agentPushNotifEnabled": true
}
對應關係
| settings.json key | UI 標籤(在 /config 裡) | 效果 |
|---|---|---|
remoteControlAtStartup: true | Enable Remote Control for all sessions | 每個新 session 自動開 RC,不用打 /rc |
agentPushNotifEnabled: true | Push when Claude decides | 任務完成 / 需要決策時推播到手機 |
為什麼官方文件沒寫
我猜測:這兩個是 /config 互動 toggle 對應的儲存 key,UI 端設計成藏在 toggle 後面,手動編輯不在 supported workflow 內。但實際讀 binary 確認 100% 有效(下一篇文章會講怎麼挖出來)。
副作用(要知道)
開全自動 RC 之後,每個 terminal 開的 Claude 都會佔一個 RC session 名額。你手機 Code tab 會列一堆。這是 feature,不是 bug:可以當「Mac 上有哪些 Claude 在跑」的儀表板。
但如果你常開 5、6 個 session 跑不同事,list 會亂。建議搭配 --name 用:
cd ~/workspace/ami-clinical
claude --name "ami clinical"
我自己最常用的三個情境
情境 1:上課中跑長 task
職訓局上課中,學員問問題前,我先在 Mac 開 task:
跑 mvn clean install,然後跑完報整理摘要 LINE 給我,notify me when done
繼續講課。10 分鐘後 LINE 收到摘要,下課直接 review。
情境 2:通勤想到一個 blog 主題
捷運上想到「想寫一篇 X 工具的踩坑文」,手機開 Code tab 找在家 Mac 那個 session:
/blog-create X 工具踩坑
Mac 開始查證 + 寫 outline,30 分鐘到家文章已經 70% 完成。
情境 3:build 跑了一半要出門
剛開始 /yc-plugin:youtube-upload 上傳 5GB 影片,老婆要我接小孩。出門路上手機看進度,傳完手機推播 video URL,直接 LINE 給合作夥伴。
必踩的四個坑
坑 1:Mac 睡眠 = session 死
最常見的踩坑。Mac 闔上不接電源 → 預設 1 分鐘進入睡眠 → RC session 自動斷。
解法:
# 暫時讓 Mac 不睡(指令存活時不睡)
caffeinate -d
或系統設定 → 電池 → 闔上時不睡眠(有電源時)。
坑 2:斷網超過 10 分鐘 = session 永久死
Mac 還醒著但 WiFi 切換、VPN 重連時間太久 → 過 10 分鐘 session 自動 timeout,process 結束。
解法:回 Mac 重打 /rc,conversation 還在但 RC channel 要重建。
坑 3:/mcp、/plugin、/resume 在手機端按沒反應
這三個指令需要 terminal 互動式 picker,手機端跑了會 silent fail。要回 Mac terminal 才能用。
| 手機可用 | 手機不可用 |
|---|---|
/compact、/clear、/context、/usage、/recap | /mcp、/plugin、/resume |
| 所有 plugin 已 enable 的 slash command | 任何要互動式選單的 command |
坑 4:Ultraplan 啟動會踢掉 RC
/ultraplan 跟 RC 共用同一個 claude.ai/code interface,只能擇一。如果你正在 RC + 手機監控時下了 /ultraplan,RC 會被踢斷。
解法:要用 ultraplan 就接受 RC 暫停,跑完再 /rc 一次。
跟其他「離開 terminal」方案的比較
Anthropic 在 2026 上半年同時推了好幾個「不在 terminal 用 Claude Code」的方法。我整理給你選:
| 方案 | Trigger | Claude 跑在哪 | Setup 難度 | 適合 |
|---|---|---|---|---|
| Remote Control | 手機 / 瀏覽器接管 session | 你的 Mac | ★ | 手邊有事做到一半,要繼續推進 |
| Dispatch | 手機 Claude app 派任務 | 你的 Mac (Desktop) | ★★ | 出門臨時想到要 Mac 做什麼事 |
| Claude Code on the web | 開瀏覽器分配 task | Anthropic 雲端 | ★★ | iPad / 沒帶電腦,要做 GitHub repo 工作 |
| Channels (Discord / Telegram) | 聊天訊息觸發 | 你的 Mac | ★★★ | CI 失敗、IM 訊息進 → Claude 自動回應 |
| Slack 整合 | @Claude 標記 | Anthropic 雲端 | ★★★ | 團隊在 Slack 集中討論 PR |
| Scheduled tasks | 定時觸發 | CLI / Desktop / 雲端 | ★★ | 每天早上 review、週報摘要 |
- 一個人用 → Remote Control 為主,Dispatch 為輔
- 團隊協作 → 加 Slack
- 不在 Mac 前面要開新事 → web 版
FAQ
Q:免費版 Claude 用得到 Remote Control 嗎?
不行。要 Pro($20/月)或 Max($100-200/月)。
Q:API key 用戶能用嗎?
不能。要 claude.ai OAuth 登入。如果你 shell 裡有 ANTHROPIC_API_KEY 環境變數,要 unset 掉再 /login。
Q:手機掃 QR 之後 app 開了但沒接管 session?
正常。掃 QR 只是 deep link 開 app,要自己進 Code tab 找 session 點進去(list 裡有電腦 icon 那個)。
Q:兩台 Mac 都跑 RC 會衝突嗎?
不會。每個 process 註冊獨立 session,手機 list 兩個都會看到。但要記得 --name 加標籤,不然 hostname 都看不出差異。
Q:手機端打字傳給 Mac 安全嗎?
通訊走 Anthropic API + TLS,跟你平常用 Claude Code 一樣的 transport。沒有開 inbound port、沒有上雲端執行。
Q:可以離線用嗎?
不行。Mac 端要有網路(OAuth + 跟 Anthropic API 同步),手機端也要網路。完全離線 = 雙方都退回各自獨立模式。
Q:team / enterprise 帳號怎麼開?
admin 要先到 claude.ai/admin-settings/claude-code 把 Remote Control toggle 打開。如果 toggle 是灰的,是 data retention policy 不相容,要 contact Anthropic support。
延伸資源
如果你已經在用 Claude Code、卻還沒裝手機 app,今天花十分鐘設一次,未來的你會回來感謝你。如果你對「為什麼我知道 remoteControlAtStartup 跟 agentPushNotifEnabled 這兩個官方沒寫的 key」好奇,下一篇我寫的是怎麼從 binary 挖出 hidden settings 的方法論,可以追蹤一下。