Bridge

Bridge 模块是 Claude Code 的远程协作基础设施,包含 30+ 个文件,实现了完整的远程会话管理能力。核心功能包括:远程会话创建与生命周期管理(createSession、sessionRunner)、基于 JWT 的设备信任认证(jwtUtils、trustedDevice)、长轮询消息传输(replBridgeTransport、pollConfig)、入站消息与附件处理(inboundMessages、inboundAttachments)、容量唤醒与多会话并发(capacityWake)、以及无头模式运行(bridgeMain 中的 runBridgeHeadless)。它是 Claude Code 从单机工具进化为分布式协作平台的关键模块。

职责与设计理念

职责说明

远程会话桥接系统,实现跨设备的会话传输与多会话管理

设计理念

桥接即隔离——远程会话与本地会话共享相同的核心逻辑,Bridge 只负责传输层的适配。进程边界是安全边界,JWT 认证确保设备信任链。

架构决策

为什么用长轮询而不是 WebSocket?

基于 HTTP 长轮询的消息传输

WebSocket 需要持久连接,在企业防火墙和代理后面经常被阻断。长轮询基于标准 HTTP,穿透性更好。对于 Claude Code 的消息频率(秒级),长轮询的延迟完全可接受。

⚖️ 长轮询的服务端资源消耗高于 WebSocket(每次轮询都是新连接),但换来了更好的网络兼容性。

文件清单

文件名 用途
bridgeMain.ts 桥接主循环,2800+ 行,管理远程会话的完整生命周期 (2800 行)
replBridgeTransport.ts REPL 桥接传输层,基于长轮询的消息收发
createSession.ts 远程会话创建,处理 OAuth 认证和会话初始化
jwtUtils.ts JWT 工具集,设备信任令牌的签发与验证
inboundMessages.ts 入站消息处理,解析远程发来的命令和响应
bridgeMessaging.ts 桥接消息协议,定义消息格式和序列化规则
capacityWake.ts 容量唤醒机制,管理多会话并发的资源调度
trustedDevice.ts 设备信任管理,维护已授权设备列表

使用场景

/teleport 跨设备传送会话

当前设备的会话状态通过 Bridge 传输到目标设备

/teleport → Bridge.createSession() → 序列化 → 长轮询传输 → 目标设备恢复

IDE 远程连接

VS Code 等 IDE 通过 Bridge 连接到远程运行的 Claude Code 实例

IDE → Bridge.connect(jwt) → 验证信任 → 建立会话通道

依赖关系

  • Bootstrap — 全局状态容器与会话生命周期管理,维护运行时的单一真相源
  • Entrypoints — 多模式入口适配器,统一 CLI/SDK/MCP 三种调用方式的启动路径

关键代码片段

桥接主循环

async function runBridgeLoop(
  config: BridgeConfig, logger: BridgeLogger
): Promise<void> {
  while (!signal.aborted) {
    const work = await pollForWork(config)
    if (work.type === 'session') {
      await handleSession(work, config)
    } else if (work.type === 'capacity_wake') {
      await spawnNewSession(work)
    }
    await backoff.wait()
  }
}

长轮询工作循环 + 多会话并发 + 指数退避重试

JWT 设备信任链

// 设备首次连接时签发信任令牌
function issueDeviceTrust(deviceId: string): JWT {
  return sign({
    sub: deviceId,
    iss: 'claude-code-bridge',
    exp: Date.now() + 30 * 24 * 60 * 60 * 1000, // 30 天
    permissions: ['session:create', 'session:join'],
  }, BRIDGE_SECRET)
}

// 后续连接验证令牌
function verifyDeviceTrust(token: string): DeviceInfo | null {
  try {
    return verify(token, BRIDGE_SECRET) as DeviceInfo
  } catch { return null }
}

JWT 签发/验证实现设备信任链,30 天有效期,权限粒度到会话操作级

技术笔记

security

JWT 设备信任

每个设备首次连接时签发 JWT 信任令牌,后续连接自动验证。令牌 30 天过期,权限粒度到 session:create/session:join 级别。

performance

指数退避策略

长轮询失败时使用指数退避(1s → 2s → 4s → ... → 30s 上限),避免网络故障时的请求风暴。

edge-case

容量唤醒

capacityWake 机制在所有会话槽位满时,将新请求排队等待。当有会话结束释放槽位时,自动唤醒排队中的请求。