v2.10 支持多客户端同时连接 + 自动重连

把 Chrome 变成
CDP 服务器

Chrome 扩展,将浏览器暴露为 CDP 端点。无需重启浏览器,直接用 Playwright/Puppeteer 接管你正在用的 Chrome。支持多客户端并行,页面相互隔离。

🚀 立即安装 ⭐ GitHub
$ npm install -g cdp-tunnel
客户端并行
9221
默认端口
100%
TypeScript
2.10
最新版本
DEMO

3 行命令,接管你的 Chrome

安装扩展 → 启动代理 → 用 Playwright 连接

cdp-tunnel · bash
# ① 安装并启动代理服务器
$ cdp-tunnel start
✓ Proxy server listening on http://localhost:9221
✓ Loading Chrome extension from ~/.cdp-tunnel/extension

# ② 用 Playwright 连接(可以是 Python / Node / 任何语言)
$ node -e "
const browser = await chromium.connectOverCDP('http://localhost:9221');
const page = await browser.newPage();
await page.goto('https://github.com');
console.log(await page.title());
"

GitHub · Build and ship software on a single, collaborative platform

# ③ 同时开第二个客户端(用同一个 Chrome,不同 tab)
$ node -e "...chromium.connectOverCDP('http://localhost:9221')..."
✓ New session created, isolated context
FEATURES

为复杂自动化场景设计

🔌

多客户端并行

同一个 Chrome 实例,支持 N 个 Playwright/Puppeteer 客户端同时连接,页面相互隔离互不干扰。

🎨

可视化配置

扩展弹出页面可视化配置端口、白名单、认证 token,无需手动改 JSON。

🔄

自动重连

页面刷新、Chrome 重启后自动重连代理服务器,会话状态不丢失。

🔐

JWT 认证

可选 token 鉴权,防止未授权访问。支持多用户多 token。

📡

WebSocket 代理

HTTP 接受连接,WebSocket 桥接到 Chrome 扩展,完美穿透防火墙。

🧪

7 个 E2E 测试

完整的端到端测试覆盖,包括多客户端、断线重连、token 鉴权等场景。

ARCHITECTURE

架构图

┌──────────────────────────────────────────────────────────┐
│                  Proxy Server (localhost:9221)           │
│                                                          │
│   /plugin  ←────── Chrome Extension (WebSocket)          │
│   HTTP     ←────── Playwright/Puppeteer Clients          │
└──────────────────────────────────────────────────────────┘
       ↑                  ↑                  ↑
       │                  │                  │
       │                  │                  │
   Client 1           Client 2           Client 3
   (Python)           (Node.js)          (Bash)
   connectOverCDP     puppeteer.connect  cdp-tunnel cli

开始用 CDP Tunnel

2 分钟让 Chrome 暴露为 CDP 服务,适配所有自动化场景