HackerNews、B站、知乎,三个网站的热门数据,三秒抓完。不用爬虫、不用 API key、不用账号密码。本文五个步骤带你从安装到让 OpenCLI 支持任何网站,最后还会示范用 Terminal 直接遥控 Cursor,AI 控制 AI。
一、安装与第一个指令
前提是你需要 Node.js 20 以上的版本,没有的话先去 nodejs.org 安装。然后一行指令装好 OpenCLI:
npm install -g @jackwener/opencli装好后没有其他设置,马上跑第一个指令。抓 HackerNews 热门文章:
opencli hackernews top --limit 5直接输出一张表格,有排名、标题、分数、作者、留言数。而且跑出来的是结构化数据,可以直接转 JSON 做后续处理:
opencli hackernews top --limit 3 -f json加个 -f json 就变 JSON 了。yaml、csv、markdown 格式也都支持,对写脚本或串 AI Agent 的人来说非常方便。
用 opencli list 可以看到所有支持的指令:
opencli list60 多个网站,几百条指令。但这些都是公开 API 就能抓的。真正厉害的是,用你 Chrome 的登录状态去抓那些需要账号才能看的私密数据,而且账号密码完全不用交出去。
二、浏览器指令:用 Chrome 登录状态抓数据
这段才是 OpenCLI 真正强大的地方。B站历史记录、小红书私信、知乎收藏,这些东西用传统爬虫根本搞不定。
OpenCLI 的做法很聪明:不用你输入账号密码,直接读你 Chrome 里面登录好的状态。你平常 Chrome 有登 B站,它就用那个状态帮你抓数据,不经过任何第三方服务器。
安全提示:OpenCLI 只借用你的 Chrome 登录状态去抓页面,账号密码从头到尾不会离开 Chrome。
不过要先安装一个 Chrome 扩展。去 GitHub 的 Releases 页面下载最新的 opencli-extension.zip,解压后载入 Chrome:
- 打开 Chrome,进入
chrome://extensions - 打开右上角的「开发者模式」
- 点「加载已解压的扩展程序」,选解压后的文件夹
安装完成后,跑一次 doctor 确认连接:
opencli doctor全部绿灯就代表成功了。来试试抓 B站热门视频:
opencli bilibili hot --limit 5标题、播放数、弹幕数全都有。知乎也来一个:
opencli zhihu hot --limit 5 -f json秒出。以前你要自己搞 API 认证、处理速率限制,光搭环境就花半天。现在一行指令搞定。
三、桌面 App 控制:Terminal 操控 Electron 应用
OpenCLI 可以直接用 Terminal 控制你电脑上的 Electron App,Cursor、ChatGPT 桌面版、Discord 都行。
以 Cursor 为例。关键步骤是不能直接双击打开 Cursor,要用命令行启动并开启调试端口,OpenCLI 才能连上去控制它:
/Applications/Cursor.app/Contents/MacOS/Cursor --remote-debugging-port=9226看到 DevTools listening on ws://127.0.0.1:9226 就代表成功了。然后开一个新的终端窗口,设置环境变量告诉 OpenCLI 去哪里连接:
export OPENCLI_CDP_ENDPOINT="http://127.0.0.1:9226"现在 OpenCLI 就能控制 Cursor 了。查看 Cursor 当前使用的 AI model:
opencli cursor model更强的是,你还可以直接从 Terminal 送消息给 Cursor:
opencli cursor send "帮我看一下这个项目的package.json有哪些dependency"进阶用法:你可以写一个脚本,让它自动开 Cursor、送 prompt、读回复、再做下一步,整个流程全自动化。AI 控制 AI,这才是真正的生产力。
四、自己写 YAML Adapter:五分钟加一个新网站
OpenCLI 支持用 YAML 写 adapter,不用 TypeScript,不用搞复杂逻辑。以抓取 Steam 热销游戏排行榜为例,先把 OpenCLI 的源码 clone 下来:
git clone https://github.com/jackwener/opencli.git
cd opencli && npm install然后建立 adapter 文件 src/clis/steam/top-sellers.yaml:
site: steam
name: top-sellers
description: Steam top selling games
domain: store.steampowered.com
strategy: public
browser: false
args:
limit:
type: int
default: 10
description: Number of games
pipeline:
- fetch:
url: https://store.steampowered.com/api/featuredcategories
- evaluate: |
(data.top_sellers?.items || []).map((item, i) => ({
rank: i + 1,
name: item.name,
price: (item.final_price / 100).toFixed(2),
discount: item.discount_percent + '%'
}))
- limit: ${{ args.limit }}
columns: [rank, name, price, discount]这个结构很清晰:
site和name就是指令名称strategy: public代表不用登录pipeline定义数据怎么跑:fetch 打 API、evaluate 整理结果、limit 控制笔数evaluate里面是 JavaScript,把 API 返回的 JSON 做字段映射columns定义最后要显示哪些字段
一个 YAML 文件搞定。Build 看看:
npm run build确认指令注册成功:
opencli list | grep steam在了!跑看看:
opencli steam top-sellers --limit 5排名、游戏名称、价格、折扣,全抓出来了。
五、Plugin 打包与真实工作流
如果你想把自己写的 YAML adapter 分享给别人用,OpenCLI 有一套 plugin 机制。一行指令生成 plugin 脚手架:
opencli plugin create my-steam-plugin --description "Steam gaming data"它直接帮你把目录结构、package.json、范例 YAML 全部建好。把刚才写的 Steam adapter 放进去,推到 GitHub,别人就能一行安装:
opencli plugin install github:你的帐号/my-steam-plugin装完直接用,这就是 OpenCLI 的 plugin 生态。
真实工作流:每日科技信息摘要
最后分享一个每天在用的真实工作流:
opencli hackernews top --limit 5 -f json
opencli devto top --limit 5 -f json
opencli producthunt today --limit 5 -f json三个平台的科技热门信息,全部用 JSON 格式抓下来。你可以把这三行写成一个 shell 脚本,用 cron job 设成每天早上自动跑,打开电脑摘要就在那边了。配上 AI 做个每日科技摘要,整个流程不到 10 秒。
总结
本文涵盖了 OpenCLI 的五大核心功能:
| 步骤 | 功能 | 说明 |
|---|---|---|
| 一 | 安装与基本指令 | 一行安装,支持 60+ 网站,多种输出格式 |
| 二 | Chrome 登录状态抓数据 | 借用浏览器登录态,安全抓取私密数据 |
| 三 | Terminal 控制桌面 App | 通过调试端口遥控 Cursor 等 Electron 应用 |
| 四 | YAML Adapter | 五分钟用 YAML 让 OpenCLI 支持新网站 |
| 五 | Plugin 与工作流 | 打包分享 adapter,搭建每日自动化流程 |
OpenCLI 是开源项目,GitHub 上搜索 OpenCLI 就能找到。如果你喜欢用终端把所有事情都自动化,这个工具值得一试。