使用 Copilot CLI Remote Control 進行遠端開發
簡介
GitHub Copilot CLI 除了可以在本機終端機中使用,也支援 Remote Control 功能,讓你從 GitHub.com 或 GitHub Mobile 查看正在執行的 CLI session,並在需要時遠端回覆提示、批准權限要求,或繼續下達新的指令。
這個功能很適合用在需要長時間執行的開發任務。例如你讓 Copilot CLI 在本機分析專案、修改程式、跑測試,但人暫時離開座位時,仍然可以透過手機確認進度。如果 Copilot CLI 在過程中需要你批准檔案存取、URL 存取或工具執行權限,也可以直接從遠端介面回覆,不必特地回到原本那台電腦前面。
不過要先釐清一件事:Remote Control 不是把開發環境搬到雲端,也不是讓 GitHub 直接接管你的電腦。Copilot CLI session 仍然在你啟動它的本機上執行,所有 shell command、檔案讀寫與工具呼叫也都發生在本機。遠端介面只是提供一個可以監看與控制該 session 的入口。
Remote Control 適合什麼情境?
Copilot CLI 的 Remote Control 最適合用在「任務在本機跑,但你不一定會一直坐在本機前」的情境。常見例子包含:
- 長時間修改或分析專案:讓 Copilot CLI 處理重構、文件整理、測試修復等任務時,可以遠端查看進度。
- 需要即時回覆權限要求:當 Copilot CLI 要讀取檔案、執行工具或存取 URL 時,你可以從手機批准或拒絕。
- 離開座位後仍想追蹤狀態:例如去開會、通勤或臨時處理其他事情時,仍能透過 GitHub Mobile 查看 session。
- 想從另一台電腦接續操作:只要本機 session 還在執行,就可以從瀏覽器打開 GitHub.com 繼續輸入提示。
這讓 Copilot CLI 比較像是一個在本機工作的開發代理人,而 Remote Control 則是它的遠端操作面板。
使用前提
在啟用 Remote Control 前,需要先確認幾個條件。
| 條件 | 說明 |
|---|---|
| 本機 session 必須在線 | Copilot CLI 必須在一台有網路連線的機器上持續執行。如果電腦睡眠或斷線,就無法遠端控制。 |
| 必須是互動式 session | Remote Control 只支援互動式 Copilot CLI session,不適用於使用 --prompt 這類程式化方式執行的情境。 |
| 工作目錄需要是 GitHub repository | 官方文件提到,工作目錄必須包含 hosted on GitHub.com 的 Git repository;否則 CLI 會顯示 Remote session disabled: not in a GitHub repository.。 |
| 需要相同 GitHub 帳號 | 遠端查看與操作 session 時,必須使用啟動該 Copilot CLI session 的同一個 GitHub 帳號登入。 |
| 組織政策必須允許 | 如果你的 Copilot seat 來自組織或企業,管理者需要將 Store local sessions in the Cloud 政策設定為 View and control。 |
如果是在個人帳號中使用,通常比較容易直接啟用;但在公司或組織環境中,最常遇到的阻礙會是管理政策尚未開啟。
啟用 Remote Control
官方文件提供幾種啟用方式,可以依照自己的使用習慣選擇。
方式一:在互動式 session 中啟用
如果你已經在 Copilot CLI session 裡,可以直接輸入 /remote on:
1 | /remote on |
啟用後,Copilot CLI 會連線到 GitHub.com,並在終端機中顯示遠端存取 session 的資訊。你可以使用它提供的連結,或透過 GitHub Mobile 開啟同一個 session。
如果只輸入 /remote,可以查看目前 Remote Control 狀態,或重新顯示遠端存取資訊:
1 | /remote |
如果想關閉目前 session 的遠端控制,則輸入:
1 | /remote off |
方式二:啟動 Copilot CLI 時直接開啟
如果你一開始就知道這個 session 可能需要遠端操作,可以在啟動時加上 --remote:
1 | copilot --remote |
這樣 Copilot CLI 一進入互動式 session,就會自動啟用 Remote Control,並顯示遠端存取資訊。
方式三:設定為預設啟用
如果你希望每次互動式 Copilot CLI session 都預設可以遠端控制,可以在 ~/.copilot/settings.json 加上設定:
1 | { |
之後啟動 Copilot CLI 時,Remote Control 就會預設啟用。如果某次 session 不想開放遠端控制,可以改用 --no-remote 覆蓋設定:
1 | copilot --no-remote |
官方文件也提醒,命令列選項 --remote 與 --no-remote 的優先權會高於 settings file 中的設定。
從 GitHub.com 遠端操作 session
啟用 Remote Control 後,Copilot CLI 會在終端機中顯示 GitHub.com 的 session 連結。只要用同一個 GitHub 帳號登入,就可以從瀏覽器開啟。
如果沒有保留連結,也可以從 GitHub.com 的 recent agent sessions 找到該 session。官方文件提到,如果 session 是從某個 GitHub repository 的本機副本啟動,也可以在該 repository 的 Agents 分頁中找到。
進入遠端介面後,你可以看到 Copilot CLI session 的輸出,也可以在需要時輸入新的提示。這對長時間任務特別有用,因為你不必一直盯著終端機,只要在瀏覽器中確認目前狀態即可。
從 GitHub Mobile 遠端操作 session
如果主要想從手機追蹤進度,可以使用 GitHub Mobile。Remote Control 啟用後,Copilot CLI session 會出現在 GitHub Mobile 的 Agent sessions 中。
也可以在 Copilot CLI session 中輸入 /remote 重新顯示遠端存取資訊,並透過 QR code 快速打開手機端 session。官方文件提到,在輸入欄位為空時,可以使用 Ctrl+E 展開或收合 QR code 顯示。
這個流程很適合臨時離開電腦時使用。例如你在本機要求 Copilot CLI 修正一批測試,接著帶著手機離開座位。當 Copilot CLI 需要你確認是否執行某個 command,或詢問下一步要怎麼處理時,就可以直接在 GitHub Mobile 回覆。
遠端可以做哪些事?
從 GitHub.com 或 GitHub Mobile 連進 Copilot CLI session 後,可以進行以下操作:
| 操作 | 說明 |
|---|---|
| 查看 session 輸出 | 即時追蹤 Copilot CLI 目前正在做什麼。 |
| 回覆權限要求 | 核准或拒絕工具、檔案路徑與 URL 的權限要求。 |
| 回答問題 | 當 Copilot CLI 需要更多資訊或要你做決策時,可以遠端回覆。 |
| 核准或拒絕計畫 | 如果 Copilot CLI 在 plan mode 中提出計畫,可以從遠端介面回應。 |
| 輸入新的提示 | 可以像在本機終端機一樣,繼續對 session 下達新的指令。 |
| 切換模式 | 例如在互動模式與 plan mode 之間切換。 |
| 結束目前操作 | 可以取消 Copilot CLI 正在執行的工作。 |
需要注意的是,本機終端機與遠端介面會同時保持可操作狀態。當 Copilot CLI 提出提示或權限要求時,哪一邊先回覆,就會以哪一邊的回覆為準。
另外,官方文件也提到,目前遠端介面不支援 slash commands,例如 /allow-all 這類指令不能直接從遠端介面使用。
防止本機睡眠
Remote Control 的前提是本機 session 持續在線。如果電腦進入睡眠或網路中斷,遠端介面就暫時無法控制該 session。
如果你準備離開座位,但希望 Copilot CLI 繼續工作,可以在互動式 session 中使用 /keep-alive:
1 | /keep-alive on |
/keep-alive 支援多種選項:
| 指令 | 說明 |
|---|---|
/keep-alive on |
session 執行期間防止本機睡眠。 |
/keep-alive off |
恢復一般睡眠設定。 |
/keep-alive busy |
只在 Copilot CLI 正在執行任務時防止睡眠;若正在等待你的回覆,也不會讓機器睡眠。 |
/keep-alive 30m |
防止睡眠 30 分鐘。 |
/keep-alive 8h |
防止睡眠 8 小時。 |
/keep-alive 1d |
防止睡眠 1 天。 |
如果只輸入 /keep-alive,則會顯示目前 keep-alive 狀態。
中斷後如何恢復?
如果本機暫時斷線或網路不穩,Remote Control 會在連線恢復後重新可用。只要本機 session 還在,遠端介面就能繼續連上。
如果是之後要接續先前的 Copilot CLI session,可以使用:
1 | copilot --continue |
或:
1 | copilot --resume |
官方文件指出,當你 resume 或 continue 一個曾經啟用 Remote Control 的 CLI session 時,Remote Control 會自動重新啟用。
安全性與隱私注意事項
Remote Control 雖然方便,但仍然要理解它背後的資料流動方式。
根據官方說明,啟用 Remote Control 後,conversation messages、tool execution events 與 permission requests 等 session events 會從本機傳送到 GitHub。遠端輸入的指令則會由 Copilot CLI 從 GitHub 輪詢後注入本機 session。
但這不代表 GitHub.com 取得了直接操作你電腦的完整權限。CLI 仍然在本機執行,所有 shell command、檔案操作與工具執行都還是在原本啟動 session 的機器上發生。遠端介面能做的事情,是在該 Copilot CLI session 的範圍內查看與回覆。
此外,遠端 session 只能由啟動該 session 的同一個 GitHub 帳號存取,其他 GitHub 使用者無法查看或操作你的 session。
實際使用流程範例
假設我準備讓 Copilot CLI 幫忙檢查一個專案,並希望離開座位後還能從手機追蹤進度,可以這樣操作:
- 先切到 GitHub repository 的工作目錄。
- 使用
copilot --remote啟動互動式 session。 - 在 session 中輸入要 Copilot CLI 處理的任務,例如檢查測試失敗原因、整理文件或修改某個功能。
- 視情況輸入
/keep-alive busy或/keep-alive on,避免本機在任務進行時睡眠。 - 使用 Copilot CLI 顯示的連結或 QR code,從 GitHub.com 或 GitHub Mobile 開啟 session。
- 離開座位後,從遠端介面查看輸出,並回覆 Copilot CLI 的問題或權限要求。
- 回到本機後,可以直接在原本終端機中繼續操作同一個 session。
整個過程中,真正執行開發工作的仍是本機 Copilot CLI。遠端介面負責讓你在不同裝置上掌握進度,並在關鍵節點做出回應。
Remote Control 與 Session Syncing 的差異
官方文件特別提醒,Remote Control 和 session syncing 不一樣。
session syncing 主要是讓 Copilot CLI session 同步到 GitHub 帳號,並在 GitHub.com 或 GitHub Mobile 中以 view-only 方式查看。這代表你可以回顧 session,但不能真正控制它。
Remote Control 則是在同步之外,允許你遠端回覆提示、批准權限、輸入新的 prompt,甚至取消目前操作。也就是說,如果你只是想看紀錄,session syncing 就足夠;如果你想從另一台裝置繼續操作正在執行的 Copilot CLI session,就需要啟用 Remote Control。
常見問題
為什麼我啟用後看不到遠端 session?
可以先檢查幾個方向:
- 目前工作目錄是否是 hosted on GitHub.com 的 Git repository。
- 本機 Copilot CLI session 是否仍在執行,且機器沒有睡眠或斷線。
- GitHub.com 或 GitHub Mobile 是否使用同一個 GitHub 帳號登入。
- 如果 Copilot seat 來自組織,管理者是否已允許
Store local sessions in the Cloud的View and control政策。
遠端操作時,本機終端機還能輸入嗎?
可以。本機終端機與遠端介面會同時保持作用中。若 Copilot CLI 正在等待回覆,哪一端先回覆,就會使用哪一端的答案。
可以從遠端執行 slash command 嗎?
目前不行。官方文件提到,遠端介面暫時不支援 slash commands,例如 /allow-all。如果要使用這類指令,仍需要回到本機終端機操作。
Remote Control 會讓別人看到我的 session 嗎?
不會。官方文件說明,遠端 session 只能由啟動該 session 的同一個 GitHub 帳號存取。其他 GitHub 使用者無法查看或控制你的 Copilot CLI session。
小結
Copilot CLI Remote Control 的價值在於讓本機開發任務不再被單一裝置綁住。你可以在電腦上啟動 Copilot CLI,讓它分析專案、修改程式或處理測試,再透過 GitHub.com 或 GitHub Mobile 追蹤進度與回覆提示。
使用時最重要的是理解它的邊界:Remote Control 控制的是「正在本機執行的 Copilot CLI session」,不是一個雲端開發環境。只要本機保持在線、session 持續執行,而且帳號與組織政策符合條件,就能把 Copilot CLI 變成更彈性的遠端開發助手。