核心用法
JS Eyes 是 OpenClaw 生态的浏览器自动化基础设施,通过 Chrome/Firefox 扩展与本地 WebSocket 服务器联动,实现网页浏览、表单填充、数据提取等自动化操作。技能以「主插件 + 扩展技能」架构运行:主插件提供核心 js-eyes 工具,扩展技能(如 bilibili、GitHub、知乎等平台适配)通过 skill.contract.js 声明能力,支持热加载无需重启。
典型部署流程
1. 环境准备:Node.js ≥22,运行 npm install 安装依赖
2. OpenClaw 配置:注册 {baseDir}/openclaw-plugin 路径,启用 js-eyes 插件,允许 js-eyes 工具
3. 安全配置:合并 ~/.js-eyes/config/config.json,设置 security.allowRawEval: true(SKILL 合约必需),启用默认捆绑技能
4. 浏览器扩展:安装扩展后,通过 Native Messaging 或手动粘贴同步 server token
5. 验证:openclaw js-eyes status 查看服务器与浏览器连接状态,browser/get-tabs 返回真实标签页即成功
扩展技能管理
- 注册表技能:
skills/discover→skills/plan-install→skills/approve→skills/enable四步安装 - 外部自定义技能:
js-eyes skills link <绝对路径>零重启挂载,unlink移除 - 热加载机制:
SkillRegistry+ chokidar 监听配置变更,300ms 内生效
显著优点
| 维度 | 说明 |
|------|------|
| **零重启架构** | 技能增删改、安全配置更新均无需重启 OpenClaw,开发迭代效率极高 |
| **分层安全策略** | 支持 egress 出站白名单、敏感操作确认(consent)、工具级策略(toolPolicies)、raw eval 开关等多层管控 |
| **双模部署** | ClawHub Bundle 模式与源码开发模式无缝切换,后者支持扩展热重载 |
| **Native Messaging** | 2.4.0+ 支持从主机自动同步 token,消除手动配置摩擦 |
| **完整性校验** | 注册表技能带 `.integrity.json`,防止运行时篡改 |
潜在缺点与局限性
1. 安全权衡:默认 SKILL 合约要求 allowRawEval: true,允许浏览器端执行任意 JavaScript,虽便利但扩大攻击面;doctor 会标记为「预期不安全」
2. Node.js 版本锁定:严格依赖 Node ≥22,旧版本不兼容
3. 浏览器扩展分离:扩展需单独从 GitHub Releases 安装,非一键部署
4. Windows 路径敏感:JSON 中需用正斜杠或转义反斜杠,易配置出错
5. 外部技能无完整性保护:extraSkillDirs 中的自定义技能跳过 .integrity.json 校验,需手动审计
适合人群
- 自动化测试工程师:需要跨平台浏览器自动化与多站点技能复用
- RPA 开发者:构建基于浏览器的数据采集、表单提交工作流
- OpenClaw 高级用户:愿意接受
allowRawEval风险以换取完整 JS 执行能力 - 技能开发者:利用热加载机制快速迭代
skill.contract.js
不适合:追求极致沙箱安全、拒绝任何 raw eval 场景的企业合规环境(除非接受功能受限的 Safe Default Mode)
常规风险
| 风险项 | 说明与缓解 |
|--------|-----------|
| **Token 泄露** | `server.token` 是 WebSocket 认证凭据,泄露可导致本地权限丧失;建议绑定 loopback、启用 Native Messaging 自动同步而非手动粘贴 |
| **恶意扩展技能** | 外部技能目录可被任意代码执行;生产环境应启用 `verifyExtraSkillDirs` 或仅使用注册表技能 |
| **XSS via raw eval** | `execute_script` 等操作注入恶意 JS;通过 `toolPolicies` 限制敏感工具为 `confirm` 策略 |
| **Native Messaging 劫持** | 主机启动器脚本若被篡改,可能截获 token;建议从可信源运行 `bin/js-eyes-native-host-install.*` |
| **依赖供应链** | `npm install` 及 `npx` 回退路径接触 npm registry; air-gap 环境需预下载依赖 |
> 注:安全认证报告显示为占位符,未执行实际安全扫描,生产部署建议补充 SAST/依赖审计。