首页
看点啥
插画图片
首页 看点啥 一天一个开源项目(第64篇):OpenCLI - 用统一 CLI 驱动任意网站、Electron 应用与本地工具

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

2026-07-29 0

引言

今天的主角是 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」共用同一套工具目录。

为什么值得看?

你将学到什么

前置知识

项目背景

项目简介

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

常见用法包括:从终端获取不同站点的内容(通过 JSON 管道交给 LLM),或让 Agent 借助 operate 操作真实浏览器以完成复杂页面任务,也可以将团队内部工具 opencli register 后统一加入可发现列表。

作者/团队介绍

项目数据

主要功能

核心作用

  1. 网站 → CLI:适配器总计 70+,完整列表入口位于文档;子命令覆盖 Bilibili、知乎、小红书、Twitter/X、Reddit、YouTube 等。
  2. 浏览器自动化(operate):open、click、type、screenshot 等页面操作可被 AI Agent 脚本化调用,具体参见官方 Skills。
  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 工作流❌ 通常无⚠️ 需自建
输出规范✅ 多格式 + 退出码约定⚠️ 视项目而定⚠️ 视项目而定
学习成本⚠️ 需装扩展与理解概念✅ 单点脚本简单❌ 工程量大

为什么选择它?

项目详细剖析

架构分层(概念)

  1. CLI 进程:opencli 内置适配器调度、插件加载与外部 CLI 透传,均在子命令解析后进行。
  2. Browser Bridge:由 Chrome 扩展和本地微守护进程构成,用来协同浏览器会话;README 称其零配置且可自动拉起。
  3. 适配器:可采用 YAML/TS 等形式,并放进 clis/ 等目录进行动态加载(以官方文档为准)。
  4. Electron 路径:与桌面应用的通信可采用 CDP 等方式(能力详情以各 docs/adapters/desktop/*.md 为准)。

README 所述的 AI 相关工作流

Agent 可优先查看仓库内 skills/ 「快模式 / 全模式」决定使用深度,对应目录中的 Skill 文件。

退出码和可观测性

常见 Unix 退出码约定也被 OpenCLI 采用,例如 69 如 Browser Bridge 未连接,即表示服务不可用、77 则代表需要登录等情况,适用于 shell 分支处理和自动重试。

局限与注意

项目地址与资源

官方资源

相关资源

适用人群

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

喜欢(0)

上一篇

AI 洪水已经淹到脖子:最后剩下什么?我们应该往哪儿跑?

AI 洪水已经淹到脖子:最后剩下什么?我们应该往哪儿跑?

下一篇

OpenGeno开源库:Spec 总在腐烂?我用一棵树 + 一个 hook 治好了它

OpenGeno开源库:Spec 总在腐烂?我用一棵树 + 一个 hook 治好了它
猜你喜欢