mcpField
O
opencli-reader

opencli-reader

github.com/himself65生产力3.5k1.1k 次安装3 天前更新
代码仓库

关于 opencli-reader

opencli-reader 是一个只读技能,通过 opencli 适配器注册表读取受支持网站和服务的信息。它指导 Agent 查找命令并检查适配器要求;已有专用技能的来源应优先使用专用技能。

主要功能

  1. 01只读访问数据源
  2. 02查找已注册命令
  3. 03检查适配器策略
  4. 04JSON 输出指引
  5. 05故障诊断

适用场景

  1. 01研究金融与新闻来源
  2. 02读取受支持网站的帖子
  3. 03检查网站适配器要求

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/himself65/finance-skills --skill opencli-reader

安装后在 Claude Code 中输入/opencli-reader确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
references/
discovery.md
finance-sources.md

详细介绍

opencli 读取器(通用回退,只读)

如果宿主环境尚未执行以下 Shell 探测(例如 Codex),请先使用其 Shell 工具运行 ! 包裹的命令,再选择设置路径。请依据实际输出;如果无法访问 Shell,请说明这一限制。

适用于 opencli 通过其适配器注册表支持的任何来源的通用回退方案(支持 100 多个站点,且仍在增长)。仅当没有专门的 finance-skill 覆盖该来源时才使用此技能;如果请求符合以下任一专用技能的适用范围,应始终优先使用它们:twitter-reader、linkedin-reader、discord-reader、telegram-reader、yc-reader。

此技能为只读。 不得调用 opencli 提供的写入命令(post、like、comment、send、save、upvote、subscribe、follow、delete、reply-dm 等)。


第 1 步:判断是否使用此技能

仅当请求无法由更具体的技能处理时,才使用此技能。

如果用户询问……改用此技能
Twitter/Xtwitter-reader
LinkedInlinkedin-reader
Discorddiscord-reader
Telegramtelegram-reader
Y Combinatoryc-reader
opencli 支持的其他任何来源(Yahoo Finance、Bloomberg、Reuters、Reddit、HackerNews、Eastmoney、Xueqiu、Substack、arXiv 等)此技能

如果来源也不在 opencli 的注册表中,请停止并告知用户该请求不在支持范围内——不要改用临时抓取方案。


第 2 步:确保 opencli 已就绪

当前环境状态:

!`(command -v opencli && opencli doctor 2>&1 | head -5 && echo "READY" || echo "SETUP_NEEDED") 2>/dev/null || echo "NOT_INSTALLED"`

如果为 NOT_INSTALLED:

npm install -g @jackwener/opencli

如果为 SETUP_NEEDED,请引导用户完成 Browser Bridge 设置(仅当适配器策略为 COOKIE、HEADER、INTERCEPT 或 UI 时才需要;PUBLIC 和 LOCAL 适配器无需浏览器):

  1. 从 GitHub Releases 页面下载最新的 opencli-extension-v{version}.zip
  2. 解压文件,在 Chrome 中打开 chrome://extensions,启用开发者模式
  3. 点击加载已解压的扩展程序,并选择解压后的文件夹
  4. 确保 Chrome 已登录目标站点,然后重新运行 opencli doctor

需要 Node.js >= 20(或 Bun >= 1.0)。


第 3 步:找到合适的命令

不要猜测命令名称或标志——注册表中有 500 多个命令,且每周都会变化。请改为:

# Full registry (grouped by site), machine-readable JSON
opencli list -f json

# Filter to a site
opencli list | grep -i <site>

# Site-level help (all commands + flags)
opencli <site> --help

# Command-level help (positional args + flags + defaults)
opencli <site> <command> --help

opencli list -f json 中每个命令的条目都包含:

  • site — 适配器命名空间(例如 yahoo-finance)
  • name — 子命令(例如 quote)
  • strategy — PUBLIC / COOKIE / HEADER / INTERCEPT / UI / LOCAL — 用于判断是否需要浏览器登录
  • description、args、columns — 规范元数据

请将 opencli list -f json 作为事实依据。切勿凭记忆将站点列表写入计划;适配器每周都会新增。

最常见的金融 / 研究来源速览

下表是一个精选列表,并非全部来源——请务必通过 opencli <site> --help 确认。

来源站点标识常用命令
Yahoo Financeyahoo-financequote
Bloombergbloombergmarkets、economics、industries、tech、politics、opinions、news、businessweek、feeds、main
Reutersreuterssearch
Eastmoney(东方财富)eastmoneyquote、rank、kline、sectors、etf、holders、money-flow、northbound、longhu、kuaixun、convertible、index-board、announcement、hot-rank
Xueqiu(雪球)xueqiustock、hot-stock、hot、feed、comments、watchlist、search、groups、fund-snapshot、fund-holdings、earnings-date、kline
Sinafinancesinafinance(参见 --help)
TDX / THStdx、ths(参见 --help)
Barchart(期权)barchartquote、options、flow、greeks
Redditreddithot、popular、frontpage、search、subreddit、read、user、user-posts、user-comments、saved
HackerNewshackernewstop、best、new、ask、show、jobs、user、search
Substacksubstackfeed、publication、search
Mediummedium(参见 --help)
arXivarxiv(参见 --help)
Google Scholargoogle-scholar(参见 --help)
Weiboweibo(参见 --help)
Bilibilibilibilihot、video + 更多
Xiaohongshu(小红书)xiaohongshu(参见 --help)
Rednote(小红书国际版)rednote(参见 --help——与 xiaohongshu 相同)
Zhihuzhihu(参见 --help)
Baidu Scholarbaidu-scholar(参见 --help)
Wanfangwanfang(参见 --help)
36kr36kr(参见 --help)
Jikejike(参见 --help)
Blueskybluesky(参见 --help)
Apple Podcastsapple-podcasts(参见 --help)
Xiaoyuzhou(播客)xiaoyuzhou(参见 --help)
Spotifyspotify(参见 --help)
YouTubeyoutube(参见 --help)
Weixin Official Accountweixin(参见 --help——drafts 用于读取;create-draft 用于写入)
Toutiaotoutiaoarticles
政府政策 / 法律gov-policy、gov-law(参见 --help)
网页下载 / 阅读器webread、download

