$npx -y skills add himself65/finance-skills --skill opencli-readerGeneric read-only fallback for any source opencli covers but this repo has no dedicated reader for — Yahoo Finance, Bloomberg, Reuters, Barchart, Eastmoney, Xueqiu, Sinafinance, Reddit, HackerNews, Substack, Medium, Weibo, Bilibili, Xiaohongshu, Zhihu, arXiv, Google Scholar, Appl
| 1 | # opencli Reader (Generic Fallback, Read-Only) |
| 2 | |
| 3 | Generic fallback for any source opencli supports via its [adapter registry](https://github.com/jackwener/opencli) (90+ sites, growing). Use this skill only when **no dedicated finance-skill covers the source** — the specialized skills (`twitter-reader`, `linkedin-reader`, `discord-reader`, `telegram-reader`, `yc-reader`) are always preferred when the request matches one of them. |
| 4 | |
| 5 | **This skill is read-only.** Write commands that opencli exposes (post, like, comment, send, save, upvote, subscribe, follow, delete, reply-dm, etc.) must not be invoked. |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## Step 1: Decide Whether to Use This Skill |
| 10 | |
| 11 | Only use this skill if the request **cannot** be handled by a more specific skill. |
| 12 | |
| 13 | | If the user asks about… | Use this skill instead | |
| 14 | |---|---| |
| 15 | | Twitter/X | `twitter-reader` | |
| 16 | | LinkedIn | `linkedin-reader` | |
| 17 | | Discord | `discord-reader` | |
| 18 | | Telegram | `telegram-reader` | |
| 19 | | Y Combinator | `yc-reader` | |
| 20 | | Anything else opencli supports (Yahoo Finance, Bloomberg, Reuters, Reddit, HackerNews, Eastmoney, Xueqiu, Substack, arXiv, etc.) | **this skill** | |
| 21 | |
| 22 | If the source is not in opencli's registry either, stop and tell the user the request isn't covered — don't fall back to ad-hoc scraping. |
| 23 | |
| 24 | --- |
| 25 | |
| 26 | ## Step 2: Ensure opencli Is Ready |
| 27 | |
| 28 | **Current environment status:** |
| 29 | |
| 30 | ``` |
| 31 | !`(command -v opencli && opencli doctor 2>&1 | head -5 && echo "READY" || echo "SETUP_NEEDED") 2>/dev/null || echo "NOT_INSTALLED"` |
| 32 | ``` |
| 33 | |
| 34 | If `NOT_INSTALLED`: |
| 35 | |
| 36 | ```bash |
| 37 | npm install -g @jackwener/opencli |
| 38 | ``` |
| 39 | |
| 40 | If `SETUP_NEEDED`, guide the user through Browser Bridge setup (only required for adapters whose strategy is `COOKIE`, `HEADER`, `INTERCEPT`, or `UI` — `PUBLIC` and `LOCAL` adapters work without a browser): |
| 41 | |
| 42 | 1. Download the latest `opencli-extension-v{version}.zip` from the [GitHub Releases page](https://github.com/jackwener/opencli/releases) |
| 43 | 2. Unzip it, open `chrome://extensions` in Chrome, enable **Developer mode** |
| 44 | 3. Click **Load unpacked** and select the unzipped folder |
| 45 | 4. Make sure Chrome is logged into the target site, then re-run `opencli doctor` |
| 46 | |
| 47 | Requires Node.js >= 21 (or Bun >= 1.0). |
| 48 | |
| 49 | --- |
| 50 | |
| 51 | ## Step 3: Discover the Right Command |
| 52 | |
| 53 | **Do not guess command names or flags** — the registry has 500+ commands and changes weekly. Instead: |
| 54 | |
| 55 | ```bash |
| 56 | # Full registry (grouped by site), machine-readable JSON |
| 57 | opencli list -f json |
| 58 | |
| 59 | # Filter to a site |
| 60 | opencli list | grep -i <site> |
| 61 | |
| 62 | # Site-level help (all commands + flags) |
| 63 | opencli <site> --help |
| 64 | |
| 65 | # Command-level help (positional args + flags + defaults) |
| 66 | opencli <site> <command> --help |
| 67 | ``` |
| 68 | |
| 69 | The `opencli list -f json` entry for each command includes: |
| 70 | - `site` — adapter namespace (e.g., `yahoo-finance`) |
| 71 | - `name` — subcommand (e.g., `quote`) |
| 72 | - `strategy` — `PUBLIC` / `COOKIE` / `HEADER` / `INTERCEPT` / `UI` / `LOCAL` — tells you if a browser login is needed |
| 73 | - `description`, `args`, `columns` — canonical metadata |
| 74 | |
| 75 | Use `opencli list -f json` as the source of truth. Never paste a site list into the plan from memory; adapters are added every week. |
| 76 | |
| 77 | ### Quick map of the most common finance / research sources |
| 78 | |
| 79 | The table below is a **shortlist**, not exhaustive — always confirm with `opencli <site> --help`. |
| 80 | |
| 81 | | Source | Site slug | Common commands | |
| 82 | |---|---|---| |
| 83 | | Yahoo Finance | `yahoo-finance` | `quote` | |
| 84 | | Bloomberg | `bloomberg` | `markets`, `economics`, `industries`, `tech`, `politics`, `opinions`, `news`, `businessweek`, `feeds`, `main` | |
| 85 | | Reuters | `reuters` | `search` | |
| 86 | | Eastmoney (东方财富) | `eastmoney` | `quote`, `rank`, `kline`, `sectors`, `etf`, `holders`, `money-flow`, `northbound`, `longhu`, `kuaixun`, `convertible`, `index-board`, `announcement`, `hot-rank` | |
| 87 | | Xueqiu (雪球) | `xueqiu` | `stock`, `hot-stock`, `hot`, `feed`, `comments`, `watchlist`, `search`, `groups`, `fund-snapshot`, `fund-holdings`, `earnings-date`, `kline` | |
| 88 | | Sinafinance | `sinafinance` | (see `--help`) | |
| 89 | | TDX / THS | `tdx`, `ths` | (see `--help`) | |
| 90 | | Barchart (options) | `barchart` | `quote`, `options`, `flow`, `greeks` | |
| 91 | | Reddit | `reddit` | `hot`, `popular`, `frontpage`, `search`, `subreddit`, `read`, `user`, `user-posts`, `us |