Docker中Claude代码的Chrome桥
在Docker容器中运行Claude Code,同时在主机上控制Chrome。
它做什么
Claude Code有一个“Chrome中的Claude”功能,可以让它控制你的浏览器——浏览页面、填写表单、截图等。通常,这只适用于Claude Code直接在您的机器上运行的情况。该项目弥合了这一差距,因此在容器中运行的Claude Code可以与主机上的Chrome进行通信。
运作原理
容器中的socat桥和主机上的Node.js脚本在它们之间转发消息:
Container Host
Claude Code Chrome
| |
v ^
socat (entrypoint) --TCP:9229--> bridge-host.js
(Unix socket) (Unix socket)先决条件
- Docker(Docker桌面、OrbStack或类似工具)
- 主机上的Node.js(用于桥接主机.js)
- Chrome与 Claude浏览器扩展 安装
- Claude帐户凭据
设置
- 创建
.env.local使用您的凭据:
CLAUDE_CREDENTIALS={"claudeAiOauth":{"accessToken":"...","refreshToken":"...","expiresAt":...}}你可以在以下网址找到这些 ~/.claude/.credentials.json 在你的主机上。
- 构建并启动 容器:
make up- 启动主机网桥 (独立终端):
node bridge-host.js- 集装箱内部,启动克劳德(桥通过入口点自动启动):
claude --chrome- 让Claude在Chrome中做一些事情,例如。
open google.com.
命令
| 命令 | 描述 |
|---|---|
make up | 构建图像并启动交互式shell |
make shell | 打开集装箱中的附加码头 |
相关
该项目是一个概念验证解决方案 人类学/克劳德编码#15450 --Chrome扩展程序远程开发支持的功能请求。同样的方法可以适用于Eclipse Che、GitHub Codespace、Gitpod或任何支持 host.docker.internal 或TCP端口转发。
故障排除
- “未检测到扩展名” --确保
bridge-host.js正在主机上运行,Chrome已激活Claude扩展程序。 - 桥接容器无法连接 --验证
bridge-host.js正在侦听端口9229。 - 用户名不匹配 --The
USER容器中的env-var必须与套接字目录名匹配。它默认为claude.
