Bridge / 远程控制

Bridge 模式让 Claude Code 可以作为远程会话的工作节点运行 — 支持多会话管理、JWT 认证、Worktree 隔离。由 BRIDGE_MODE feature flag 控制。

概览

34
源文件
2999
bridgeMain.ts 行
32
默认并发会话

Bridge 通过 CLI 快速路径进入(claude remote-control / claude rc / claude bridge),在完整 CLI 加载之前就被拦截处理。

核心架构

入口
bridgeMain.ts (2999 行)
多会话 Spawn 管理 + 状态更新循环
协议
replBridge.ts
2406 行, REPL 协议
无环境模式
remoteBridgeCore.ts
直接 OAuth→JWT
API 层
bridgeApi.ts
HTTP + 重试 + 401

关键文件

文件行数��责
bridgeMain.ts2999多会话 Spawn 管理、状态更新循环、Worktree 支持
replBridge.ts2406REPL↔Bridge 协议、消息序列化、容量唤醒信号
remoteBridgeCore.ts~500无环境 Bridge — 直接 OAuth→worker_jwt 交换
bridgeApi.ts~300Environments API HTTP 客户端 + 重试
bridgeMessaging.ts~200消息入站、控制请求、结果序列化
initReplBridge.ts~200REPL Bridge 启动、状态读取、Gate 检查
types.ts~150SpawnMode, BridgeConfig, WorkData, SessionDoneStatus
jwtUtils.ts~100Token 刷新调度、主动续期
trustedDevice.ts~80可信设备 Token 管理

认证机制

Bridge 使用 JWT 进行会话认证,支持自动刷新:

1

OAuth 认证

用户通过 OAuth 登录获取 access token。

2

JWT 交换

remoteBridgeCore 通过 /v1/code/sessions/{id}/bridge 将 OAuth token 交换为 worker JWT。

3

自动刷新

jwtUtils 调度器在 JWT 过期前主动刷新(proactive renewal),支持 401/403 时重新获取。

4

可信设备

trustedDevice.ts 管理可信设备 token,用于提升认证级别。

多会话管理

Bridge 支持同时管理多个远程会话:

Spawn 模式

single-session

单会话模式,一次运行一个远程会话。最简单的模式。

worktree

每个会话在独立的 Git Worktree 中运行。支持并行修改不同分支。

same-dir

所有会话共享同一工作目录。适合只读或互不冲突的任务。

AppState 集成

Bridge 在 AppState 中维护 10+ 个状态字段:

// AppState 中的 Bridge 相关字段
{
  replBridgeEnabled: boolean,        // Bridge 是否启用
  replBridgeConnected: boolean,      // 连接状态
  replBridgeSessionActive: boolean,  // 会话是否活跃
  replBridgeConnectUrl: string,      // 连接 URL
  replBridgeSessionUrl: string,      // 会话 URL
  replBridgeError: string,           // 错误信息
  replBridgeReconnecting: boolean,   // 重连中
  // ... 更多字段
}
    

Daemon 模式 (Stub)

src/daemon/ — 长驻 supervisor 进程。目前仅 2 个 stub 文件 (Promise.resolve())。由 DAEMON flag 控制。

Background Sessions

BG_SESSIONS flag 启用后台会话管理命令:claude psclaude logsclaude attachclaude kill