OpenCLI:为AI Agent打造统一命令行运行时

15 次阅读 0 点赞 0 评论 6 分钟原创开源项目

OpenCLI在GitHub Trending首秀即获2万+星,通过将所有工具CLI化解决AI Agent时代集成碎片化问题。内置100+网站适配器,基于Chrome DevTools Protocol实现浏览器会话复用,零LLM成本的确定性输出让大规模自动化成为可能。

#AI Agent #CLI工具 #浏览器自动化 #开源项目 #Node.js
OpenCLI:为AI Agent打造统一命令行运行时

OpenCLI:为AI Agent打造统一命令行运行时,这个思路太妙了

今天看到一个很有意思的项目——OpenCLI,它在GitHub Trending上首次亮相就拿到了2万+星。作为一个常年跟CLI打交道的后端开发者,这个项目的切入点让人眼前一亮:它不是又一个新CLI工具,而是在解决AI Agent时代的工具集成碎片化问题

它到底解决了什么问题?

现在的现状是:AI Agent要调用外部工具,每个平台都得单独对接。想爬小红书?写个专用脚本。想操作GitHub?用gh CLI。想控制浏览器?上Puppeteer。结果就是Agent要维护一堆不同的集成方式,兼容性差得离谱。

OpenCLI的思路很直接——把所有东西都变成CLI。无论是网站、浏览器会话、Electron应用还是本地二进制工具,统统封装成统一的命令行接口。AI Agent只需要学会调用opencli <command>这一套东西就够了。

这个设计哲学有一个关键优势:运行时零LLM成本。所有适配器输出都是确定性的,不需要消耗Token,这对大规模自动化场景太重要了。

架构设计分析

OpenCLI的核心架构可以分为三层:

第一层是Browser Bridge。这是整个项目的技术亮点,通过Chrome扩展+本地Daemon的组合,实现对用户已登录浏览器会话的控制。关键是它复用了用户的Chrome登录状态,Credentials完全留在浏览器端,这个安全设计很到位。

第二层是Adapter系统。内置了100+网站适配器,从小红书、B站到Twitter、Reddit,覆盖了主流的内容平台。每个适配器输出统一的格式化数据(支持table/json/yaml/csv),这对后续pipeline处理非常友好。

第三层是CLI Hub。可以注册外部CLI工具(如gh、docker、ntn等),甚至控制Electron桌面应用(Cursor、ChatGPT App等)。通过CDP协议,实现了终端对桌面应用的直接控制。

技术栈与实现细节

项目基于Node.js 21+开发,核心依赖Chrome DevTools Protocol。安装流程比较清晰:

bash 复制代码
## 安装OpenCLI
node --version  # 需要 >= 21.0.0
npm install -g @jackwener/opencli

## 验证安装
opencli doctor

浏览器桥接扩展需要从Chrome Web Store安装,或者手动加载unpacked扩展。这里有个细节:OpenCLI支持多Chrome Profile,每个Profile独立运行扩展实例,通过--profile参数或OPENCLI_PROFILE环境变量切换。

AI Agent集成是另一个关键点。通过Skills系统,Agent可以直接获得操作浏览器的能力:

bash 复制代码
## 安装完整技能包
npx skills add jackwener/opencli

## 或按需安装特定技能
npx skills add jackwener/opencli --skill opencli-adapter-author
npx skills add jackwener/opencli --skill opencli-browser

安装后,Agent可以用自然语言描述需求,比如"帮我检查小红书通知",底层会自动调用opencli browser <session> openstateclick等命令。

实际使用场景

作为开发者,下面几个场景特别实用:

1. 内容聚合与监控

bash 复制代码
## 获取多个平台的热榜
opencli hackernews top --limit 5
opencli bilibili hot --limit 5
opencli reddit hot --format json | jq '.data'

2. 媒体下载

bash 复制代码
## 下载小红书笔记的全部媒体
opencli xiaohongshu download "https://www.xiaohongshu.com/search_result/<id>" --output ./xhs

## B站视频下载(需要yt-dlp)
opencli bilibili download BV1xxx --output ./bilibili

3. 工作流自动化

bash 复制代码
## 检查GitHub PR状态
opencli gh pr list --limit 5

## 操作Notion
opencli ntn pages list

## 发送钉钉消息
opencli dws msg send --to user "hello"

局限性与注意点

这个项目也不是银弹。有几个观察值得注意:

浏览器依赖是所有需要登录的站点操作都依赖本地Chrome会话,如果浏览器没开或者登录态过期,命令就会失败。Exit Code里专门定义了69表示浏览器未连接,77表示需要认证,这对CI集成是个挑战。

维护成本方面,100+适配器意味着每个网站结构变化都可能需要更新。虽然项目提供了opencli-adapter-author技能让Agent自动修复,但稳定性还是取决于社区活跃度。

另外,Node.js版本要求较高(>=21),在一些老旧环境部署可能会有问题。不过考虑到这是一个面向未来的AI原生工具,这个要求也算合理。

写在最后

OpenCLI最让人兴奋的是它的扩展性设计opencli plugin系统允许社区贡献适配器,opencli external register可以无缝集成现有CLI,opencli browser底层原语让Agent能操作任何网站。这种"统一入口+插件生态"的模式,很像当年的package manager,但目标是为AI时代服务。

如果你的工作流涉及多个平台的数据获取或自动化操作,或者你正在开发AI Agent应用,OpenCLI值得深入研究。它可能不是最终答案,但这个"将所有工具CLI化"的方向,确实是解决Agent集成碎片化的一个优雅方案。

项目地址:https://github.com/jackwener/OpenCLI

最后更新:2026-05-18T10:01:35

评论 (0)

发表评论

blog.comments.form.loading
0/500
加载评论中...