核心功能
browser-js 是一款通过 Chrome DevTools Protocol (CDP) 与浏览器通信的命令行工具,为 AI Agent 提供高效的网页自动化能力。相比内置浏览器工具,它采用索引化输出而非完整的可访问性树,将每次交互的 token 消耗从 2,000-8,000 降低至 50-200,实现 3-10 倍的效率提升。
显著优点
极致的 Token 效率:这是该工具最核心的竞争力。通过 elements 命令返回紧凑的编号列表(如 [3] (button) Submit),Agent 可直接使用 click 3 或 type 2 "text" 执行操作,无需解析复杂的 DOM 结构或进行引用查找。
真实的浏览器交互:click 命令使用 CDP 的 Input.dispatchMouseEvent 发送真实的鼠标按下/释放事件,而非 JavaScript 的 .click() 方法。这确保了对 React、Vue、Angular 等现代框架的完整兼容,在 Instagram、GitHub、LinkedIn 等 SPA 上表现可靠。
无缝的文件上传:upload 命令利用 DOM.setFileInputFiles 直接注入文件到隐藏的 <input type="file"> 元素,绕过操作系统文件选择对话框,支持 Instagram、Twitter 等平台的自动化上传。
灵活的 JavaScript 执行:eval 命令允许在页面上下文中运行任意 JavaScript,为自定义数据提取和复杂交互提供无限可能。
潜在局限
- 依赖外部浏览器:需要 Chrome/Chromium 以
--remote-debugging-port参数启动,或使用 OpenClaw 内置浏览器 - 学习曲线:相比直观的自然语言描述,编号索引机制需要 Agent 适应特定的交互模式
- 无内置视觉理解:虽支持截图,但需结合其他工具进行图像分析
- 调试端口暴露:CDP 端口若配置不当可能存在本地安全风险
适用人群
特别适合需要高频浏览器交互的自动化工作流、大规模网页数据抓取、表单批量处理,以及对 token 成本敏感的长期运行 Agent 任务。
常规风险提示
- CDP 端口默认绑定
127.0.0.1:18800,避免在公共网络暴露 - 文件上传功能直接操作系统文件,需确保路径参数可信
eval命令执行任意 JavaScript,应对来源可控的代码保持警惕