opencli Reader (Generic Fallback, Read-Only)
Generic fallback for any source opencli supports via its
adapter registry (90+ sites, growing). Use this skill only when
no dedicated finance-skill covers the source — the specialized skills (
,
,
,
,
) are always preferred when the request matches one of them.
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.
Step 1: Decide Whether to Use This Skill
Only use this skill if the request cannot be handled by a more specific skill.
| If the user asks about… | Use this skill instead |
|---|
| Twitter/X | |
| LinkedIn | |
| Discord | |
| Telegram | |
| Y Combinator | |
| Anything else opencli supports (Yahoo Finance, Bloomberg, Reuters, Reddit, HackerNews, Eastmoney, Xueqiu, Substack, arXiv, etc.) | this skill |
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.
Step 2: Ensure opencli Is Ready
Current environment status:
!`(command -v opencli && opencli doctor 2>&1 | head -5 && echo "READY" || echo "SETUP_NEEDED") 2>/dev/null || echo "NOT_INSTALLED"`
bash
npm install -g @jackwener/opencli
If
, guide the user through Browser Bridge setup (only required for adapters whose strategy is
,
,
, or
—
and
adapters work without a browser):
- Download the latest
opencli-extension-v{version}.zip
from the GitHub Releases page
- Unzip it, open in Chrome, enable Developer mode
- Click Load unpacked and select the unzipped folder
- Make sure Chrome is logged into the target site, then re-run
Requires Node.js >= 21 (or Bun >= 1.0).
Step 3: Discover the Right Command
Do not guess command names or flags — the registry has 500+ commands and changes weekly. Instead:
bash
# 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
The
entry for each command includes:
- — adapter namespace (e.g., )
- — subcommand (e.g., )
- — / / / / / — tells you if a browser login is needed
- , , — canonical metadata
Use
as the source of truth. Never paste a site list into the plan from memory; adapters are added every week.
Quick map of the most common finance / research sources
The table below is a
shortlist, not exhaustive — always confirm with
.
| Source | Site slug | Common commands |
|---|
| Yahoo Finance | | |
| Bloomberg | | , , , , , , , , , |
| Reuters | | |
| Eastmoney (东方财富) | | , , , , , , , , , , , , , |
| Xueqiu (雪球) | | , , , , , , , , , , , |
| Sinafinance | | (see ) |
| TDX / THS | , | (see ) |
| Barchart (options) | | , , , |
| Reddit | | , , , , , , , , , |
| HackerNews | | , , , , , , , |
| Substack | | , , |
| Medium | | (see ) |
| arXiv | | (see ) |
| Google Scholar | | (see ) |
| Weibo | | (see ) |
| Bilibili | | , + more |
| Xiaohongshu (小红书) | | (see ) |
| Zhihu | | (see ) |
| 36kr | | (see ) |
| Jike | | (see ) |
| Bluesky | | (see ) |
| Apple Podcasts | | (see ) |
| Xiaoyuzhou (podcasts) | | (see ) |
| Spotify | | (see ) |
| YouTube | | (see ) |
| Weixin Official Account | | (see — is read; is write) |
| Toutiao | | |
| Government policy / law | , | (see ) |
| Web download / reader | | , |
For anything not listed, run
and filter.
Step 4: Check the Adapter's Strategy Before Running
Run
(or
opencli <site> <command> --help
) and read the
field:
| Strategy | What it means | Preconditions |
|---|
| Pure HTTP; no browser needed | None |
| Talks to a local endpoint | Local service running |
| / | Reuses your Chrome login for the site | Chrome logged into the site + Browser Bridge extension loaded |
| Opens an automation window to capture a signed request | Same as COOKIE; be patient — may take several seconds |
| Full DOM interaction | Same as COOKIE; slowest; results depend on the site's current layout |
If the user doesn't have a login and the adapter's strategy is not
/
, tell them they need to log into the site in Chrome before retrying.
Step 5: Execute the Command
General pattern
bash
opencli <site> <command> [positional-args] [flags] -f json
Universal flags
| Flag | Effect |
|---|
| Structured JSON — always prefer this for agent processing |
| / / / / | Other formats |
| Verbose logging (also sets ) |
| Keep the automation window open after the command (browser-backed adapters only) |
| Open the automation window in the foreground (browser-backed adapters only) |
Command-specific flags (
,
,
, etc.) are
not universal — always check
opencli <site> <command> --help
.
Examples
bash
# 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
Key rules
- Always use
opencli <site> <command> --help
before constructing a command you haven't run this session — don't assume flag names.
- Use for programmatic processing.
- Start with a small (10–20) to validate the shape before pulling more.
- Check before running a browser-backed adapter — if the user isn't logged in, a / adapter will fail.
- NEVER execute write operations. Common write command names to avoid across adapters: , , , , , , , , , , , , , , , , , , , . If you're unsure whether a command is read or write, check the in ; if it suggests a mutation, skip it.
Step 6: Handle Failures
If a command returns empty or errors out, the site may have changed its selectors / API. opencli has a built-in self-repair loop:
bash
# Re-run with diagnostic context
OPENCLI_DIAGNOSTIC=1 opencli <site> <command> <args>
This emits a structured
that identifies the failing adapter's source path. Possible responses:
- If the user has the skill installed, tell them to run that skill.
- If not, suggest they file an issue at https://github.com/jackwener/opencli/issues with the output.
- Don't silently fall back to hand-rolled scraping — that hides the bug from the upstream registry.
Rate limits on the target site can also cause empty results; wait and retry.
Step 7: Present the Results
- Summarize the data for the user's actual question, don't just dump the raw JSON.
- Include source attribution — site name + URL for each item where available.
- For market data, surface price / % change / volume / market cap and flag anomalies.
- For news/posts, highlight headlines, timestamps, and key quotes.
- For research (arXiv, Scholar), include title, authors, abstract, and link.
- Treat browser sessions as private — never echo CDP endpoints, cookies, or auth tokens.
Reference Files
- — How to navigate , , and the JSON schema of registry entries
references/finance-sources.md
— Detailed notes on the finance-heavy adapters (Yahoo Finance, Bloomberg, Eastmoney, Xueqiu, Barchart, Reuters, Reddit, HackerNews) and which commands are read vs write
Read these reference files when you need concrete examples for a specific site, or when the user asks for a capability not covered by one of the dedicated readers.