一、项目概述
1.1 项目简介
OpenCLI 是一个将任意网站、浏览器会话、Electron 桌面应用和本地工具转换为标准化命令行界面的通用工具。它同时也是一个 AI 原生运行时,专为 AI Agent 设计,让他们能够像人类一样操作网站。
| 属性 | 信息 |
|---|
| 项目名称 | jackwener/OpenCLI |
| GitHub Stars | ⭐ 21,643 |
| GitHub Forks | 2,186 |
| 主要语言 | JavaScript (71.6%) + TypeScript (24.4%) |
| 许可证 | Apache-2.0 |
| 创建时间 | 2026-03-14 |
| 最新版本 | v1.7.22 (2026-05-15) |
| 贡献者数量 | 180 人 |
1.2 核心定位
1
2
3
4
5
6
7
8
9
10
11
12
13
| ┌─────────────────────────────────────────────────────────────────┐
│ OpenCLI 定位 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 🌐 网站 (Bilibili/Twitter/知乎...) ──┐ │
│ 🖥️ 浏览器会话 (Chrome) ──┤ │
│ 📱 Electron 桌面应用 (Cursor/ChatGPT) ─┼──▶ 统一 CLI 接口 │
│ ⚙️ 本地 CLI 工具 (gh/docker) ──┘ │ │
│ ▼ │
│ 🤖 AI Agent 可操控 │
│ 👤 人类可使用 │
│ │
└─────────────────────────────────────────────────────────────────┘
|
1.3 目标用户
| 用户类型 | 使用场景 |
|---|
| AI Agent 开发者 | 为 AI Agent 提供浏览器操控和网站操作能力 |
| 命令行爱好者 | 通过 CLI 操作各类网站 and 应用 |
| 自动化工程师 | 构建网站自动化工作流 |
| 数据采集者 | 从各类平台提取数据 |
| 开发者 | 扩展新的网站适配器 |
二、核心功能架构
2.1 三大核心能力
1
2
3
4
5
6
7
8
9
10
11
| ┌────────────────────────────────────────────────────────────────────┐
│ OpenCLI 三大核心能力 │
├──────────────────┬─────────────────────┬───────────────────────────┤
│ 浏览器自动化 │ 内置适配器 │ CLI Hub │
│ Browser Control │ Built-in Adapters │ + Desktop Apps │
├──────────────────┼─────────────────────┼───────────────────────────┤
│ • 通过Chrome扩展 │ • 100+网站命令 │ • 本地CLI工具统一管理 │
│ • 模拟人类操作 │ • 确定性输出 │ • Electron桌面应用控制 │
│ • 保持登录状态 │ • 零Token消耗 │ • 跨平台适配 │
│ • 支持多Profile │ • 无需浏览器 │ • 自动发现机制 │
└──────────────────┴─────────────────────┴───────────────────────────┘
|
2.2 浏览器自动化功能
Browser Bridge 架构:
1
2
3
4
5
6
7
8
9
10
| ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ AI Agent │ ───▶ │ opencli │ ───▶ │ Chrome Browser │
│ / 人类用户 │ │ daemon │ │ + OpenCLI Ext │
└─────────────┘ └──────────────┘ └─────────────────┘
│
▼
┌──────────────┐
│ 19825 端口 │
│ HTTP 通信 │
└──────────────┘
|
可用命令: | 命令 | 功能 | |——|——| | open | 打开 URL | | state | 获取页面 DOM 快照 | | click | 点击元素 | | type / fill | 输入文本/填充表单 | | select | 选择下拉选项 | | wait | 等待元素/文本 | | extract | 提取数据 | | screenshot | 截图 | | network | 网络请求拦截 | | tab list/new/select/close | 标签页管理 |
三、适配器功能矩阵
3.1 内置网站适配器(100+)
社交媒体类
| 平台 | 主要命令 | 特色功能 | |——|———-|———-| | 小红书 | search, note, comments, feed, user, download, publish, notifications | 笔记下载、发布、创作者数据 | | Rednote | search, note, comments, user, download, feed, notifications | 国际版小红书 | | Bilibili | hot, search, history, feed, ranking, download, comments, dynamic, favorite | 视频下载、弹幕下载 | | Twitter/X | trending, search, timeline, post, like, follow, notifications, download | 推文发布、媒体下载 | | Reddit | hot, frontpage, popular, search, subreddit, upvote, comment | 热帖浏览、内容评论 |
中文社区类
| 平台 | 主要命令 | 特色功能 | |——|———-|———-| | 知乎 | hot, search, question, download, follow, like, favorite | 回答评论、文章下载 | | 贴吧 | hot, posts, search, read | 帖子浏览 | | 虎扑 | hot, search, detail, mentions, reply | 体育社区 | | 牛客 | hot, trending, topics, jobs, search, experience, referral | 求职招聘 |
电商类
| 平台 | 主要命令 | 特色功能 | |——|———-|———-| | 1688 | search, item, assets, download, store | 商品详情、店铺信息 | | Amazon | bestsellers, search, product, offer, rankings | 畅销榜单、价格监控 | | 闲鱼 | search, item, chat, publish | 二手交易 |
AI 工具类
| 平台 | 主要命令 | 特色功能 | |——|———-|———-| | Gemini | new, ask, image, deep-research | 深度研究功能 | | Claude | ask, send, new, status, read, history | 对话管理 | | NotebookLM | status, list, get, summary, notes-get, sources-get | 播客管理 |
效率工具类
| 平台 | 主要命令 | 特色功能 | |——|———-|———-| | Spotify | status, play, pause, search, queue, volume | 音乐播放控制 | | Notion (ntn) | pages list, databases | 页面管理 | | Quark | ls, mkdir, mv, save, share-tree | 网盘管理 |
学术工具类
| 平台 | 主要命令 | 特色功能 | |——|———-|———-| | Google Scholar | search, cite, profile | 学术搜索、引文分析 | | Baidu Scholar | search | 中文学术搜索 | | 万方 | search | 中文学术数据库 |
3.2 CLI Hub 外部工具
| 外部 CLI | 说明 | 示例 |
|---|
| gh | GitHub CLI | opencli gh pr list |
| docker | Docker | opencli docker ps |
| obsidian | Obsidian 笔记 | opencli obsidian search |
| longbridge | 港美股交易 | opencli longbridge quote TSLA.US |
| tg | Telegram | opencli tg search "news" |
| discord | Discord | opencli discord recent |
| wx | 微信 | opencli wx search |
| lark-cli | 飞书 | opencli lark-cli calendar |
| dws | 钉钉 | opencli dws msg send |
3.3 桌面应用适配器
| 桌面应用 | 说明 | 协议 |
|---|
| Cursor | AI 代码编辑器控制 | CDP |
| Codex | OpenAI Codex CLI | CDP |
| ChatGPT App | ChatGPT macOS 应用 | CDP |
| Discord | Discord 桌面版 | CDP |
| Doubao | 豆包 AI 应用 | CDP |
四、输出格式支持
4.1 多格式输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # 表格格式(默认)
opencli bilibili hot
# JSON 格式(适合程序处理)
opencli bilibili hot -f json
# YAML 格式
opencli bilibili hot -f yaml
# Markdown 格式
opencli bilibili hot -f md
# CSV 格式(适合 Excel)
opencli bilibili hot -f csv
|
4.2 退出码规范
| 退出码 | 含义 | 使用场景 |
|---|
| 0 | 成功 | 正常执行完成 |
| 1 | 通用错误 | 未分类的失败 |
| 2 | 使用错误 | 参数错误 |
| 66 | 空结果 | 无数据返回 |
| 69 | 服务不可用 | 浏览器未连接 |
| 75 | 临时失败 | 超时,可重试 |
| 77 | 需要认证 | 未登录 |
| 78 | 配置错误 | 配置缺失 |
五、AI Agent 集成
5.1 Skill 安装
1
2
3
4
5
6
7
| # 安装所有技能
npx skills add jackwener/opencli
# 按需安装
npx skills add jackwener/opencli --skill opencli-adapter-author
npx skills add jackwener/opencli --skill opencli-browser
npx skills add jackwener/opencli --skill opencli-autofix
|
5.2 技能说明
| Skill | 用途 | 使用场景 |
|---|
| opencli-adapter-author | 实时操作网站/编写适配器 | “帮我查看小红书通知” |
| opencli-browser | 浏览器自动化参考 | “帮我填写表单” |
| opencli-autofix | 修复损坏的适配器 | “opencli zhihu hot 返回空” |
| opencli-usage | 命令速查 | “Twitter 有哪些命令” |
| smart-search | 能力搜索 | “找Bilibili热搜适配器” |
5.3 AI Agent 工作流程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| ┌──────────────────────────────────────────────────────────────┐
│ AI Agent 操作流程 │
├──────────────────────────────────────────────────────────────┤
│ │
│ 用户: "帮我查看我的小红书通知" │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ AI Agent 接收请求 │ │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ opencli browser open 小红书通知页 │ │
│ │ opencli browser state 获取页面状态 │ │
│ │ opencli browser find 定位通知元素 │ │
│ │ opencli browser extract 提取通知内容 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ 返回结构化通知数据给用户 │
│ │
└──────────────────────────────────────────────────────────────┘
|
六、扩展机制
6.1 插件系统
1
2
3
4
5
6
7
8
9
10
11
| # 安装社区插件
opencli plugin install github:user/opencli-plugin-my-tool
# 列出已安装插件
opencli plugin list
# 更新所有插件
opencli plugin update --all
# 卸载插件
opencli plugin uninstall my-tool
|
社区插件: | 插件 | 功能 | |——|——| | opencli-plugin-github-trending | GitHub Trending | | opencli-plugin-hot-digest | 多平台热搜聚合 | | opencli-plugin-juejin | 稀土掘金热帖 | | opencli-plugin-vk | VK 社交平台 |
6.2 自定义适配器
1
2
3
4
5
6
7
8
9
| # 方式1:创建个人插件仓库
opencli plugin create
# 方式2:本地快速草稿
opencli browser init ~/.opencli/clis/myadapter/
# 方式3:修改官方适配器
opencli adapter eject <name> # 弹出到本地
opencli adapter reset <name> # 重置
|
6.3 外部 CLI 注册
1
2
3
4
5
| # 注册任意本地 CLI
opencli external register mycli
# 使用
opencli mycli <args>
|
七、下载功能
7.1 支持平台
| 平台 | 内容类型 | 命令示例 |
|---|
| 小红书 | 图片/视频 | opencli xiaohongshu download <url> |
| Rednote | 图片/视频 | opencli rednote download <url> |
| Bilibili | 视频 | opencli bilibili download <bvid> |
| Twitter | 图片/视频 | opencli twitter download <username> |
| Pixiv | 原图画质 | opencli pixiv download <id> |
| 小宇宙 | 音频/转录 | opencli xiaoyuzhou download <id> |
| 知乎 | Markdown | opencli zhihu download <url> |
7.2 视频下载前置条件
1
2
3
4
| # 需要安装 yt-dlp
brew install yt-dlp # macOS
# 或
pip install yt-dlp # pip
|
八、技术架构
8.1 系统要求
| 组件 | 要求 |
|---|
| Node.js | >= 21.0.0 |
| Bun | >= 1.0 (可选) |
| Chrome/Chromium | 需登录目标网站 |
8.2 环境变量
| 变量 | 默认值 | 说明 |
|---|
OPENCLI_DAEMON_PORT | 19825 | 守护进程端口 |
OPENCLI_PROFILE | - | 浏览器 Profile |
OPENCLI_WINDOW | default | 窗口位置 |
OPENCLI_BROWSER_CONNECT_TIMEOUT | 30s | 连接超时 |
OPENCLI_BROWSER_COMMAND_TIMEOUT | 60s | 命令超时 |
OPENCLI_CDP_ENDPOINT | - | 远程 CDP 端点 |
OPENCLI_VERBOSE | false | 详细日志 |
8.3 目录结构
1
2
3
4
5
| ~/.opencli/
├── clis/ # 本地适配器
├── sites/ # 网站知识缓存
├── plugins/ # 已安装插件
└── xiaoyuzhou.json # 小宇宙凭证
|
九、适用场景分析
9.1 推荐使用场景
| 场景 | 推荐功能 |
|---|
| 🔄 数据采集 | 内置适配器(确定性、零成本) |
| 🤖 AI Agent 自动化 | opencli browser + 技能 |
| 📊 多平台监控 | CLI Hub + 脚本 |
| 💬 社交媒体管理 | 发布、评论、互动 |
| 📥 内容下载 | 视频、图片、文章 |
| 🔧 开发者调试 | 浏览器操作、网络拦截 |
9.2 不适合场景
| 场景 | 原因 |
|---|
| 高频率爬虫 | 可能触发反爬限制 |
| 实时交易 | 浏览器操作延迟较高 |
| 无头自动化 | 主要设计为有头浏览器 |
十、竞品对比
| 特性 | OpenCLI | Playwright | Puppeteer | Selenium |
|---|
| 操作方式 | 命令行 | 代码库 | 代码库 | 代码库 |
| AI Agent 支持 | ⭐⭐⭐⭐⭐ 原生 | ⭐ 需要封装 | ⭐ 需要封装 | ⭐ 需要封装 |
| 内置适配器 | 100+ | ❌ | ❌ | ❌ |
| 零 Token 成本 | ✅ | ✅ | ✅ | ✅ |
| 学习曲线 | 低 | 中 | 中 | 高 |
| 多网站支持 | 开箱即用 | 需自行开发 | 需自行开发 | 需自行开发 |
十一、总结
11.1 核心优势
- 🎯 AI Native: 专为 AI Agent 设计,可自然语言操控
- 📦 开箱即用: 100+ 预置适配器,无需开发
- 💰 零成本: 确定性输出,不消耗 API Token
- 🔗 统一接口: 任何网站/应用 → 标准化 CLI
- 🖥️ 保持登录: 复用 Chrome 会话,无需重复认证
- 🧩 可扩展: 插件系统支持自定义适配器
11.2 潜在改进方向
- 增加更多平台适配器(如抖音、快手)
- 支持无头浏览器模式
- 并发执行多标签页操作
- 更完善的错误重试机制
- Web UI 管理界面
11.3 适用人群
| 用户类型 | 推荐指数 |
|---|
| AI Agent 开发者 | ⭐⭐⭐⭐⭐ 强烈推荐 |
| 自动化脚本爱好者 | ⭐⭐⭐⭐⭐ 强烈推荐 |
| 数据分析师 | ⭐⭐⭐⭐ 非常适合 |
| 普通用户 | ⭐⭐⭐ 可以尝试 |
| 企业级爬虫 | ⭐⭐ 不推荐 |