最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
一天一个开源项目(第64篇):OpenCLI - 将任意网站、Electron 应用和本地工具统一为 CLI
时间:2026-07-29 12:36:55 编辑:袖梨 来源:一聚教程网
开篇介绍
本期主角是 OpenCLI(GitHub),也是「一天一个开源项目」系列介绍的第 64 个项目。

终端里的「万能入口」一直是开发者梦寐以求的形态:既要能调 gh、docker,又要能刷 B 站热榜、查知乎、管小红书,最好还能让 AI Agent 一眼发现、一键调用。OpenCLI 的定位很直接:把任意网站、Electron 桌面应用或本地 CLI 工具,标准化成统一的命令行接口;通过 Browser Bridge(Chrome/Chromium 扩展 + 微守护进程)复用你已登录的浏览器会话,配合 70+ 预置适配器、CLI Hub 透传(opencli gh、opencli 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-operate、explore/synthesize/cascade等相关工作流 - 以文档为准,梳理 Provider 条款、登录态复用,以及 Sparkle 式更新范围之外的数据流和隐私边界
- 掌握本地开发及排障:
opencli doctor、常见错误码,以及扩展无法连接的问题
需要具备的基础知识
- Node.js 20+(或 Bun 1.0+)与 npm 全局安装经验
- 「加载未打包扩展」操作基础,适用于 Chrome / Chromium
- 如果熟悉终端和管道(
jq、脚本、CI)会更容易上手 - 适配器开发可选基础:浏览器自动化概念,以及 TypeScript / YAML
项目的诞生背景
项目概览
OpenCLI 是一个 Node.js 编写的通用命令行运行时:一侧连接 浏览器(通过扩展 + 本地守护进程,复用用户已登录站点),另一侧聚合 本地已安装的 CLI(gh、docker、飞书 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.md、README.zh-CN.md、docs/
项目的主要功能
核心能力
- 网站 → CLI:适配器总量为 70+,可向 Bilibili、知乎、小红书、Twitter/X、Reddit、YouTube 等站点开放子命令;完整列表入口见文档。
- 浏览器自动化(operate):官方 Skills 列出的 open、click、type、screenshot 等页面操作,可组成供 AI Agent 脚本化调用的指令集。
- CLI Hub:
opencli gh、opencli docker等 透传;缺失时可尝试通过包管理器 自动安装(如 README 所述brew install再执行)。 - Electron / 桌面应用:Cursor、Codex、Antigravity、ChatGPT 桌面版等多类应用均有内置适配说明,扩展阅读链接也一并给出。
- 社区插件生态涵盖 YAML/TS,并提供更新、安装支持。
- 输出和退出码:提供多格式输出,并对齐
sysexits.h所采用的退出码,方便 shell 和 CI 使用。
常见使用场景
在终端中获取并使用站点数据
- 获取热榜、搜索结果、时间线等内容,再配合
-f json通过管道交给脚本或模型处理。
- 获取热榜、搜索结果、时间线等内容,再配合
AI Agent 统一工具发现
- 可以在
AGENT.md或者.cursorrules之中引导其执行opencli list,降低「不知道有哪些工具」带来的使用门槛。
- 可以在
将重复的网页操作转化为固定命令
- 借助
record/ 以及生成适配器的相关工作流,把单次操作转化成能够复用的 CLI。
- 借助
在自动化流程中控制桌面 AI 应用
- 从终端编排「应用级」任务时,应遵循文档给出的 Electron 适配路径,同时阅读对应的适配文档与合规边界。
与现有 CLI 共存
- 不替换
gh或docker,而是通过 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
核心特性
- CLI All Electron:将部分 Electron 应用暴露为可脚本化命令(详见
docs/adapters/desktop/)。 - Browser Automation(operate):面向 Agent 的浏览器操控能力,与
opencli-operateSkill 配套。 - Website → CLI:大量预置适配器 +
explore/synthesize/generate等生成与注册流程。 - 账号与风控:复用真实浏览器登录;README 宣称多层反自动化指纹处理(webdriver、chrome 对象等),以降低被站点风控的概率(效果因站点策略而异)。
- CLI Hub 与 register:
opencli register mycli将自有 CLI 纳入列表。 - 插件:
opencli plugin install等子命令管理社区插件。 - 多格式输出:
table(默认)、json、yaml、md、csv。 - Self-healing:
opencli doctor诊断扩展、守护进程与连接。 - 运行时零 LLM 费用:README 强调常规命令运行不消耗大模型 Token(与「生成适配器时是否调用模型」需区分阅读文档)。
项目优势
| 对比项 | OpenCLI | 单一站点爬虫脚本 | 纯 Playwright 自写 |
|---|---|---|---|
| 统一入口与发现 | ✅ opencli list + Hub | ❌ 各写各的 | ⚠️ 需自建规范 |
| 登录态 | ✅ 复用用户浏览器 | ⚠️ 常要单独处理 Cookie | ⚠️ 需自行维护会话 |
| AI 集成 | ✅ Skills + operate 工作流 | ❌ 通常无 | ⚠️ 需自建 |
| 输出规范 | ✅ 多格式 + 退出码约定 | ⚠️ 视项目而定 | ⚠️ 视项目而定 |
| 学习成本 | ⚠️ 需装扩展与理解概念 | ✅ 单点脚本简单 | ❌ 工程量大 |
为什么选择它?
- 网站、桌面应用和已有 CLI,均希望纳入你使用的 一个命令行入口
- 浏览器操作能力与 Agent 可发现、可执行 的工具表,都是你需要的功能
- 为获得真实页面行为与登录态,你愿意采用 浏览器扩展 + 本地守护进程 这一架构
深入剖析项目
概念层面的架构分层
- CLI 进程负责:
opencli内置适配器调度、插件加载和外部 CLI 透传,均由子命令解析结果驱动。 - Browser Bridge:由 Chrome 扩展和本地微守护进程构成,用于协同浏览器会话;README 将其描述为零配置且可自动拉起。
- 适配器可采用 YAML/TS 等形式,并放置到
clis/等路径中动态加载(以官方文档为准)。 - 与桌面应用通信是 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 工作流的团队
- 面向进阶用户:接受以 浏览器扩展 + 本地守护进程 为前置条件并负责维护
欢迎前往我中的个人主页,发现更多实用知识与有趣产品
相关文章
- 漫画群星大集结索隆怎么培养 漫画群星大集结索隆教程 07-29
- 漫画群星大集结女帝怎么样 群星集结女帝角色分享 07-29
- 血薪记罪恶园区入侵白晓手机攻略 07-29
- 漫画群星大集结祢豆子好玩吗 群星集结祢豆子攻略分享 07-29
- 漫画群星大集结排位如何上分 漫画群星大集结排位上分攻略 07-29
- 漫画群星大集结由哪个公司出品 漫画群星大集结公司介绍 07-29