claudecode学习 第 21 章 · IDE 集成

3 阅读2分钟

目标:讲清 Claude Code 与外部编辑器的集成机制——VS Code WebSocket 连接协议(lock 文件 + auth token)、/remote-control 跨设备远程遥控、Desktop App 架构。素材偏薄但信息密度高。 受众:专业程序员。本机版本 2.1.220


21.1 与 VS Code 的连接协议

~/.claude/ide/ 目录下只有一个 lock 文件:

{
  "pid": 527,
  "workspaceFolders": ["/Users/jsl/Desktop/thesis"],
  "ideName": "Visual Studio Code",
  "transport": "ws",
  "runningInWindows": false,
  "authToken": "0ef63dc0-15ab-4589-af7f-1befb6bb3e94"
}

连接流程

VS Code 扩展启动
  │
  ├─→ 生成 authToken(随机 UUID)
  │
  ├─→ 写入 lock 文件(~/.claude/ide/{pid}.lock)
  │     ├─ pid: IDE 进程 ID
  │     ├─ workspaceFolders: 当前打开的工作区路径
  │     ├─ ideName: "Visual Studio Code""JetBrains" 等
  │     └─ transport: "ws"(WebSocket)
  │
  ├─→ 建立 WebSocket 连接到 Claude Code
  │
  └─→ Claude Code 验证 authToken → 接受连接 → 双向通信

Token 认证:每次连接生成新 token。Claude Code 验证后才接受。防止其他进程冒充 IDE。

lock 文件的生命周期

  • 创建:IDE 扩展启动时
  • 持有:连接期间
  • 清除:断开时删除

lock 文件是单实例锁——同一时间只有一个 IDE 可以连接。文件名是 {pid}.lock,如果旧进程崩溃留下残留文件,新进程会用新 PID 覆盖。


21.2 跨设备:/remote-control

从二进制 system prompt 确认的功能:

Run /remote-control to take this session with you and pick up right where you left off on any device. Open the Code tab in the Claude mobile app, or visit claude.ai/code in a browser. The session keeps running on this machine while your other devices act as a remote control.

工作机制

你的 Mac(运行 Claude Code CLI)
  │
  ├─→ /remote-control → 生成 session 连接令牌
  │
  └─→ 手机/浏览器通过 claude.ai/code 连接
       └─→ 看到实时对话流
       └─→ 可以发送消息
       └─→ Agent 循环仍在你的 Mac 上执行
       └─→ 远程设备只是"遥控器"

关键认知:这不是云端同步。Session 始终运行在原始机器上。远程设备是输入输出的代理。

Teleport

Ch15 提到的 Ultraplan teleport——方案从 web 端传到本地终端。这是反方向的:Plan 在云端写好 → teleport 到本地执行。/remote-control 和 teleport 配合形成双向通道。


21.3 Desktop App

二进制中有桌面 GUI 的痕迹:

  • --open 标志:启动后打开浏览器窗口
  • Unix socket 通信
  • 系统通知推送

架构推测:

Claude Code CLI(后台守护进程)
  └─→ Unix socket / WebSocket
       └─→ Electron/Tauri 桌面壳(GUI)
            └─→ 或浏览器(claude.ai/code

但素材偏薄——~/.claude/ide/ 只有一个 lock 文件。二进制中没有更多 IDE 集成细节。


21.4 本章核心带走

  1. VS Code 通过 WebSocket + authToken 连接。 lock 文件(~/.claude/ide/{pid}.lock)存储连接参数。单实例锁。

  2. /remote-control 是远程遥控。 Session 仍在本地执行。手机/浏览器只是远程 I/O 代理。不是云端同步。

  3. Teleport 是反方向。 Plan 从云端传回本地。/remote-control + teleport 构成双向通道。

  4. 集成层设计简洁。 没有复杂 RPC 协议——一个 WebSocket + 一个 JSON lock 文件。