Skip to main content

Remote Sessions

Remote sessions let you access the same Copilot session from GitHub web and mobile via Mission Control. When enabled, the SDK connects the session to Mission Control and issues a URL that can be shared as a link or QR code. To run the session itself on GitHub-hosted infrastructure instead of locally or on your own server, use Cloud Sessions.

Prerequisites

  • The user must be authenticated (GitHub token or logged-in user)
  • The session’s workingDirectory must be a GitHub repository

Removed configuration options

Official SDK 1.0.26 removed the client remote option, the session remoteSession option, and the --remote CLI startup flag. To share a session, enable it on demand with $session->rpc()->remote()->enable(). The existing remote session RPCs continue to work.

On-demand (per-session toggle)

To share a session, toggle remote access via RPC. This is equivalent to the CLI’s /remote on and /remote off commands.

Connect to an existing remote session (server-scoped)

To connect the CLI server to an existing remote session, call $client->rpc()->sessions()->connect(). Pass the remote sessionId in ConnectRemoteSessionParams. The result contains the SDK-side sessionId and the remote session’s metadata.

Runtime-wide Remote Control (TCP mode)

The remote property of RemoteControlConfig configures runtime-wide Remote Control. It is unrelated to the removed client remote startup option. In TCP mode, use $client->rpc()->sessions() to manage a single Remote Control for the whole runtime. Unlike the per-session remote()->enable(), these methods let you start, stop, and transfer Remote Control between sessions, and read its current status.
The status is one of off, connecting, active, or error. When the status is active, you can also read frontendUrl and isSteerable.
To tell the runtime that a session’s remote steerability has changed, use the session-scoped RPC.

QR code generation

Render the remote URL as a QR code for easy mobile access. BaconQrCode, which is also used by Laravel Fortify, works well here.

Notes

  • If the working directory is not a GitHub repository, remote()->enable() may return an error.
  • Ensure authentication is configured correctly (github_token or use_logged_in_user).

See also

For the latest updates, see the GitHub repository.
Last modified on October 26, 2026