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 | 设备信任管理,维护已授权设备列表 |
使用场景
当前设备的会话状态通过 Bridge 传输到目标设备
/teleport → Bridge.createSession() → 序列化 → 长轮询传输 → 目标设备恢复
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 天有效期,权限粒度到会话操作级
技术笔记
JWT 设备信任
每个设备首次连接时签发 JWT 信任令牌,后续连接自动验证。令牌 30 天过期,权限粒度到 session:create/session:join 级别。
指数退避策略
长轮询失败时使用指数退避(1s → 2s → 4s → ... → 30s 上限),避免网络故障时的请求风暴。
容量唤醒
capacityWake 机制在所有会话槽位满时,将新请求排队等待。当有会话结束释放槽位时,自动唤醒排队中的请求。