一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

一天一个开源项目(第64篇):OpenCLI - 将任意网站、Electron 应用和本地工具统一为 CLI

时间:2026-07-29 12:36:55 编辑:袖梨 来源:一聚教程网

开篇介绍

本期主角是 OpenCLI(GitHub),也是「一天一个开源项目」系列介绍的第 64 个项目。

一天一个开源项目(第64篇):OpenCLI - 把任意网站、Electron 应用与本地工具变成统一 CLI

终端里的「万能入口」一直是开发者梦寐以求的形态:既要能调 ghdocker,又要能刷 B 站热榜、查知乎、管小红书,最好还能让 AI Agent 一眼发现、一键调用。OpenCLI 的定位很直接:把任意网站、Electron 桌面应用或本地 CLI 工具,标准化成统一的命令行接口;通过 Browser Bridge(Chrome/Chromium 扩展 + 微守护进程)复用你已登录的浏览器会话,配合 70+ 预置适配器、CLI Hub 透传(opencli ghopencli docker 等)、Electron 应用适配(如 Cursor、Antigravity、ChatGPT 桌面版等),以及面向 AI 的 opencli-operate 技能(点击、输入、截图、抽取等浏览器操作),让「人」和「Agent」共用同一套工具目录。

它为什么值得关注?

  • ? 统一 CLI Hub:一个 opencli 统一入口,同时提供内置站点命令,以及外部 CLI 的注册与发现
  • ? 复用 Chrome/Chromium 登录态执行浏览器命令,凭据始终处于浏览器语境,因此账号相对安全(以官方 README 说明为准)
  • ? 为 AI Agent 设计:Skills、AGENT.md / .cursorrules 在其中完成配置 opencli list 方便进行自动发现
  • ? 让网站成为 CLI:explore / synthesize / record 通过相关流程,把交互操作沉淀成可脚本化命令
  • ?️ Electron 同样能够 CLI 化:借助适配,可从终端驱动桌面 AI 应用、IDE、IM 等工具
  • ? 输出支持管道处理:table / json / yaml / md / csv,遵循 Unix 退出码约定,更方便接入 CI

本文可以学到什么

  • 从 Browser Bridge、守护进程、CLI 本体到扩展:梳理 OpenCLI 各产品层级的关联
  • 站点适配器、CLI Hub、Electron 适配与插件机制:四项内置能力
  • AI 端的集成方式:opencli-operateexplore / synthesize / cascade 等相关工作流
  • 以文档为准,梳理 Provider 条款、登录态复用,以及 Sparkle 式更新范围之外的数据流和隐私边界
  • 掌握本地开发及排障:opencli doctor、常见错误码,以及扩展无法连接的问题

需要具备的基础知识

  • Node.js 20+(或 Bun 1.0+)与 npm 全局安装经验
  • 「加载未打包扩展」操作基础,适用于 Chrome / Chromium
  • 如果熟悉终端和管道(jq、脚本、CI)会更容易上手
  • 适配器开发可选基础:浏览器自动化概念,以及 TypeScript / YAML

项目的诞生背景

项目概览

OpenCLI 是一个 Node.js 编写的通用命令行运行时:一侧连接 浏览器(通过扩展 + 本地守护进程,复用用户已登录站点),另一侧聚合 本地已安装的 CLI(ghdocker、飞书 lark-cli 等),并可把 Electron 桌面应用 通过 CDP 等方式纳入同一「命令表」。项目强调 Deterministic(相同命令、稳定输出结构)、可脚本化、对 AI Agent 友好(Skills、命令发现、文档内嵌工作流)。

常见使用方式包括:从终端获取各站内容,并将 JSON 通过管道交给 LLM;也可让 Agent 借助 operate 把团队内部工具纳入其中,并由真实浏览器执行复杂页面操作 opencli register 之后加入统一的发现列表。

作者与团队信息

  • jackwener:维护者及仓库主账号
  • 分发:npm 包名为 @jackwener/opencli
  • 采用 Apache-2.0 许可证

项目相关数据

  • ⭐ 约 12,570 GitHub Stars(数值会随时间变化,请以仓库页面为准)
  • ? Forks: 以 GitHub 页面为准
  • ? 版本:见 npm 与 Releases
  • ? License: Apache-2.0
  • ? 文档:仓库内 README.mdREADME.zh-CN.mddocs/

项目的主要功能

核心能力

  1. 网站 → CLI:适配器总量为 70+,可向 Bilibili、知乎、小红书、Twitter/X、Reddit、YouTube 等站点开放子命令;完整列表入口见文档。
  2. 浏览器自动化(operate):官方 Skills 列出的 open、click、type、screenshot 等页面操作,可组成供 AI Agent 脚本化调用的指令集。
  3. CLI Hub:opencli ghopencli docker 等 透传;缺失时可尝试通过包管理器 自动安装(如 README 所述 brew install 再执行)。
  4. Electron / 桌面应用:Cursor、Codex、Antigravity、ChatGPT 桌面版等多类应用均有内置适配说明,扩展阅读链接也一并给出。
  5. 社区插件生态涵盖 YAML/TS,并提供更新、安装支持。
  6. 输出和退出码:提供多格式输出,并对齐 sysexits.h 所采用的退出码,方便 shell 和 CI 使用。

