本期主角是 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」共用同一套工具目录。
它为什么值得关注?
opencli 统一入口,同时提供内置站点命令,以及外部 CLI 的注册与发现AGENT.md / .cursorrules 在其中完成配置 opencli list 方便进行自动发现explore / synthesize / record 通过相关流程,把交互操作沉淀成可脚本化命令table / json / yaml / md / csv,遵循 Unix 退出码约定,更方便接入 CIopencli-operate、explore / synthesize / cascade 等相关工作流opencli doctor、常见错误码,以及扩展无法连接的问题jq、脚本、CI)会更容易上手OpenCLI 是一个 Node.js 编写的通用命令行运行时:一侧连接 浏览器(通过扩展 + 本地守护进程,复用用户已登录站点),另一侧聚合 本地已安装的 CLI(gh、docker、飞书 lark-cli 等),并可把 Electron 桌面应用 通过 CDP 等方式纳入同一「命令表」。项目强调 Deterministic(相同命令、稳定输出结构)、可脚本化、对 AI Agent 友好(Skills、命令发现、文档内嵌工作流)。
常见使用方式包括:从终端获取各站内容,并将 JSON 通过管道交给 LLM;也可让 Agent 借助 operate 把团队内部工具纳入其中,并由真实浏览器执行复杂页面操作 opencli register 之后加入统一的发现列表。
@jackwener/opencliREADME.md、README.zh-CN.md、docs/opencli gh、opencli docker 等 透传;缺失时可尝试通过包管理器 自动安装(如 README 所述 brew install 再执行)。sysexits.h 所采用的退出码,方便 shell 和 CI 使用。在终端中获取并使用站点数据
-f json 通过管道交给脚本或模型处理。AI Agent 统一工具发现
AGENT.md 或者 .cursorrules 之中引导其执行 opencli list,降低「不知道有哪些工具」带来的使用门槛。将重复的网页操作转化为固定命令
record / 以及生成适配器的相关工作流,把单次操作转化成能够复用的 CLI。在自动化流程中控制桌面 AI 应用
与现有 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
docs/adapters/desktop/)。opencli-operate Skill 配套。explore / synthesize / generate 等生成与注册流程。opencli register mycli 将自有 CLI 纳入列表。opencli plugin install 等子命令管理社区插件。table(默认)、json、yaml、md、csv。opencli doctor 诊断扩展、守护进程与连接。| 对比项 | OpenCLI | 单一站点爬虫脚本 | 纯 Playwright 自写 |
|---|---|---|---|
| 统一入口与发现 | ✅ opencli list + Hub | ❌ 各写各的 | ⚠️ 需自建规范 |
| 登录态 | ✅ 复用用户浏览器 | ⚠️ 常要单独处理 Cookie | ⚠️ 需自行维护会话 |
| AI 集成 | ✅ Skills + operate 工作流 | ❌ 通常无 | ⚠️ 需自建 |
| 输出规范 | ✅ 多格式 + 退出码约定 | ⚠️ 视项目而定 | ⚠️ 视项目而定 |
| 学习成本 | ⚠️ 需装扩展与理解概念 | ✅ 单点脚本简单 | ❌ 工程量大 |
为什么选择它?
opencli 内置适配器调度、插件加载和外部 CLI 透传,均由子命令解析结果驱动。clis/ 等路径中动态加载(以官方文档为准)。docs/adapters/desktop/*.md 中的说明为准。在 Agent 端,可优先查阅仓库内 skills/ 依据「快模式 / 全模式」所需深度,选用目录中的不同 Skill 文件。
常见 Unix 退出码约定也用于 OpenCLI,示例包括 69 如 Browser Bridge 未连接,则表示服务不可用;77 则代表需要登录等情况,便于在 shell 中进行分支处理和自动化重试。
README.zh-CN.mdTESTING.mddocs/guide/plugins.md欢迎前往我中的个人主页,发现更多实用知识与有趣产品