Install
$ agentstack add skill-himself65-finance-skills-opencli-reader ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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 (twitter-reader, linkedin-reader, discord-reader, telegram-reader, yc-reader) 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 | twitter-reader | | LinkedIn | linkedin-reader | | Discord | discord-reader | | Telegram | telegram-reader | | Y Combinator | yc-reader | | 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"`
If NOT_INSTALLED:
npm install -g @jackwener/opencli
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):
- Download the latest
opencli-extension-v{version}.zipfrom the GitHub Releases page - Unzip it, open
chrome://extensionsin Chrome, enable Developer mode - Click Load unpacked and select the unzipped folder
- Make sure Chrome is logged into the target site, then re-run
opencli doctor
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:
# Full registry (grouped by site), machine-readable JSON
opencli list -f json
# Filter to a site
opencli list | grep -i
# Site-level help (all commands + flags)
opencli --help
# Command-level help (positional args + flags + defaults)
opencli --help
The opencli list -f json entry for each command includes:
site— adapter namespace (e.g.,yahoo-finance)name— subcommand (e.g.,quote)strategy—PUBLIC/COOKIE/HEADER/INTERCEPT/UI/LOCAL— tells you if a browser login is neededdescription,args,columns— canonical metadata
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.
Quick map of the most common finance / research sources
The table below is a shortlist, not exhaustive — always confirm with opencli --help.
| Source | Site slug | Common commands | |---|---|---| | Yahoo Finance | yahoo-finance | quote | | Bloomberg | bloomberg | markets, economics, industries, tech, politics, opinions, news, businessweek, feeds, main | | Reuters | reuters | search | | Eastmoney (东方财富) | eastmoney | quote, rank, kline, sectors, etf, holders, money-flow, northbound, longhu, kuaixun, convertible, index-board, announcement, hot-rank | | Xueqiu (雪球) | xueqiu | stock, hot-stock, hot, feed, comments, watchlist, search, groups, fund-snapshot, fund-holdings, earnings-date, kline | | Sinafinance | sinafinance | (see --help) | | TDX / THS | tdx, ths | (see --help) | | Barchart (options) | barchart | quote, options, flow, greeks | | Reddit | reddit | hot, popular, frontpage, search, subreddit, read, user, user-posts, user-comments, saved | | HackerNews | hackernews | top, best, new, ask, show, jobs, user, search | | Substack | substack | feed, publication, search | | Medium | medium | (see --help) | | arXiv | arxiv | (see --help) | | Google Scholar | google-scholar | (see --help) | | Weibo | weibo | (see --help) | | Bilibili | bilibili | hot, video + more | | Xiaohongshu (小红书) | xiaohongshu | (see --help) | | Rednote (小红书 international) | rednote | (see --help — mirrors xiaohongshu) | | Zhihu | zhihu | (see --help) | | Tieba (百度贴吧) | tieba | (see --help) | | Hupu (虎扑) | hupu | (see --help) | | Xianyu (闲鱼) | xianyu | (see --help) | | 1688 | 1688 | (see --help) | | Gitee | gitee | (see --help) | | Quark | quark | (see --help) | | Baidu Scholar | baidu-scholar | (see --help) | | Nowcoder | nowcoder | (see --help) | | Wanfang | wanfang | (see --help) | | Doubao (豆包) | doubao | (see --help) | | Yuanbao (腾讯元宝) | yuanbao | (see --help) | | Google Gemini | gemini | (see --help) | | NotebookLM | notebooklm | (see --help) | | Claude | claude | (see --help) | | 36kr | 36kr | (see --help) | | Jike | jike | (see --help) | | Bluesky | bluesky | (see --help) | | Apple Podcasts | apple-podcasts | (see --help) | | Xiaoyuzhou (podcasts) | xiaoyuzhou | (see --help) | | Spotify | spotify | (see --help) | | YouTube | youtube | (see --help) | | Weixin Official Account | weixin | (see --help — drafts is read; create-draft is write) | | Toutiao | toutiao | articles | | Government policy / law | gov-policy, gov-law | (see --help) | | Web download / reader | web | read, download |
For anything not listed, run opencli list -f json and filter.
Step 4: Check the Adapter's Strategy Before Running
Run opencli list -f json (or opencli --help) and read the strategy field:
| Strategy | What it means | Preconditions | |---|---|---| | PUBLIC | Pure HTTP; no browser needed | None | | LOCAL | Talks to a local endpoint | Local service running | | COOKIE / HEADER | Reuses your Chrome login for the site | Chrome logged into the site + Browser Bridge extension loaded | | INTERCEPT | Opens an automation window to capture a signed request | Same as COOKIE; be patient — may take several seconds | | UI | 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 PUBLIC / LOCAL, tell them they need to log into the site in Chrome before retrying.
Step 5: Execute the Command
General pattern
opencli [positional-args] [flags] -f json
Universal flags
| Flag | Effect | |---|---| | -f json | Structured JSON — always prefer this for agent processing | | -f yaml / -f csv / -f md / -f table / -f plain | Other formats | | -v | Verbose logging (also sets OPENCLI_VERBOSE=1) | | --live | Keep the automation window open after the command (browser-backed adapters only) | | --focus | Open the automation window in the foreground (browser-backed adapters only) |
Command-specific flags (--limit, --filter, --type, etc.) are not universal — always check opencli --help.
Examples
# 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 --helpbefore constructing a command you haven't run this session — don't assume flag names. - Use
-f jsonfor programmatic processing. - Start with a small
--limit(10–20) to validate the shape before pulling more. - Check
strategybefore running a browser-backed adapter — if the user isn't logged in, aCOOKIE/UIadapter will fail. - NEVER execute write operations. Common write command names to avoid across adapters:
post,reply,comment,like,unlike,upvote,save,subscribe,unsubscribe,follow,unfollow,block,unblock,delete,bookmark,unbookmark,send,create-draft,reply-dm,accept. If you're unsure whether a command is read or write, check thedescriptioninopencli list -f json; 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:
# Re-run with diagnostic context
OPENCLI_DIAGNOSTIC=1 opencli
This emits a structured RepairContext that identifies the failing adapter's source path. Possible responses:
- If the user has the
opencli-autofixskill installed, tell them to run that skill. - If not, suggest they file an issue at https://github.com/jackwener/opencli/issues with the
RepairContextoutput. - 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
references/discovery.md— How to navigateopencli list,opencli --help, and the JSON schema of registry entriesreferences/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.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: himself65
- Source: himself65/finance-skills
- License: MIT
- Homepage: https://skills.himself65.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.