GitHub Copilot CLIのリモート操作(Remote Control)は、自分のマシンのターミナルで動いているCLIセッションを、GitHub.comやGitHub Mobileから見守り、指示を出せる機能です。2026年4月13日にパブリックプレビューとして登場し、5月18日に一般提供(GA)になりました。セッションで /remote on と入力するとリンクとQRコードが表示され、スマホから許可要求への応答や追加の指示ができます。
注意したいのは、10月22日のv1.0.103で起動オプションの copilot --remote が廃止されたことです。プレビュー当時の解説どおりに打つと、現在のCLIはエラーで止まります。この記事では、CLI v1.0.105(2026年10月27日公開)について、2026年11月2日にmacOS(darwin-x64)で確認したヘルプ・旧フラグのエラー出力と公式ドキュメントをもとに、有効化の手順、使えない条件とエラーの原因、組織での設定を整理します。Copilot CLIそのものの導入や料金はGitHub Copilot CLIのAutopilotの解説で扱っています。
まとめ:Copilot CLIのリモート操作の要点
- 対話セッションで
/remote onと入力すると有効になる。既定は無効。常に有効にするなら設定ファイルで"remoteSessions": true copilot --remoteとcopilot --no-remoteはv1.0.103で廃止。--remote-exportは--sync-sessionに改名された- CLIとシェルコマンド・ファイル操作は手元のマシンで実行される。遠隔の画面は窓口で、実行場所は移らない
- 遠隔からできるのは、許可要求への応答・質問への回答・プランの承認・新しい指示・モード切替・実行中の作業の中止。スラッシュコマンドは送れない
- マシンがオンラインで、ターミナルで対話セッションが動いていることが前提。
-p(--prompt)による非対話実行では使えない - 組織のシートで使う場合は、管理者が「Store local sessions in the Cloud」ポリシーを「View and control」にしておく必要がある。未設定だと「Remote sessions are not enabled」と表示される
リモート操作でできることと処理の範囲
リモート操作を有効にすると、CLIはセッションのイベント(会話のメッセージ、ツールの実行、許可要求)をGitHubへ送ります。GitHub.comやGitHub Mobileで入力した指示は、CLIがGitHubに取りに行って手元のセッションに差し込みます。シェルコマンドもファイル操作も、すべてセッションを起動したマシンの上で実行されます。クラウドの環境で動く委任(/delegate)と違い、ローカルのファイルや認証情報をそのまま使えるのが利点です。
遠隔から送れる6つの操作
公式ドキュメント(Remote control of GitHub Copilot CLI sessions)が挙げる、GitHub.comとGitHub Mobileからできる操作は次のとおりです。
- ツール・ファイルパス・URLの許可要求を承認または拒否する
- Copilotからの質問(追加情報や判断の確認)に答える
- プランモードで出たプランを承認または差し戻す
- 新しい質問や指示を入力する
- セッションのモードを切り替える(対話モードとプランモードなど)
- 実行中の作業を中止する
一方、/permissions assisted のようなスラッシュコマンドはリモートの画面から使えません。権限モードの切り替えや /keep-alive は、離席前にターミナルで済ませておきます。ターミナルと遠隔の画面は同時に使えて、同じ許可要求に両方から答えた場合は、CLIが先に受け取った応答を採用します。
既定の「同期」と「リモート操作」の違い
混同しやすいのが、セッションの同期です。CLIのセッションは既定でGitHubアカウントに同期され、GitHub.comやGitHub Mobileから閲覧できます。ただし同期されたセッションは閲覧専用で、指示は送れません。操作まで行うには、リモート操作を有効にする必要があります。
| 項目 | 同期 | リモート操作 |
|---|---|---|
| 既定 | オン | オフ |
| 遠隔での操作 | 閲覧のみ | 閲覧と指示・承認 |
| 設定キー | remoteExport(既定 true) | remoteSessions(既定 false) |
| その回だけ切り替え | --sync-session=on・off | /remote on・off |
| 組織ポリシーの必要値 | View from cloud 以上 | View and control |
設定ファイルのリファレンスによると、"remoteSessions": true にすると remoteExport の値にかかわらず同期も有効になります。逆に、同期を有効にしてもリモート操作は有効になりません。CLIのヘルプも --sync-session について「does not enable incoming control」(遠隔からの操作は有効にしない)と明記しています。
同期とは別に、/share でセッションをファイル・HTML・gist・リンクとして書き出せます。記録として残したい、あるいはリポジトリにアクセスできる同僚に見せたいときはこちらを使います。共有された相手は閲覧だけができます。
プレビューからv1.0.103までの変更履歴
提供開始時と現在では、使える場所の条件も起動方法も変わっています。古い解説を読むときは、次の時期のどこに当たるかを確認してください。版と日付はCopilot CLIの変更履歴と一般提供の告知によります。
| 日付 | 版 | 変更 |
|---|---|---|
| 2026-04-13 | v1.0.25 | パブリックプレビュー。--remote と /remote を追加 |
| 2026-04-17 | v1.0.32 | セッションIDで直接つなぐ --connect を追加 |
| 2026-04-24 | v1.0.36 | /remote on・off で切り替え、/keep-alive が実験モード外に |
| 2026-05-06 | v1.0.42 | GitHub以外のリポジトリとリポジトリ外に対応 |
| 2026-05-18 | ― | 一般提供。VS CodeとJetBrainsからも利用可能に |
| 2026-05-20 | v1.0.51 | エージェントの作業中でも /remote を実行可能に |
| 2026-07-20 | v1.0.72 | 管理設定でSSO認可を必須にできるように |
| 2026-09-21 | v1.0.87 | /keep-alive の失敗を正しく報告 |
| 2026-10-22 | v1.0.103 | --remote と --no-remote を廃止 |
プレビュー時の発表では、作業ディレクトリがGitHubのリポジトリであることが条件で、GitHub Mobile側もベータ版が必要でした。一般提供後は、GitHub.com以外にホストされたリポジトリや、複数のリポジトリを含む親ディレクトリからも有効にできます。GitHubのリポジトリ外で始めたセッションは「no repository」として扱われ、github.com/copilot/agents の一覧にだけ表示されます。GitHubのリポジトリ内で始めた場合は、そのリポジトリの「Agents」タブにも並びます。
リモート操作を有効にする方法
v1.0.103以降、CLIで有効にする方法はセッション中のスラッシュコマンドと設定ファイルの2つです。IDEやGitHub Copilot appから使う場合は、それぞれの画面で有効にします。
対話セッションでの /remote on による有効化
対話セッションの中で次のコマンドを入力します。CLIがGitHub.comに接続し、遠隔からアクセスするためのリンクを表示します。エージェントが作業している最中でも入力できます。
/remote on
引数なしの /remote(または /remote show)は、現在の状態の確認と、有効中ならリンクの再表示に使います。遠隔からの接続を終えるときは /remote off です。
settings.jsonの remoteSessions による常時有効化
すべての対話セッションで最初から有効にしたい場合は、設定ファイル(通常は ~/.copilot/settings.json)に次の行を加えます。既定値は false です。
{
"remoteSessions": true
}
この設定を入れた状態で特定のセッションだけ遠隔操作を止めたいときは、セッションの中で /remote off を入力します。以前の copilot --no-remote による起動時の上書きはできなくなりました。設定ファイルを書いたら、新しいセッションで /remote を実行し、実際に有効になっているかを確かめてください。
copilot --remote が「was removed」で止まるときの置き換え
2026年4〜5月の解説記事やGitHubの告知は、起動時に copilot --remote を付ける方法を案内しています。CLI v1.0.105でこれらのオプションを付けて起動すると、次のエラーが出て終了します。
$ copilot --remote
error: --remote was removed. Use /remote on in a session; manage incoming connections in /environments.
$ copilot --no-remote
error: --no-remote was removed. Use /remote off in a session; manage incoming connections in /environments.
$ copilot --remote-export
error: --remote-export was renamed to --sync-session.
シェルのエイリアスや起動スクリプトに旧オプションを書いている場合は、更新後に起動できなくなるので次のように置き換えます。
| 旧オプション | 現在の方法 |
|---|---|
| copilot --remote | セッション内で /remote on、常時なら remoteSessions: true |
| copilot --no-remote | セッション内で /remote off |
| copilot --remote-export | copilot --sync-session=on |
| (同期を止める) | copilot --sync-session=off、常時なら remoteExport: false |
エラー文にある /environments は、別のCLIなどからこのマシンへの接続(incoming connections)を管理する画面です。GitHub.comやGitHub Mobileからセッションを操作するだけなら、/remote on で足ります。
JetBrains・GitHub Copilot app・VS Codeでの有効化
JetBrains IDEでは、Settings(macOSはアプリ名のメニュー)から「Tools」→「GitHub Copilot」→「Chat」と進み、「Enable Copilot CLI Remote」を選んでからIDEでセッションを始めます。有効にした後は、セッションの中で /remote を入力するとリンクとQRコードを再表示できます。
デスクトップアプリのGitHub Copilot appも、セッション中に /remote で遠隔操作を有効にできます(スラッシュコマンドのリファレンス)。使えるかどうかはCLIと同じく組織のポリシーで決まります。
VS Codeは仕組みが変わりつつあります。一般提供の告知にあった設定 github.copilot.chat.cli.remote.enabled に代わり、現在のVS Codeのドキュメントは、別の端末からの継続に「GitHub Environments(Preview)」を案内しています。チャットビューかエージェントウィンドウの「Remote Connections」で「GitHub Environments」を選ぶとマシンが登録され、VS Code・GitHub Copilot app・Copilot CLI・GitHub.com・GitHub Mobileから、そのマシンの対応セッションにつなげます。ただし、利用できるセッションの種類や操作はクライアントによって異なります。接続したクライアントはそのマシンを持ち主と同じ権限で扱え、会話の内容はエンドツーエンドで暗号化されない点に注意が必要です。VS Codeのセッションの扱い全体はVS Codeのエージェントウィンドウの使い方で整理しています。
別の端末からセッションにつなぐ手順
遠隔から開けるのは、セッションを起動したのと同じGitHubアカウントでサインインしている場合だけです。ほかのユーザーからは、そのセッションは見えません。
- ブラウザ:CLIに表示されたリンクを開く。リンクが手元にない場合は、GitHub.com左上のメニューから「Copilot」を開くと「Recent agent sessions」に並んでいる。右上の「Type」フィルターでCopilot CLIのセッションだけに絞れる
- GitHub Mobile:右下のCopilotボタンをタップすると「Agent sessions」に表示される。リモート操作を有効にした時点で一覧に出る
- QRコード:入力欄が空の状態で
/remoteを実行してから Ctrl+O を押すと、QRコードの表示を切り替えられる。スマホで読み取ればGitHub Mobileのセッション画面が直接開く - 別のターミナル:
copilot --connectにセッションIDかタスクIDを渡すと、別のCLIからリモートセッションに直接つながる
Ctrl+O はQRコードだけでなく、会話中のすべての詳細表示を開閉するキーです。入力欄に文字が残っていると効きません。
長時間タスクを止めないための /keep-alive と再接続
リモート操作は、手元のマシンがスリープすると使えなくなります。席を離れる前に /keep-alive on でスリープ抑止を有効にします。/caffeinate も同じコマンドです。
| 指定 | スリープを止める期間 |
|---|---|
| on | CLIセッションが動いている間ずっと |
| busy | タスク処理中・Copilotからの質問への回答待ち |
| 30m・8h・1d | 指定した分・時間・日数(単位なしの数字は分) |
| off | 止めない(通常どおりスリープする) |
毎回入力するのを忘れるなら、設定ファイルの keepAlive に "on" か "busy" を書くと、起動時から適用されます(既定は "off")。引数なしの /keep-alive は現在の状態を表示します。WSLやコンテナのようにセッションバスがない環境では、スリープ抑止が起動直後に終了することがあります。v1.0.87より前は、この場合も「スリープを防止中」と表示されていました。現在は失敗として報告されるので、Linux系の環境では表示を確認してから離席してください。
ネットワークが一時的に切れた場合は、接続が戻ればそのまま遠隔から操作を続けられます。CLIを終了したあとに copilot --continue か copilot --resume で再開すると、リモート操作を有効にしていたセッションは自動で再び有効になります。GitHub.comで過去のセッションを開くと、再開に使う copilot --resume のコマンドが表示されます。
リモート操作が使えない条件とエラーメッセージ
「有効にしたのにつながらない」場合は、表示されたメッセージから原因を絞り込めます。
| 表示・症状 | 原因 |
|---|---|
| Remote sessions are not enabled. | 組織のポリシーが未設定・無効 |
| Remote session disabled | 作業ディレクトリのリポジトリを解決できない |
| --remote was removed. | 廃止された起動オプションを使った |
| 再接続中のまま操作できない | マシンのスリープ・ネットワーク断 |
| 一覧にセッションが出ない | 別アカウントでサインインしている |
| -p で起動したセッションで使えない | 非対話実行は対象外 |
組織のシートで使っている場合は、まず組織ポリシーを確認します。組織から割り当てられたシートで、ポリシーが「View and control」になっていないと、CLIは「Remote sessions are not enabled. Contact your organization administrator to enable remote sessions.」と表示します。利用者側の設定では解決できないので、管理者に下の章の設定を依頼します。「Remote session disabled」は、Gitのリモートが設定されているのにアクセスできない場合に出ます。スクリプトから -p(--prompt)で動かしたセッションは対象外で、リモート操作は対話セッション限定です。
Business・Enterpriseで有効にするポリシー設定
Copilot Business・Enterpriseのように組織からシートが割り当てられている場合、利用者側の操作だけでは有効になりません。
Store local sessions in the Cloud ポリシーの3段階
組織の所有者は「Store local sessions in the Cloud」ポリシーで、同期と遠隔操作の可否を決めます。このポリシーは既定で未設定で、未設定または無効のままだと、同期もリモート操作も使えません。
| 設定値 | 同期(閲覧) | リモート操作 |
|---|---|---|
| 未設定・無効 | 不可 | 不可 |
| View from cloud | 可 | 不可 |
| View and control | 可 | 可 |
エンタープライズの所有者は、全組織に一律の値を強制するか、「Let organizations decide」で各組織に任せるかを選べます。エンタープライズで「View and control」を強制すると、配下の全組織にその値が適用されます。管理者が同期を有効にしても、利用者のセッションの中身を管理者が閲覧できるようにはなりません(About GitHub Copilot session data)。
端末ごとに絞る remoteControl 管理設定
エンタープライズの所有者は、ポリシーに加えて、管理設定の remoteControl で端末単位の制限をかけられます。mode は disabled(その端末のセッションは遠隔操作不可)、requireSSO(指定した組織にSSO認可されたクライアントからだけ操作可)、enabled(制限なし)の3つです。
次のJSONは管理設定用です。個人用の settings.json ではなく、管理者がサーバー管理設定または端末のMDM管理設定として配布します。
{
"remoteControl": {
"mode": "requireSSO",
"githubDotComOrganizations": ["ORG-NAME"]
}
}
requireSSO で複数の組織を並べた場合、操作する側のクライアントは、そのうち少なくとも1つの組織にSSO認可されていれば足ります。設定リファレンスには、以前は全組織への認可が必要だったことも注記されています。この設定が制限するのは「その端末で動いているセッションを遠隔から操作できるか」だけです。同じ利用者が、別の端末で動かしているセッションを操作することには影響しません。
遠隔からの承認を許す前に決めておく線引き
リモート操作が渡すのは、CLIエージェントがそのセッション内でできることの範囲です。逆にいえば、GitHubアカウントにサインインできる人は、遠隔から手元のマシンでシェルコマンドの実行を承認できます。公式ドキュメントのいう「本人しか操作できない」は、アカウントが守られている前提の話です。そのため、有効にする前に次の4点を決めておくべきです。
- 取り返しのつかない操作は事前に拒否する:スマホの小さな画面では、許可要求のコマンドを全文確認しにくくなります。
copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'のように拒否規則を付けて起動し、pushなどを遠隔の承認対象から外しておきます。コマンドの実行範囲そのものを狭めるなら、GitHub Copilotのサンドボックスも併用します - assistedモードを安全装置と考えない:v1.0.104で実験モードなしに使えるようになった
/permissions assisted(--assisted-approval)は、別のモデルが許可要求を審査して安全そうなものを自動で承認します。CLIのヘルプ自身が「probabilistic and not a security boundary」(確率的で、セキュリティ境界ではない)と書いています。危険な操作を止める仕組みにはなりません - 組織では requireSSO を基本にする:業務マシンに設定すると、そのマシンで動くセッションを操作できるのは、指定組織のSSO認可を受けたクライアントに限られます。私物端末か会社管理端末かを判別する設定ではなく、私物端末で動く別のセッションを制限する設定でもない点は区別してください
- 使わない場面を決める:本番環境の認証情報が入ったマシンや、複数人が触る共有マシンでは有効にしないのが無難です。共有マシンでは、ターミナル側の誰かの応答と自分のスマホの承認のうち先に届いた方が採用されてしまいます
反対に、テストの実行待ちや大きなリファクタリングのように、途中の確認を何度も求められる作業では効果が大きくなります。全部の許可を最初に与えて走らせる運用と違い、通常の対話モードで必要な承認を自分に残したまま席を離れられるからです。Autopilotの止まる条件はCopilot CLIのAutopilotの記事で整理しています。業務で使うエージェントの権限設計や組み込みから相談したい場合は、AIエージェント開発の支援も行っています。
Claude CodeのRemote Controlとの違い
AnthropicのClaude Codeにも、手元のセッションをブラウザやスマホから操作する「Remote Control」があります。どちらも処理は手元のマシンで実行し、遠隔の画面はその窓口になる、という設計は共通です。違いは主に入口と契約の条件です(Claude Code側は公式ドキュメントによる)。
| 項目 | Copilot CLI | Claude Code |
|---|---|---|
| 操作する画面 | GitHub.com・GitHub Mobile | claude.ai/code・Claudeアプリ |
| セッション中の有効化 | /remote on | /remote-control |
| 起動時の有効化 | 設定 remoteSessions のみ | --remote-control(--rc) |
| 基本の利用形態 | 対話セッションの遠隔操作 | 対話セッションの遠隔操作・サーバーモード |
| 対象の契約 | Copilot CLIを使えるプラン | Pro・Max・Ultra・Team・Enterprise |
| 組織での有効化 | ポリシーを View and control に | Ownerが管理画面で切り替え |
Claude CodeはAPIキーでは使えず、claude.aiのアカウントでのサインインが条件です。Claude Code側の起動方法や組織設定はClaude Code Remote Controlの仕組みと使い方で詳しく扱っています。GitHubで開発している利用者は、リポジトリの「Agents」タブから自分のCLIセッションを確認できます。ただし、チーム全員のローカルセッションを共有・一括管理する機能ではありません。
よくある質問
copilot --remote で起動するとエラーになるのはなぜですか?
2026年10月22日のv1.0.103で、起動オプションの --remote と --no-remote が廃止されたためです。現在は「error: --remote was removed.」と表示されて終了します。セッションを起動してから /remote on と入力するか、常に有効にしたい場合は ~/.copilot/settings.json に "remoteSessions": true を書きます。
「Remote sessions are not enabled. Contact your organization administrator」と出るのはなぜですか?
組織から割り当てられたシートで、「Store local sessions in the Cloud」ポリシーが「View and control」になっていないためです。このポリシーは既定で未設定です。組織かエンタープライズの所有者にポリシーの変更を依頼してください。「View from cloud」の場合は、同期したセッションの閲覧だけができます。
Copilot CLIのリモートセッションはほかの人に見えますか?
見えません。リモートで開けるセッションは利用者ごとに分かれていて、起動したのと同じGitHubアカウントでサインインした本人だけが閲覧・操作できます。同期されたセッションのデータも既定では本人だけが閲覧でき、管理者が同期を有効にしても閲覧権限は得ません。ただし、本人が /share で個別に共有したセッションは、共有相手も閲覧できます。
「再接続しようとしています」と出て遠隔から操作できないのはなぜですか?
セッションを動かしているマシンがスリープしたか、ネットワークから切れている可能性が高いです。マシンがオンラインに戻れば、同じセッションに遠隔から操作を続けられます。CLIを終了してしまった場合は、手元で copilot --continue か copilot --resume を実行すると、リモート操作も自動で有効に戻ります。離席前に /keep-alive on を設定しておけば、スリープによる切断を防げます。
セッション履歴のクラウド同期やエクスポートはどう制御しますか?
その回だけ同期を止めるなら copilot --sync-session=off で起動します。常に止めたい場合は、設定ファイルで remoteExport を false にします。ただし remoteSessions が true の場合は同期も有効になります。手元に記録を残したいときは、同期ではなく /share でファイルやHTMLに書き出します。組織のシートでポリシーが未設定の場合は、もともとローカルにだけ保存されます。
関連記事
- GitHub Copilot CLIのAutopilotとは|使い方・止まる条件・安全設定と料金【2026年10月】
- Claude Code Remote Controlの仕組みと使い方|3つの起動方法・組織設定・エラー対処
- GitHub Copilotのサンドボックスとは?有効化手順と組織で強制する管理設定【2026年10月】
- Copilot CLIのRubber Duckとは|使い方・自動レビューの設定と対応モデル【2026年10月】
- GitHub Copilotの料金(pricing)|AI Credits後のプラン比較とEnterprise同梱・Billing APIでの集計【2026年10月】