对于未列出的来源,请运行 opencli list -f json 并筛选。


第 4 步:运行前检查适配器的策略

运行 opencli list -f json(或 opencli <site> <command> --help),并查看 strategy 字段:

策略含义前提条件
PUBLIC纯 HTTP;无需浏览器无
LOCAL与本地端点通信本地服务正在运行
COOKIE / HEADER复用你在该站点的 Chrome 登录状态已在 Chrome 中登录该站点 + 已加载 Browser Bridge 扩展
INTERCEPT打开自动化窗口以捕获已签名的请求同 COOKIE;请耐心等待——可能需要几秒钟
UI完整 DOM 交互同 COOKIE;速度最慢;结果取决于站点当前布局

如果用户没有登录,而适配器的策略不是 PUBLIC / LOCAL,请告知用户需要先在 Chrome 中登录该站点,再重试。


第 5 步:执行命令

通用模式
opencli <site> <command> [positional-args] [flags] -f json
通用标志
标志效果
-f json结构化 JSON——供 Agent 处理时始终优先使用
-f yaml / -f csv / -f md / -f table / -f plain其他格式
-v详细日志(同时设置 OPENCLI_VERBOSE=1)
--live命令执行后保持自动化窗口打开(仅限由浏览器驱动的适配器)
--focus在前台打开自动化窗口(仅限由浏览器驱动的适配器)

特定命令的标志(--limit、--filter、--type 等)并非通用标志——请务必查看 opencli <site> <command> --help。

示例
# Yahoo Finance quote (PUBLIC)
opencli yahoo-finance quote AAPL -f json

# Reddit hot posts in a subreddit (COOKIE or PUBLIC depending on subreddit)
opencli reddit subreddit wallstreetbets --limit 20 -f json
opencli reddit search "SPY options" --limit 15 -f json

# HackerNews top (PUBLIC)
opencli hackernews top --limit 20 -f json

# Eastmoney hot rank (PUBLIC)
opencli eastmoney hot-rank -f json

# Xueqiu hot stocks (PUBLIC or COOKIE)
opencli xueqiu hot-stock -f json
opencli xueqiu stock SH600519 -f json

# Bloomberg markets headlines (COOKIE)
opencli bloomberg markets -f json

# arXiv paper search (PUBLIC)
opencli arxiv search "volatility surface" --limit 10 -f json

# Substack feed
opencli substack feed --limit 20 -f json

# Web page → readable markdown (PUBLIC)
opencli web read "https://example.com/article" -f json
关键规则
  1. 在构造本会话中尚未运行过的命令前,始终先使用 opencli <site> <command> --help — 不要臆测标志名称。
  2. 使用 -f json 进行程序化处理。
  3. 先使用较小的 --limit(10–20)验证数据结构,再获取更多内容。
  4. 运行由浏览器驱动的适配器前,先检查 strategy — 如果用户尚未登录,COOKIE / UI 适配器将会失败。
  5. 仅限只读操作 — 跳过写入命令。 各适配器中常见的写入命令名称包括:post、reply、comment、like、unlike、upvote、save、subscribe、unsubscribe、follow、unfollow、block、unblock、delete、bookmark、unbookmark、send、create-draft、reply-dm、accept。如果不确定某个命令是读操作还是写操作,请查看 opencli list -f json 中的 description;如果描述表明它会修改数据,就跳过。

第 6 步:处理故障

如果命令返回空结果或报错,可能是网站更改了选择器 / API。opencli 内置了自动修复流程:

# Re-run with diagnostic context
OPENCLI_DIAGNOSTIC=1 opencli <site> <command> <args>

这会输出结构化的 RepairContext,用于标识故障适配器的源文件路径。可采取以下措施:

  1. 如果用户安装了 opencli-autofix 技能,请告知他们运行该技能。
  2. 如果没有,请建议他们在 https://github.com/jackwener/opencli/issues 提交问题,并附上 RepairContext 输出。
  3. 不要悄悄改用手工编写的抓取代码 — 这会掩盖上游注册表中的问题。

目标网站的速率限制也可能导致结果为空;请等待后重试。


第 7 步:呈现结果

  1. 围绕用户的实际问题总结数据,不要只倾倒原始 JSON。
  2. 注明来源 — 在可用时,为每项内容提供网站名称和 URL。
  3. 对于市场数据,展示价格 / 涨跌幅 / 成交量 / 市值,并标记异常。
  4. 对于新闻 / 帖子,突出标题、时间戳和关键引述。
  5. 对于研究内容(arXiv、Scholar),包含标题、作者、摘要和链接。
  6. 将浏览器会话视为私密信息 — 绝不回显 CDP 端点、Cookie 或身份验证令牌。

参考文件

  • references/discovery.md — 如何使用 opencli list、opencli <site> --help,以及注册表条目的 JSON 架构
  • references/finance-sources.md — 关于金融类适配器(Yahoo Finance、Bloomberg、Eastmoney、Xueqiu、Barchart、Reuters、Reddit、HackerNews)的详细说明,以及哪些命令属于读操作或写操作

当需要某个特定网站的具体示例,或用户询问专用读取器未涵盖的功能时,请阅读这些参考文件。

评论

支持 Markdown