OpenCLI 使用指南
将任何网站变为 CLI,并利用已登录的浏览器驱动 AI 代理。
该技能明示了登录态凭据从Chrome会话中提取,但未说明数据流向、存储位置或用户确认机制;权限设置仅限Bash(opencli:*)和Read,相对克制,但未提供回滚或隔离机制。扣分原因:敏感数据处理和数据流透明度不足。
文档详细,CI提供了构建和单元测试,但未针对本技能核心路径(如浏览器绑定、适配器发现)提供直接测试证据;跳过真实站点回归测试中的不稳定情况。扣分原因:静态审查无法验证关键路径,且测试覆盖不完整。
清晰说明了适用场景(如代理发现、浏览器驱动)和非适用场景(如依赖浏览器但未安装扩展),并提供了中文支持(如README中的中文文档链接)。扣分原因:核心功能依赖Chrome扩展,需从Chrome Web Store安装,可能影响中国大陆网络环境下的可达性。
文档结构清晰,分层明确,提供了安装说明、示例、环境变量和已知限制(如移除的命令),但缺少版本历史和维护责任声明。扣分原因:治理信息不完整。
技能描述了核心任务(如发现适配器、驱动浏览器),但未提供可直接使用的输出示例或验证结果。扣分原因:静态审查无法验证输出直接可用性。
存在CI工作流和测试套件,但未覆盖本技能的关键路径,且为静态审查。扣分原因:缺乏第三方执行证据。
- 技能声称从Chrome会话中提取凭据,但未说明凭据的存储位置和清理机制,存在敏感信息泄露风险。
- 核心功能依赖Chrome扩展,需从Chrome Web Store安装,可能无法从中国大陆网络访问,或需手动加载扩展。
- 用户确认机制不明确:技能可能代表用户执行浏览器操作(如点击、填写表单),但未明确要求用户确认。
- 技能引用了外部命令(如yt-dlp),但未提供安装和版本要求。
这个 Skill 能做什么,适合哪些场景?
OpenCLI 将网站、Electron 应用和外部 CLI 统一为 `opencli <site> <command>` 接口,供 AI 代理直接驱动。本技能是 OpenCLI 的起始地图,帮助代理了解可用功能、发现适配器、掌握通用参数与输出格式,并指导加载下一步所需的专业技能。通过运行 `opencli list -f json` 获取实时命令列表,而非依赖静态文档。
执行 opencli list -f json 获取实时命令列表;支持 opencli <site> --help 查看站点帮助;支持 -f 格式参数(json/plain/yaml/table/md/csv);支持 -v 详细日志;诊断浏览器桥接(opencli doctor)并读取环境变量配置。
- AI 代理启动 OpenCLI 会话时,加载本技能以了解整体能力。
- 代理询问“opencli 能做什么?”时,运行命令获取当前命令列表。
- 代理需要查找特定网站的适配器命令,通过 `opencli list -f json` 或 grep 筛选。
- 代理在执行浏览器相关操作前,检查 `opencli doctor` 诊断浏览器桥接状态。
- 代理需要决定下一步加载哪个专业技能(如 opencli-browser、opencli-adapter-author)时。
这个 Skill 有哪些优点和局限?
- 实时命令发现,避免文档过期问题
- 明确列出不同策略(PUBLIC/COOKIE/INTERCEPT/UI/LOCAL)的依赖
- 提供自修复流程(--trace retain-on-failure)和错误诊断
- 支持多种输出格式,便于代理解析
- 需要 Node.js >= 21,且部分功能依赖浏览器扩展和登录态
- 浏览器相关命令需要 `opencli doctor` 通过,增加环境依赖
- 未提供独立测试套件或证据,适配器稳定性依赖于自动化修复
- 涉及 Electron 应用时,需要应用在运行中
如何安装这个 Skill?
安装整个 OpenCLI 集合:npx skills add jackwener/opencli --skill opencli-usage 或直接复制 skills/opencli-usage 文件夹到代理的 skills 目录。
如何使用这个 Skill?
在代理提示词中触发:当任务涉及 OpenCLI 时,代理应首先调用 opencli list -f json 获取可用命令,根据策略选择适配器或浏览器命令。例如,opencli hackernews top --limit 5。
这个 Skill 与同类方案有什么区别?
与 playwright 或 puppeteer 等直接浏览器自动化工具相比,OpenCLI 提供了更高层的适配器抽象和登录态复用,但要求安装特定 CLI 和浏览器扩展。