Skip to main content

Remote Sessions

Remote Sessions を有効にすると、GitHub の Mission Control 経由でウェブやモバイルから同じセッションにアクセスできます。 有効化すると各セッションが Mission Control に接続され、リンクや QR コードとして共有できる URL が発行されます。 ローカルや自前サーバーではなく GitHub ホスト環境でセッション自体を実行したい場合は Cloud Sessions を使います。

前提条件

  • ユーザーが認証済みであること(GitHub トークンまたはログイン済みユーザー)
  • workingDirectory が GitHub リポジトリであること

クライアントレベルで有効化(常時 ON)

remote: true を有効化すると、GitHub リポジトリ内のすべてのセッションで自動的にリモート URL が発行されます。 config/copilot.php に固定で追加するより、必要な処理だけ useStdio() で remote: true を有効化する使い方が扱いやすいです。
remote オプションは SDK が CLI プロセスを起動する場合にのみ有効です。つまり stdio モード専用です。useTcp() など外部サーバーへ接続する場合は無視されます。

セッションごとに有効化(オンデマンド)

途中からリモート共有を開始したい場合は RPC で切り替えます。 CLI の /remote on および /remote off コマンドと同等の操作です。

ランタイム全体の Remote Control(TCP モード)

remote: true は CLI プロセスの起動時に使う設定で、stdio モードに限られます。TCP モードで既存の CLI サーバーに接続する場合、この設定は無視されます。 TCP モードでは $client->rpc()->sessions() からランタイム全体で 1 つの Remote Control を管理できます。セッション単位の remote()->enable() とは異なり、操作対象セッションの開始・停止・移譲や、現在の状態の取得ができます。
現在の状態は off、connecting、active、error のいずれかです。active では frontendUrl や isSteerable も参照できます。
セッションのリモート操作可否が変わったことをランタイムに知らせるには、セッションスコープの RPC を使います。

QR コード生成

取得したリモート URL は QR コードにしてモバイルへ渡せます。 Laravel Fortify でも使われている BaconQrCode が利用できます。

注意点

  • remote オプションは SDK が CLI プロセスを起動する場合にのみ有効です。useTcp() など外部サーバー接続時は無視されます。
  • workingDirectory が GitHub リポジトリでない場合、常時 ON モードではリモート設定がスキップされます。オンデマンド有効化(remote()->enable())ではエラーになる場合があります。
  • 認証情報(github_token または use_logged_in_user)を適切に設定してください。

参考

最新情報は GitHub リポジトリ を参照してください。
最終更新日 2026年10月19日