Add browser-backed Coupang adapters for search and add-to-cart workflows. - coupang search: multi-strategy data collection (API/JSON-LD/bootstrap/DOM), structured fields (price, rating, rocket, delivery), pagination and rocket filter support - coupang add-to-cart: logged-in browser session reuse, stops before checkout - coupang.ts: comprehensive data normalization layer with badge/rocket/delivery mapping - browser-tab.ts: withTemporaryTab utility for isolated tab operations - Unit tests for core normalization functions Co-authored-by: CodeBBakGoSu <127713112+CodeBBakGoSu@users.noreply.github.com>
7.6 KiB
OpenCLI
把任何网站变成你的命令行工具。
零风控 · 复用 Chrome 登录 · AI 自动发现接口
OpenCLI 将任何网站变成命令行工具。59 个命令覆盖 18 个站点 — B站、知乎、小红书、Twitter、Reddit、雪球、GitHub、V2EX、Hacker News、BBC、微博、BOSS直聘、Yahoo Finance、路透社、什么值得买、携程、YouTube、Coupang — 复用浏览器登录态,AI 驱动探索。
目录
亮点
- 59 个命令,18 个站点 — B站、知乎、小红书、Twitter、Reddit、雪球(xueqiu)、GitHub、V2EX、Hacker News、BBC、微博、BOSS直聘、Yahoo Finance、路透社、什么值得买、携程、YouTube、Coupang
- 零风控 — 复用 Chrome 登录态,无需存储任何凭证
- AI 原生 —
explore自动发现 API,synthesize生成适配器,cascade探测认证策略 - 动态加载引擎 — 声明式的
.yaml或者底层定制的.ts适配器,放入clis/文件夹即可自动注册生效
前置要求
- Node.js: >= 18.0.0
- Chrome 浏览器正在运行,且已登录目标网站(如 bilibili.com、zhihu.com、xiaohongshu.com)
⚠️ 重要:大多数命令复用你的 Chrome 登录状态。运行命令前,你必须已在 Chrome 中打开目标网站并完成登录。如果获取到空数据或报错,请先检查你的浏览器登录状态。
OpenCLI 通过 Playwright MCP Bridge 扩展与你的浏览器通信。
Playwright MCP Bridge 扩展配置
- 安装 Playwright MCP Bridge 扩展
- 在浏览器插件栏点击该插件,或者在插件设置页获取你的 Extension Token。
你必须将这个 Token 同时配置到你的 MCP 配置文件 AND 环境变量中。
首先,配置你的 MCP 客户端(如 Claude/Cursor 等):
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest", "--extension"],
"env": {
"PLAYWRIGHT_MCP_EXTENSION_TOKEN": "<你的-token>"
}
}
}
}
并且,为了让 opencli 命令行也能直接使用它,你必须在你的终端系统环境变量中导出它(建议写进 ~/.zshrc 或 ~/.bashrc):
export PLAYWRIGHT_MCP_EXTENSION_TOKEN="<你的-token>"
配置完成后,运行 opencli doctor 检测你的 Token 是否在所有位置都正确配置:
opencli doctor
快速开始
npm 全局安装(推荐)
npm install -g @jackwener/opencli
直接使用:
opencli list # 查看所有命令
opencli list -f yaml # 以 YAML 列出所有命令
opencli hackernews top --limit 5 # 公共 API,无需浏览器
opencli bilibili hot --limit 5 # 浏览器命令
opencli zhihu hot -f json # JSON 输出
opencli zhihu hot -f yaml # YAML 输出
从源码安装(面向开发者)
git clone git@github.com:jackwener/opencli.git
cd opencli
npm install
npm run build
npm link # 链接到全局环境
opencli list # 可以在任何地方使用了!
更新
npm install -g @jackwener/opencli@latest
内置命令
| 站点 | 命令 | 模式 |
|---|---|---|
| bilibili | hot search me favorite ...(共11个) |
🔐 浏览器 |
| zhihu | hot search question |
🔐 浏览器 |
| xiaohongshu | search notifications feed me user |
🔐 浏览器 |
| xueqiu | feed hot-stock hot search stock watchlist |
🔐 浏览器 |
trending bookmarks profile search timeline following followers notifications post reply delete like |
🔐 浏览器 | |
hot frontpage search subreddit |
🔐 浏览器 | |
hot |
🔐 浏览器 | |
| boss | search |
🔐 浏览器 |
| coupang | search add-to-cart |
🔐 浏览器 |
| youtube | search |
🔐 浏览器 |
| yahoo-finance | quote |
🔐 浏览器 |
| reuters | search |
🔐 浏览器 |
| smzdm | search |
🔐 浏览器 |
| ctrip | search |
🔐 浏览器 |
| github | search |
🌐 公共 API |
| v2ex | hot latest topic daily me notifications |
🌐 公共 API / 🔐 浏览器 |
| hackernews | top |
🌐 公共 API |
| bbc | news |
🌐 公共 API |
输出格式
所有内置命令都支持 --format / -f,可选值为 table、json、yaml、md、csv。
list 命令也支持同样的格式参数,同时继续兼容 --json。
opencli list -f yaml # 用 YAML 列出命令注册表
opencli bilibili hot -f table # 默认:富文本表格
opencli bilibili hot -f json # JSON(适合传给 jq 或者各类 AI Agent)
opencli bilibili hot -f yaml # YAML(更适合人类直接阅读)
opencli bilibili hot -f md # Markdown
opencli bilibili hot -f csv # CSV
opencli bilibili hot -v # 详细模式:展示管线执行步骤调试信息
致 AI Agent(开发者指南)
如果你是一个被要求查阅代码并编写新 opencli 适配器的 AI,请遵守以下工作流。
快速模式:只想为某个页面快速生成一个命令?看 CLI-ONESHOT.md — 给一个 URL + 一句话描述,4 步搞定。
完整模式:在编写任何新代码前,先阅读 CLI-EXPLORER.md。它包含完整的适配器探索开发指南、API 探测流程、5级认证策略以及常见陷阱。
# 1. Deep Explore — 网络拦截 → 响应分析 → 能力推理 → 框架检测
opencli explore https://example.com --site mysite
# 2. Synthesize — 从探索成果物生成 evaluate-based YAML 适配器
opencli synthesize mysite
# 3. Generate — 一键完成:探索 → 合成 → 注册
opencli generate https://example.com --goal "hot"
# 4. Strategy Cascade — 自动降级探测:PUBLIC → COOKIE → HEADER
opencli cascade https://api.example.com/data
探索结果输出到 .opencli/explore/<site>/。
常见问题排查
- "Failed to connect to Playwright MCP Bridge" 报错
- 确保你当前的 Chrome 已安装且开启了 Playwright MCP Bridge 浏览器插件。
- 如果是刚装完插件,需要重启 Chrome 浏览器。
- 返回空数据,或者报错 "Unauthorized"
- Chrome 里的登录态可能已经过期(甚至被要求过滑动验证码)。请打开当前 Chrome 页面,在新标签页重新手工登录或刷新该页面。
- Node API 错误 (如 parseArgs, fs 等)
- 确保 Node.js 版本
>= 18。旧版不支持我们使用的现代核心库 API。
- 确保 Node.js 版本
版本发布
npm version patch # 0.1.0 → 0.1.1
npm version minor # 0.1.0 → 0.2.0
# 推送 tag,GitHub Actions 将自动执行发版和 npm 发布
git push --follow-tags