跳转到主要内容

Remote Sessions

启用 Remote Sessions 后,你可以通过 GitHub 的 Mission Control 从 Web 或移动端访问同一个会话。 启用后,会话会连接到 Mission Control,并发出可以作为链接或 QR 码分享的 URL。 如果想让会话本身在 GitHub 托管环境(而非本地或自建服务器)中运行,请使用 Cloud Sessions。

前置条件

  • 用户已经认证(GitHub token 或已登录用户)
  • workingDirectory 是一个 GitHub 仓库

已移除的配置选项

官方 SDK 1.0.26 移除了客户端的 remote 选项、会话的 remoteSession 选项以及 CLI 启动参数 --remote。要共享会话,请使用 $session->rpc()->remote()->enable() 按需启用。现有的远程会话 RPC 仍可继续使用。

按会话启用(按需)

如果想共享会话,可以通过 RPC 切换远程访问。 它与 CLI 的 /remote on 及 /remote off 命令等价。

连接到现有的远程会话(服务器作用域)

要让 CLI 服务器连接到现有的远程会话,请调用 $client->rpc()->sessions()->connect()。在 ConnectRemoteSessionParams 中传入远程 sessionId。返回结果包含 SDK 侧的 sessionId 以及远程会话的元数据。

运行时级 Remote Control(TCP 模式)

RemoteControlConfig 的 remote 属性用于配置运行时级 Remote Control。它与已移除的客户端 remote 启动选项无关。 在 TCP 模式下,可以通过 $client->rpc()->sessions() 管理整个运行时唯一的 Remote Control。与按会话的 remote()->enable() 不同,这些方法可以启动、停止 Remote Control,在会话之间转移,并获取当前状态。
状态为 off、connecting、active 或 error 之一。处于 active 时,还可以读取 frontendUrl 和 isSteerable。
要通知运行时某个会话的远程操控能力已变化,请使用会话级 RPC。

生成 QR 码

获取到的远程 URL 可以做成 QR 码交给移动端。 可以使用 Laravel Fortify 也在使用的 BaconQrCode。

注意事项

  • 当 workingDirectory 不是 GitHub 仓库时,remote()->enable() 可能会报错。
  • 请适当设置认证信息(github_token 或 use_logged_in_user)。

参考

最新信息请参考 GitHub 仓库。
最后修改于 2026年10月26日