文章

OpenCLI 功能性分析报告

本文对 OpenCLI 进行了详细的功能性分析,涵盖了其核心功能架构、内置网站适配器、输出格式支持、AI Agent 集成及扩展机制等。

OpenCLI 功能性分析报告

一、项目概述

1.1 项目简介

OpenCLI 是一个将任意网站、浏览器会话、Electron 桌面应用和本地工具转换为标准化命令行界面的通用工具。它同时也是一个 AI 原生运行时,专为 AI Agent 设计,让他们能够像人类一样操作网站。

属性信息
项目名称jackwener/OpenCLI
GitHub Stars⭐ 21,643
GitHub Forks2,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说明示例
ghGitHub CLIopencli gh pr list
dockerDockeropencli docker ps
obsidianObsidian 笔记opencli obsidian search
longbridge港美股交易opencli longbridge quote TSLA.US
tgTelegramopencli tg search "news"
discordDiscordopencli discord recent
wx微信opencli wx search
lark-cli飞书opencli lark-cli calendar
dws钉钉opencli dws msg send

3.3 桌面应用适配器

桌面应用说明协议
CursorAI 代码编辑器控制CDP
CodexOpenAI Codex CLICDP
ChatGPT AppChatGPT macOS 应用CDP
DiscordDiscord 桌面版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>
知乎Markdownopencli 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_PORT19825守护进程端口
OPENCLI_PROFILE-浏览器 Profile
OPENCLI_WINDOWdefault窗口位置
OPENCLI_BROWSER_CONNECT_TIMEOUT30s连接超时
OPENCLI_BROWSER_COMMAND_TIMEOUT60s命令超时
OPENCLI_CDP_ENDPOINT-远程 CDP 端点
OPENCLI_VERBOSEfalse详细日志

8.3 目录结构

1
2
3
4
5
~/.opencli/
├── clis/                    # 本地适配器
├── sites/                   # 网站知识缓存
├── plugins/                 # 已安装插件
└── xiaoyuzhou.json         # 小宇宙凭证

九、适用场景分析

9.1 推荐使用场景

场景推荐功能
🔄 数据采集内置适配器(确定性、零成本)
🤖 AI Agent 自动化opencli browser + 技能
📊 多平台监控CLI Hub + 脚本
💬 社交媒体管理发布、评论、互动
📥 内容下载视频、图片、文章
🔧 开发者调试浏览器操作、网络拦截

9.2 不适合场景

场景原因
高频率爬虫可能触发反爬限制
实时交易浏览器操作延迟较高
无头自动化主要设计为有头浏览器

十、竞品对比

特性OpenCLIPlaywrightPuppeteerSelenium
操作方式命令行代码库代码库代码库
AI Agent 支持⭐⭐⭐⭐⭐ 原生⭐ 需要封装⭐ 需要封装⭐ 需要封装
内置适配器100+
零 Token 成本
学习曲线
多网站支持开箱即用需自行开发需自行开发需自行开发

十一、总结

11.1 核心优势

  1. 🎯 AI Native: 专为 AI Agent 设计,可自然语言操控
  2. 📦 开箱即用: 100+ 预置适配器,无需开发
  3. 💰 零成本: 确定性输出,不消耗 API Token
  4. 🔗 统一接口: 任何网站/应用 → 标准化 CLI
  5. 🖥️ 保持登录: 复用 Chrome 会话,无需重复认证
  6. 🧩 可扩展: 插件系统支持自定义适配器

11.2 潜在改进方向

  1. 增加更多平台适配器(如抖音、快手)
  2. 支持无头浏览器模式
  3. 并发执行多标签页操作
  4. 更完善的错误重试机制
  5. Web UI 管理界面

11.3 适用人群

用户类型推荐指数
AI Agent 开发者⭐⭐⭐⭐⭐ 强烈推荐
自动化脚本爱好者⭐⭐⭐⭐⭐ 强烈推荐
数据分析师⭐⭐⭐⭐ 非常适合
普通用户⭐⭐⭐ 可以尝试
企业级爬虫⭐⭐ 不推荐
本文由作者按照 CC BY 4.0 进行授权