使用 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
2
3
{
"remoteSessions": true
}

之後啟動 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 幫忙檢查一個專案,並希望離開座位後還能從手機追蹤進度,可以這樣操作:

  1. 先切到 GitHub repository 的工作目錄。
  2. 使用 copilot --remote 啟動互動式 session。
  3. 在 session 中輸入要 Copilot CLI 處理的任務,例如檢查測試失敗原因、整理文件或修改某個功能。
  4. 視情況輸入 /keep-alive busy/keep-alive on,避免本機在任務進行時睡眠。
  5. 使用 Copilot CLI 顯示的連結或 QR code,從 GitHub.com 或 GitHub Mobile 開啟 session。
  6. 離開座位後,從遠端介面查看輸出,並回覆 Copilot CLI 的問題或權限要求。
  7. 回到本機後,可以直接在原本終端機中繼續操作同一個 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 CloudView 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 變成更彈性的遠端開發助手。


參考資料