浏览器自动化工具

OpenClacky 内置浏览器自动化能力,让 Agent 可以直接操控你电脑上的 Chrome 或 Edge 浏览器——点击、填表、截图、抓取页面内容,完成需要登录或 JavaScript 渲染的任务。


工作原理

Agent 通过 Chrome DevTools Protocol (CDP) 连接到你本机的浏览器调试端口,使用你已有的登录状态和 Cookie,无需重新登录。

连接方式由 OpenClacky 在运行时自动检测,优先级如下:

  1. DevToolsActivePort 文件 — 浏览器启动时若写入了 DevToolsActivePort 文件,直接读取端口和 WebSocket 路径,零配置连接
  2. TCP 端口探测 — 扫描 9222~9224 端口,检测是否有浏览器在监听
  3. 自动连接回退 — 前两种均未找到时,尝试使用 --autoConnect 自动拉起浏览器

支持的浏览器

浏览器 macOS Linux Windows (WSL)
Google Chrome
Microsoft Edge
Chrome Beta / Canary -

使用前:启动浏览器调试模式

Agent 需要浏览器以 远程调试模式 启动。根据你的系统选择对应方式:

macOS

Chrome:
bash
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--remote-debugging-port=9222 --no-first-run

Edge:
bash
/Applications/Microsoft\ Edge.app/Contents/MacOS/Microsoft\ Edge \
--remote-debugging-port=9222 --no-first-run

Linux

Chrome:
bash
google-chrome --remote-debugging-port=9222 --no-first-run

Edge:
bash
microsoft-edge --remote-debugging-port=9222 --no-first-run

Windows(WSL 环境)

WSL 内部无法直接启动 Windows 侧的浏览器,需要在 Windows PowerShell 中运行:

Chrome:
powershell
& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
--remote-debugging-port=9222 --no-first-run

Edge:
powershell
& "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" `
--remote-debugging-port=9222 --no-first-run

💡 建议把这条命令保存为 PowerShell 脚本(.ps1),方便每次快速启动。


一键配置:browser-setup Skill

手动命令容易出错?使用内置的 browser-setup Skill 引导完成配置:

/browser-setup

或直接说:

帮我配置浏览器
setup browser

Skill 会自动检测系统环境(macOS / Linux / WSL)、验证连接、并在 ~/.clacky/browser.yml 中保存配置。

详见 内置 Skill 一览 → browser-setup


配置文件

配置保存在 ~/.clacky/browser.yml,通常由 browser-setup Skill 自动生成,无需手动编辑。

# ~/.clacky/browser.yml
user_data_dir: /path/to/UserDataDir   # 可选,手动指定用户数据目录

常见问题

Q:Agent 说找不到浏览器 / 连接失败

请确认:
1. 浏览器已用 --remote-debugging-port=9222 启动(普通方式打开的浏览器不行)
2. 端口 9222 没有被防火墙或其他程序占用
3. 运行 browser-setup doctor 自动诊断

Q:WSL 下 Edge 能用吗?

可以。WSL 环境下 OpenClacky 会自动通过 powershell.exe 查找 Windows 侧的 Edge/Chrome 用户数据目录,并读取 DevToolsActivePort 文件完成连接——前提是已在 Windows 侧用调试模式启动了浏览器。

Q:浏览器版本要求

Chrome / Edge 需要 v146 或更高版本。旧版本的 /json/version HTTP 接口已被弃用,新版本仅支持 WebSocket 连接,OpenClacky 已适配。