核心用法
JS Eyes 是一套面向 OpenClaw 的浏览器自动化基础设施,通过 MCP 协议桥接 AI 代理与浏览器端。核心工作流包含:安装 Node.js 依赖 → 注册 OpenClaw 插件路径 → 配置本地安全令牌 → 连接浏览器扩展 → 启用扩展技能。
关键路径:{baseDir}/openclaw-plugin 必须注册到 OpenClaw 的 plugins.load.paths,而非 {baseDir} 本身。部署后通过 openclaw js-eyes status 验证状态,浏览器扩展需通过 Native Messaging 或手动令牌同步完成双向认证。
显著优点
- 零重启热加载:技能目录变更通过 chokidar 自动感知,OpenClaw 无需重启即可加载新技能(2.5.0+)
- 双模式安全连接:支持 Native Messaging 本地通道(无网络依赖)与手动令牌粘贴,服务端强制令牌校验(
allowAnonymous=false默认) - 分层技能架构:内置 10+ 第一方平台技能(Bilibili/GitHub/Reddit/YouTube 等),同时支持
extraSkillDirs挂载外部自定义技能 - 策略化安全管控:细粒度 egress 出站策略、敏感工具调用确认机制、可热重载的安全配置(2.5.2+)
- 开发友好:源码部署模式下,技能文件编辑即时生效,无需重建插件
潜在缺点与局限
- Node.js 版本锁定:要求 Node 22+,旧环境需升级
- 浏览器扩展分离:扩展需单独从 GitHub Releases 安装,非 bundle 内置
- Native Messaging 平台差异:macOS/Linux 与 Windows 安装脚本路径不同,且需浏览器重启生效
- raw eval 安全风险:默认开启
allowRawEval: true以兼容完整自动化能力,但允许任意 JavaScript 执行;安全加固需显式关闭并承受功能降级 - Windows 路径格式:JSON 配置中需使用正斜杠,易因格式错误导致加载失败
适合人群
- 需要 AI 代理直接操控浏览器完成复杂工作流(表单填写、数据采集、多标签管理)的高级用户
- 希望为特定平台(知乎、小红书、即刻等)快速构建自动化技能集的开发者
- 能接受「本地服务 + 浏览器扩展」架构,具备 Node.js 环境管理能力的运维人员
常规风险
| 风险域 | 说明 |
|--------|------|
| **令牌泄露** | `server.token` 文件若被窃取,攻击者可伪造浏览器连接;建议绑定 loopback 且禁用匿名访问 |
| **任意代码执行** | `allowRawEval=true` 时,`execute_script` 可运行任意 JS;恶意技能或提示词注入可导致会话劫持 |
| **Native Messaging 劫持** | 若主机 manifest 目录权限宽松,恶意程序可注册同名 host 拦截令牌同步 |
| **敏感数据暴露** | `get_cookies*` 等工具需人工确认,但策略配置错误或误批露可导致凭证泄露 |
| **出站策略绕过** | `egressAllowlist` 配置不当可能使自动化流程访问恶意域名;热重载会重置 per-session 授权 |
建议生产加固:allowRawEval=false + verifyExtraSkillDirs=true + 严格 egressAllowlist + 定期 js-eyes doctor 审计