IDE 桥接
Claude Code 通过 IDE Bridge(src/bridge/,31 文件)实现与 VS Code 和 JetBrains IDE 的双向通信,让 Claude Code 无缝嵌入到现有的开发工作流中。
支持的 IDE
| IDE | 扩展方式 | 状态 |
|---|---|---|
| VS Code | 官方扩展 | 完整支持 |
| JetBrains (IntelliJ, WebStorm...) | 官方插件 | 完整支持 |
桥接架构
┌──────────────────────┐ ┌──────────────────────┐
│ IDE │ │ Claude Code CLI │
│ │ │ │
│ ┌────────────────┐ │ │ ┌────────────────┐ │
│ │ 扩展/插件 │ │ ←→ │ │ Bridge 模块 │ │
│ │ │ │ JWT │ │ │ │
│ │ - 面板 UI │ │ │ │ - 会话管理 │ │
│ │ - 命令代理 │ │ │ │ - 权限回调 │ │
│ │ - 状态同步 │ │ │ │ - 工具执行 │ │
│ └────────────────┘ │ │ └────────────────┘ │
│ │ │ │
│ 编辑器 ← 文件操作 │ │ LLM → 工具调用 │
└──────────────────────┘ └──────────────────────┘
桥接模块结构
bridge/
├── vscode/ # VS Code 特定逻辑
├── jetbrains/ # JetBrains 特定逻辑
├── repl/ # REPL 会话桥接
├── auth/ # JWT 认证
│ ├── token.ts # Token 生成与验证
│ └── handshake.ts # 连接握手
├── permissions/ # 权限回调
│ └── callback.ts # IDE → CLI 权限确认
└── runner/ # 会话运行器
└── session.ts # 会话生命周期管理
认证机制
IDE Bridge 使用 JWT 进行安全认证:
1. CLI 启动时生成 JWT 密钥对
2. IDE 扩展通过本地连接获取公钥
3. 每次通信携带 JWT Token
4. 双向验证身份
功能列表
从 IDE → Claude Code
- 发送选中的代码片段
- 发送文件路径上下文
- 触发命令执行
- 传递编辑器状态(光标位置、打开的文件等)
从 Claude Code → IDE
- 打开/聚焦文件
- 应用代码编辑
- 显示差异对比
- 导航到特定位置
- 显示诊断信息
权限回调
当 Claude Code 在 IDE 模式下运行时,权限确认可以通过 IDE 的 UI 进行:
Claude Code 请求执行工具
↓
通过 Bridge 发送权限请求到 IDE
↓
IDE 显示权限确认对话框
↓
用户在 IDE 中确认/拒绝
↓
结果通过 Bridge 返回给 CLI
BRIDGE_MODE 特性标记
在编译时,BRIDGE_MODE 特性标记控制是否包含 IDE 桥接代码:
if (BRIDGE_MODE) {
// IDE 桥接相关代码
initBridge();
registerBridgeCallbacks();
}
这确保了独立 CLI 模式下不会包含不必要的桥接代码。