Docker Chrome桥接工具

允许在Docker容器中运行的Claude Code通过TCP桥接控制主机上的Chrome浏览器,实现页面导航、表单填写、截图等功能。

  • by vaclavpavek
  • JavaScript
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 vaclavpavek/claude-code-remote-chrome

使用说明

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帐户凭据

设置

  1. 创建 .env.local 使用您的凭据:

    CLAUDE_CREDENTIALS={"claudeAiOauth":{"accessToken":"...","refreshToken":"...","expiresAt":...}}
    

    你可以在以下网址找到这些 ~/.claude/.credentials.json 在你的主机上。

  2. 构建并启动 容器:

    make up
    
  3. 启动主机网桥 (独立终端):

    node bridge-host.js
    
  4. 集装箱内部,启动克劳德(桥通过入口点自动启动):

    claude --chrome
    
  5. 让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.