OpenCLI 完整教学:一行指令抓遍全网数据

HackerNews、B站、知乎,三个网站的热门数据,三秒抓完。不用爬虫、不用 API key、不用账号密码。本文五个步骤带你从安装到让 OpenCLI 支持任何网站,最后还会示范用 Terminal 直接遥控 Cursor,AI 控制 AI。

一、安装与第一个指令

前提是你需要 Node.js 20 以上的版本,没有的话先去 nodejs.org 安装。然后一行指令装好 OpenCLI:

bash
npm install -g @jackwener/opencli

装好后没有其他设置,马上跑第一个指令。抓 HackerNews 热门文章:

bash
opencli hackernews top --limit 5

直接输出一张表格,有排名、标题、分数、作者、留言数。而且跑出来的是结构化数据,可以直接转 JSON 做后续处理:

bash
opencli hackernews top --limit 3 -f json

加个 -f json 就变 JSON 了。yaml、csv、markdown 格式也都支持,对写脚本或串 AI Agent 的人来说非常方便。

opencli list 可以看到所有支持的指令:

bash
opencli list

60 多个网站,几百条指令。但这些都是公开 API 就能抓的。真正厉害的是,用你 Chrome 的登录状态去抓那些需要账号才能看的私密数据,而且账号密码完全不用交出去。

二、浏览器指令:用 Chrome 登录状态抓数据

这段才是 OpenCLI 真正强大的地方。B站历史记录、小红书私信、知乎收藏,这些东西用传统爬虫根本搞不定。

OpenCLI 的做法很聪明:不用你输入账号密码,直接读你 Chrome 里面登录好的状态。你平常 Chrome 有登 B站,它就用那个状态帮你抓数据,不经过任何第三方服务器。

安全提示:OpenCLI 只借用你的 Chrome 登录状态去抓页面,账号密码从头到尾不会离开 Chrome。

不过要先安装一个 Chrome 扩展。去 GitHub 的 Releases 页面下载最新的 opencli-extension.zip,解压后载入 Chrome:

  1. 打开 Chrome,进入 chrome://extensions
  2. 打开右上角的「开发者模式」
  3. 点「加载已解压的扩展程序」,选解压后的文件夹

安装完成后,跑一次 doctor 确认连接:

bash
opencli doctor

全部绿灯就代表成功了。来试试抓 B站热门视频:

bash
opencli bilibili hot --limit 5

标题、播放数、弹幕数全都有。知乎也来一个:

bash
opencli zhihu hot --limit 5 -f json

秒出。以前你要自己搞 API 认证、处理速率限制,光搭环境就花半天。现在一行指令搞定。

三、桌面 App 控制:Terminal 操控 Electron 应用

OpenCLI 可以直接用 Terminal 控制你电脑上的 Electron App,Cursor、ChatGPT 桌面版、Discord 都行。

以 Cursor 为例。关键步骤是不能直接双击打开 Cursor,要用命令行启动并开启调试端口,OpenCLI 才能连上去控制它:

bash
/Applications/Cursor.app/Contents/MacOS/Cursor --remote-debugging-port=9226

看到 DevTools listening on ws://127.0.0.1:9226 就代表成功了。然后开一个新的终端窗口,设置环境变量告诉 OpenCLI 去哪里连接:

bash
export OPENCLI_CDP_ENDPOINT="http://127.0.0.1:9226"

现在 OpenCLI 就能控制 Cursor 了。查看 Cursor 当前使用的 AI model:

bash
opencli cursor model

更强的是,你还可以直接从 Terminal 送消息给 Cursor:

bash
opencli cursor send "帮我看一下这个项目的package.json有哪些dependency"

进阶用法:你可以写一个脚本,让它自动开 Cursor、送 prompt、读回复、再做下一步,整个流程全自动化。AI 控制 AI,这才是真正的生产力。

四、自己写 YAML Adapter:五分钟加一个新网站

OpenCLI 支持用 YAML 写 adapter,不用 TypeScript,不用搞复杂逻辑。以抓取 Steam 热销游戏排行榜为例,先把 OpenCLI 的源码 clone 下来:

bash
git clone https://github.com/jackwener/opencli.git
cd opencli && npm install

然后建立 adapter 文件 src/clis/steam/top-sellers.yaml

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]

这个结构很清晰:

  • sitename 就是指令名称
  • strategy: public 代表不用登录
  • pipeline 定义数据怎么跑:fetch 打 API、evaluate 整理结果、limit 控制笔数
  • evaluate 里面是 JavaScript,把 API 返回的 JSON 做字段映射
  • columns 定义最后要显示哪些字段

一个 YAML 文件搞定。Build 看看:

bash
npm run build

确认指令注册成功:

bash
opencli list | grep steam

在了!跑看看:

bash
opencli steam top-sellers --limit 5

排名、游戏名称、价格、折扣,全抓出来了。

五、Plugin 打包与真实工作流

如果你想把自己写的 YAML adapter 分享给别人用,OpenCLI 有一套 plugin 机制。一行指令生成 plugin 脚手架:

bash
opencli plugin create my-steam-plugin --description "Steam gaming data"

它直接帮你把目录结构、package.json、范例 YAML 全部建好。把刚才写的 Steam adapter 放进去,推到 GitHub,别人就能一行安装:

bash
opencli plugin install github:你的帐号/my-steam-plugin

装完直接用,这就是 OpenCLI 的 plugin 生态。

真实工作流:每日科技信息摘要

最后分享一个每天在用的真实工作流:

bash
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 就能找到。如果你喜欢用终端把所有事情都自动化,这个工具值得一试。