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 も参照できます。
QR コード生成
取得したリモート URL は QR コードにしてモバイルへ渡せます。 Laravel Fortify でも使われている BaconQrCode が利用できます。注意点
remoteオプションは SDK が CLI プロセスを起動する場合にのみ有効です。useTcp()など外部サーバー接続時は無視されます。workingDirectoryが GitHub リポジトリでない場合、常時 ON モードではリモート設定がスキップされます。オンデマンド有効化(remote()->enable())ではエラーになる場合があります。- 認証情報(
github_tokenまたはuse_logged_in_user)を適切に設定してください。
参考
最新情報は GitHub リポジトリ を参照してください。