核心用法
JS Eyes 是 OpenClaw 生态的官方浏览器自动化技能,通过 WebSocket 协议连接浏览器扩展实现页面操控。部署分为两大模式:ClawHub bundle 安装(推荐)与源码开发部署。无论哪种模式,都必须在 {baseDir} 执行 npm install,并在 ~/.js-eyes/config/config.json 中显式设置 security.allowRawEval: true——这是该技能区别于默认安全策略的关键配置,用于解锁 execute_script 等敏感工具的原始 JavaScript 执行能力。
配置完成后,需将 {baseDir}/openclaw-plugin 注册到 OpenClaw 的 plugins.load.paths,并确保 tools.alsoAllow 包含 js-eyes。重启 OpenClaw 后,通过 openclaw js-eyes status 验证服务器状态,再安装浏览器扩展并完成 Token 同步(2.4.0+ 推荐 Native Messaging 自动同步,否则手动粘贴)。
扩展技能系统是其架构亮点:主包仅提供基础自动化能力,具体业务逻辑通过「扩展技能」动态加载。支持两种来源:
- 注册表技能:通过
js_eyes_discover_skills/js_eyes_install_skill从官方仓库安装,需approve+enable两阶段确认; - 外部自定义技能:通过
js-eyes skills link <path>零重启挂载任意目录,热重载编辑无需重启 OpenClaw。
显著优点
1. 零重启热加载:2.5.2+ 版本通过 chokidar 监听配置文件与技能目录,绝大多数变更(安装、启用、禁用、编辑)实时生效,仅当引入全新工具名时需单次重启。
2. 双层安全策略:独立的安全配置文件(~/.js-eyes/config/config.json)与 OpenClaw 配置分离,支持 egress 白名单、工具级策略、敏感 Cookie 域等细粒度控制,且 2.5.2+ 支持安全字段热重载。
3. 官方生态集成:作为 OpenClaw 一阶插件,与 openclaw CLI 深度整合,提供 js-eyes doctor 一键诊断、完整性校验(.integrity.json)、审计日志等运维工具。
4. 灵活的扩展模型:技能即目录,遵循 skill.contract.js 规范即可接入,支持 runtime.dispose() 生命周期管理,便于团队沉淀私有自动化能力。
潜在缺点与局限性
- 强制开启 raw eval:
allowRawEval: true虽为功能必需,但本质上是降低安全沙箱的妥协,文档明确标注doctor会将其标记为 insecure,需用户主动承担风险。 - Token 与 Native Messaging 配置繁琐:自动同步依赖额外安装 Native Messaging host,跨平台路径差异大(Windows 需关注
%LOCALAPPDATA%),新手易在「Disconnected」状态卡壳。 - Node.js 版本硬约束:要求 Node 22+,旧环境需先行升级。
- 技能卸载缺失:CLI 故意不提供
uninstall,只能先disable再手动删目录,对洁癖用户不友好。 - 工具调用需人工审批:2.2.0+ 后敏感操作(
execute_script*、get_cookies*等)默认进入confirm策略,需交互式批准,批量自动化场景可能阻塞。
适合人群
- 需要浏览器自动化(爬虫测试、RPA、页面监控)的 OpenClaw 用户;
- 希望快速复用官方技能(如运维、数据分析场景)的中小团队;
- 有 Node.js 背景、希望封装私有自动化逻辑的开发者与 DevOps 工程师。
常规风险
- 代码执行风险:
allowRawEval允许模型直接注入任意 JavaScript,若模型被 prompt injection 或用户误操作,可能导致恶意脚本在浏览器上下文执行。 - Token 泄露:Server Token 若通过非加密渠道传输(如手动复制到剪贴板),可能被旁路嗅探;Native Messaging 虽缓解此问题,但 host 安装本身需系统级权限。
- 供应链攻击:扩展技能支持任意目录挂载,若
extraSkillDirs指向未审计的第三方代码,等同于向 OpenClaw 注入未经验证的插件。 - egress 策略绕过:热重载安全字段时,
js_eyes_egress_approve的会话级授权会被重置,长期运行的自动化任务可能意外触发策略拦截。 - 配置漂移:
~/.js-eyes/config/config.json与openclaw.json分离存储,备份/迁移时易遗漏,导致重建环境时功能异常。