常见使用场景

  1. 在终端中获取并使用站点数据

    • 获取热榜、搜索结果、时间线等内容,再配合 -f json 通过管道交给脚本或模型处理。
  2. AI Agent 统一工具发现

    • 可以在 AGENT.md 或者 .cursorrules 之中引导其执行 opencli list,降低「不知道有哪些工具」带来的使用门槛。
  3. 将重复的网页操作转化为固定命令

    • 借助 record / 以及生成适配器的相关工作流,把单次操作转化成能够复用的 CLI。
  4. 在自动化流程中控制桌面 AI 应用

    • 从终端编排「应用级」任务时,应遵循文档给出的 Electron 适配路径,同时阅读对应的适配文档与合规边界。
  5. 与现有 CLI 共存

    • 不替换 ghdocker,而是通过 Hub 统一入口与发现。

快速上手

1. 安装 Browser Bridge 扩展

从 GitHub Releases 下载 opencli-extension.zip,随后在 chrome://extensions Load unpacked 需在开发者模式开启后选择。

2. 安装 CLI

npm install -g @jackwener/opencli

3. 自检与试用

opencli doctoropencli daemon statusopencli listopencli hackernews top --limit 5opencli bilibili hot --limit 5

说明:hackernews 等可走公开 API;需要登录态的站点 需先在 Chrome/Chromium 中登录对应网站(见 README 前置说明)。

4.(可选)为 AI 安装 Skills

npx skills add jackwener/opencli# 或按需安装 opencli-usage、opencli-operate、opencli-explorer、opencli-oneshot

核心特性

  1. CLI All Electron:将部分 Electron 应用暴露为可脚本化命令(详见 docs/adapters/desktop/)。
  2. Browser Automation(operate):面向 Agent 的浏览器操控能力,与 opencli-operate Skill 配套。
  3. Website → CLI:大量预置适配器 + explore / synthesize / generate 等生成与注册流程。
  4. 账号与风控:复用真实浏览器登录;README 宣称多层反自动化指纹处理(webdriver、chrome 对象等),以降低被站点风控的概率(效果因站点策略而异)。
  5. CLI Hub 与 register:opencli register mycli 将自有 CLI 纳入列表。
  6. 插件:opencli plugin install 等子命令管理社区插件。
  7. 多格式输出:table(默认)、jsonyamlmdcsv
  8. Self-healing:opencli doctor 诊断扩展、守护进程与连接。
  9. 运行时零 LLM 费用:README 强调常规命令运行不消耗大模型 Token(与「生成适配器时是否调用模型」需区分阅读文档)。

项目优势

对比项OpenCLI单一站点爬虫脚本纯 Playwright 自写
统一入口与发现opencli list + Hub❌ 各写各的⚠️ 需自建规范
登录态✅ 复用用户浏览器⚠️ 常要单独处理 Cookie⚠️ 需自行维护会话
AI 集成✅ Skills + operate 工作流❌ 通常无⚠️ 需自建
输出规范✅ 多格式 + 退出码约定⚠️ 视项目而定⚠️ 视项目而定
学习成本⚠️ 需装扩展与理解概念✅ 单点脚本简单❌ 工程量大

为什么选择它?

  • 网站、桌面应用和已有 CLI,均希望纳入你使用的 一个命令行入口
  • 浏览器操作能力与 Agent 可发现、可执行 的工具表,都是你需要的功能
  • 为获得真实页面行为与登录态,你愿意采用 浏览器扩展 + 本地守护进程 这一架构

深入剖析项目

概念层面的架构分层

  1. CLI 进程负责:opencli 内置适配器调度、插件加载和外部 CLI 透传,均由子命令解析结果驱动。
  2. Browser Bridge:由 Chrome 扩展和本地微守护进程构成,用于协同浏览器会话;README 将其描述为零配置且可自动拉起。
  3. 适配器可采用 YAML/TS 等形式,并放置到 clis/ 等路径中动态加载(以官方文档为准)。
  4. 与桌面应用通信是 Electron 路径的用途,方式包括 CDP 等(各项具体能力以 docs/adapters/desktop/*.md 中的说明为准。

README 所陈述的 AI 相关工作流

  • explore:对站点/API 做能力发现
  • synthesize:用于生成适配器
  • generate:一键 explore → synthesize → register
  • cascade:按照 PUBLIC → COOKIE → HEADER 等层级对 API 实施探测策略

在 Agent 端,可优先查阅仓库内 skills/ 依据「快模式 / 全模式」所需深度,选用目录中的不同 Skill 文件。

退出码及可观测性

常见 Unix 退出码约定也用于 OpenCLI,示例包括 69 如 Browser Bridge 未连接,则表示服务不可用;77 则代表需要登录等情况,便于在 shell 中进行分支处理和自动化重试。

使用限制与注意事项

  • 项目对浏览器生态依赖较强,用户需要正确安装扩展,并确保 Chrome/Chromium 始终可用。
  • 站点策略可能变化:站点改版后,适配器或许需要同步更新;风控及 ToS 应由用户自行评估。
  • Electron 适配与具体应用的版本、权限有关,使用前必须认真阅读官方适配文档。

项目资源与地址

官方提供的资源

  • ? GitHub: github.com/jackwener/o…
  • ? npm: www.npmjs.com/package/@ja…
  • ? 扩展获取: Releases
  • ? 仓库内 docs/adapters/index.md: 适配器索引
  • ? Issues: github.com/jackwener/o…

其他相关资源

  • 中文 README:仓库内 README.zh-CN.md
  • 测试相关说明:TESTING.md
  • 插件使用指南:docs/guide/plugins.md

适合哪些人使用

  • 面向全栈开发者:在终端中将 桌面应用 + 本地 CLI + 网站数据 归入统一调用入口
  • 需要可发现工具表,并以 Claude Code、Cursor 等工具建设 Agent 工作流的团队
  • 面向进阶用户:接受以 浏览器扩展 + 本地守护进程 为前置条件并负责维护

欢迎前往我中的个人主页,发现更多实用知识与有趣产品

热门栏目