Skip to main content

Remote sessions

Let users access their Copilot session from GitHub web and mobile by connecting the session to Mission Control.

谁可以使用此功能?

GitHub Copilot SDK 适用于所有 Copilot 计划。

注意

Copilot SDK 当前处于 公开预览. 功能和可用性可能会发生更改。

Remote sessions let users access their Copilot session from GitHub web and mobile. When enabled, the Copilot SDK connects each session to Mission Control, producing a URL that can be shared as a link or QR code.

Prerequisites

  • The user must be authenticated (GitHub token or logged-in user)
  • The session's working directory must be a GitHub repository

Enabling remote sessions

You can enable remote access at the client level (always-on) or toggle it per session (on-demand).

Always-on (client-level)

Set remote: true when creating the client. Every session in a GitHub repo automatically gets a remote URL.

import { CopilotClient } from "@github/copilot-sdk";

const client = new CopilotClient({ remote: true });
const session = await client.createSession({
  workingDirectory: "/path/to/github-repo",
  onPermissionRequest: async () => ({ allowed: true }),
});

session.on("session.info", (event) => {
  if (event.data.infoType === "remote") {
    console.log("Remote URL:", event.data.url);
  }
});

For examples in Python, Go, C#, and Rust, see the github/copilot-sdk repository. 有关 Java,请参阅 github/copilot-sdk-java 存储库

On-demand (per-session toggle)

Use session.rpc.remote.enable() to start remote access mid-session, and session.rpc.remote.disable() to stop it. This is equivalent to Copilot 命令行界面(CLI)'s /remote on and /remote off commands.

const result = await session.rpc.remote.enable();
console.log("Remote URL:", result.url);

// Later: stop sharing
await session.rpc.remote.disable();

For examples in Python, Go, C#, and Rust, see the github/copilot-sdk repository. 有关 Java,请参阅 github/copilot-sdk-java 存储库

QR code generation

The remote URL can be rendered as a QR code for easy mobile access. The Copilot SDK provides the URL—use your preferred QR code library.

Notes

  • The remote client option only applies when the Copilot SDK spawns Copilot 命令行界面(CLI). It is ignored when connecting to an external server via cliUrl.
  • If the working directory is not a GitHub repository, remote setup is silently skipped (always-on mode) or returns an error (on-demand mode).
  • Remote sessions require authentication. Ensure gitHubToken or useLoggedInUser is configured.