容易搅在一起的三件事
桌面端能碰网页,但不是一条路
这次对照了 1.26832.0 与后来安装的 1.37937.3。新包设置中出现 Built-in browser 和 Preferred browser,通用 PreviewContext 中也有 pane、tab 与 CDP 逻辑。这些材料支持 Code 与 Cowork 复用浏览器组件的判断;具体入口仍要分别看,不能把内置标签页、虚拟机和扩展混为一谈。
内置浏览器(默认)Electron 隔离标签 + CDP。不碰你的书签和密码。
需要你自己的登录时 ↓
Claude in Chrome扩展进你的真 Chrome,走 native host 或 websocket 桥。
网页工具不够、要操作整个桌面时 ↓
Computer use / VM这是点屏幕,不是内置浏览器。
我拆到了什么
本机后来升过一版,内核还是那套标签页
第一次拆的是 /Applications/Claude.app 1.26832.0,签名 2026-08-06,Electron 42.7.0,内嵌 Chrome/148.0.7778.280。引擎当时已经在。后来这台机器升到 1.37937.3(8 月 26 日),Cowork 开关才写进设置文案:coworkBrowserToolsEnabled、coworkPreferredBrowser(built_in 或 chrome,默认前者)。关掉 Built-in browser,只从 Cowork 拿掉 pane 和那套浏览器工具。Claude in Chrome 还在。Code 里的浏览器也还在。
每个 tab 挂着一个 CDPTools
主进程 chunk 是 .vite/build/index.chunk-DIBPwUV0.js。tab 一侧是 WebContentsView,一侧是 CDPTools。挂上会打 [CDPTools] Attached to webContents。
协议命令包括 Accessibility.getFullAXTree、Input.dispatchMouseEvent、Input.dispatchKeyEvent、Input.insertText、Page.captureScreenshot、Runtime.evaluate、Network.getResponseBody、Emulation.setDeviceMetricsOverride。方法名是 clickAt、fill、takeSnapshot、typeText、pressKey。
模型手上的工具名
清单在 index.chunk-CEp6GoCO.js。preview_start、read_page、computer、javascript_tool、form_input、tabs_context。旧别名 preview_click、preview_snapshot 还留着。
MCP 前缀是拼出来的。代码里 T = "Claude Browser",空格换成下划线,就是 mcp__Claude_Browser__*。系统提示块 <browser_surfaces> 把这条标成默认,把 mcp__claude-in-chrome__* 写成只有需要你已有登录时才用。
真要进你的 Chrome,走的是另一座桥
扩展生产 ID:fcoeoabgfenejglbffodgkkbkcdhcgfn。还有两个备用。桌面会把 native messaging 清单写进 Chrome / Edge 的 NativeMessagingHosts。host 名 com.anthropic.claude_browser_extension,二进制在 Contents/Helpers/chrome-native-host,stdio。
这个 Rust 程序还会在本机开 Unix socket,前缀 claude-mcp-browser-bridge-。过不了本机通道时,还有 wss://bridge.claudeusercontent.com。帮助文档把整条路叫 Claude in Chrome。
那台 10GB 虚拟机别算进来
用户目录里有 vm_bundles/claudevm.bundle:ARM64 Linux 内核、10GB rootfs、gVisor MAC、.cowork-adopted。那是 Cowork 给 computer use 用的沙箱桌面。内置浏览器的 tab 活在 Electron 的 partition 里,路径不一样。
我在检查位置看到 playwright-core 相关的下载域名白名单,没有找到 chromium.launch。内置 pane 的已定位路径使用 Electron 标签页;仅靠字符串搜索,不排除安装包其他位置存在不同实现。