| name | opencli |
| description | Use OpenCLI to gather information from websites without login. Trigger when the user wants to fetch data from websites (news, finance, research papers, tech trends, Stack Overflow, Wikipedia, etc.) via CLI, needs structured web data in JSON/CSV/Markdown, mentions opencli, or wants to discover public APIs on any website. Also use when the user asks to scrape, monitor, or pull live data from public web sources without authentication. |
| license | Apache-2.0 |
OpenCLI: Gather Web Information Without Login
OpenCLI turns websites into CLI commands. Many adapters work against public APIs — no browser, no login, no credentials needed. This skill covers the no-login subset: 25+ built-in public adapters plus AI-powered discovery for any website.
Verified against opencli list — only adapters tagged [public] are listed below. Adapters tagged [cookie], [intercept], or [ui] require browser login and are excluded.
Before You Start
Check that opencli is installed:
opencli --version
If not installed:
npm install -g @jackwener/opencli
Requires Node.js 20+. No Chrome or browser extension needed for public commands.
Quick Reference: Public Adapters
These adapters work immediately — no login, no browser. Verified via opencli list output:
| Adapter | Best Commands | Use Case |
|---|
hackernews | top, new, best, search, ask, show, jobs, user | Tech news & discussions |
stackoverflow | hot, search, bounties, unanswered | Programming Q&A |
arxiv | search, paper | Academic papers (note: API can rate-limit, see Known Issues) |
wikipedia | search, summary, random, trending | General knowledge |
devto | top, tag, user | Developer blog posts |
bbc | news | World news headlines (RSS) |
lobsters | hot, newest, active, tag | Tech link aggregator |
dictionary | search, synonyms, examples | Word definitions |
steam | top-sellers | Top selling games |
huggingface | top | Trending AI papers |
apple-podcasts | search, episodes, top | Podcast discovery |
xiaoyuzhou | podcast, podcast-episodes, episode | Chinese podcasts |
paperreview | submit, review, feedback | Paper peer review |
bluesky | trending, user, search, thread, profile, followers, following | Bluesky social |
google | news, search, suggest, trends | Google search & trends |
imdb | search, title, top, trending, person, reviews | Movies & TV |
sina-finance | news, stock | Chinese finance news & stock quotes |
product-hunt | posts, today | Product launches |
v2ex | hot, latest, node, topic, member, replies, user | Chinese tech forum |
weread | ranking, search | Book rankings (WeRead) |
substack | search | Newsletter search |
tieba | hot | Baidu Tieba hot topics |
ctrip | search | Travel destination search |
Bloomberg (all public via RSS):
main, markets, economics, tech, politics, opinions, industries, businessweek, feeds
NOT public (require browser login): barchart (all [cookie]), bilibili, douban, zhihu, weibo, xiaohongshu, twitter/x. There is NO yahoo-finance adapter — use sina-finance stock for stock quotes instead.
For the full adapter reference with all flags and examples, read references/public-adapters.md.
Output Formats
Always pick the right format for the context:
opencli hackernews top --limit 5 -f json
opencli hackernews top --limit 5 -f md
opencli hackernews top --limit 5 -f csv
opencli hackernews top --limit 5 -f yaml
opencli hackernews top --limit 5
When gathering data for further analysis or piping, always use -f json. It produces clean, parseable output that you can work with programmatically.
Add -v for verbose pipeline debugging if a command behaves unexpectedly.
Common Patterns
Pattern 1: Quick Data Fetch
When the user wants specific data from a known source:
opencli hackernews top --limit 10 -f json
opencli sina-finance stock AAPL -f json
opencli arxiv search "transformer architecture" --limit 5 -f json
opencli stackoverflow search "rust async" --limit 5 -f json
opencli dictionary search "ephemeral" -f json
opencli bluesky trending -f json
opencli product-hunt today -f json
Pattern 2: Multi-Source Research
When the user needs a broad picture, combine multiple adapters:
opencli hackernews search "AI safety" --limit 5 -f json
opencli arxiv search "AI safety" --limit 5 -f json
opencli devto tag "ai" --limit 5 -f json
opencli stackoverflow search "AI safety" --limit 5 -f json
Run these commands, collect the JSON outputs, and synthesize a summary for the user.
Pattern 3: Discover Public APIs on Unknown Sites
When the user wants data from a site that doesn't have a built-in adapter, use the AI discovery workflow. Read references/ai-discovery.md for the full guide. Quick version:
opencli generate https://example.com --goal "trending posts"
opencli explore https://example.com --site mysite
opencli synthesize mysite
opencli mysite <command> --limit 5 -f json
The cascade command auto-probes authentication tiers (PUBLIC first):
opencli cascade https://api.example.com/data
Pattern 4: Install Community Plugins
If someone has already built an adapter for a site:
opencli plugin install github:<user>/<repo>
opencli plugin list
Pattern 5: Create a Custom YAML Adapter
For sites with simple public JSON APIs, you can create a YAML adapter with zero code. Read references/custom-yaml-adapter.md for the full guide. Basic structure:
site: mysite
name: trending
description: Get trending items
domain: api.example.com
strategy: public
browser: false
args:
- name: limit
type: int
default: 10
help: Number of results
pipeline:
- fetch:
url: https://api.example.com/trending?limit=${{ args.limit }}
- map:
title: ${{ item.title }}
url: ${{ item.url }}
score: ${{ item.score }}
columns: [title, url, score]
Save as ~/.opencli/plugins/mysite/trending.yaml and it's immediately available.
Known Issues
- arXiv API rate limiting: The
arxiv search command can return HTTP 429 if called too frequently. If this happens, wait a few seconds and retry, or fall back to WebFetch on https://arxiv.org/search/ as a workaround.
- No Yahoo Finance adapter: Despite references in OpenCLI's website docs, there is no
yahoo-finance adapter. Use sina-finance stock <TICKER> for stock quotes instead.
barchart requires login: All barchart commands are [cookie] strategy — they need Browser Bridge. Do not use for login-free gathering.
- Region-restricted adapters: Some Chinese platform adapters (Bilibili, Zhihu, Douban, Xiaohongshu) may not work outside China even with login.
Troubleshooting
- "command not found" — Run
npm install -g @jackwener/opencli
- Exit code 69 / "Browser Bridge not connected" — You're using a
[cookie] adapter that needs browser login. Check with opencli list — only [public] adapters work without browser.
- HTTP 429 — API rate limit. Wait and retry, or use a different adapter/source.
- Empty results — Some adapters are region-restricted. Stick to global public adapters.
- Unexpected errors — Run
opencli doctor for diagnostics
- Node errors — Ensure Node.js 20+:
node --version
- Check adapter strategy — Run
opencli list to see [public], [cookie], [intercept], or [ui] tags for each command
Decision Tree
User wants web data
├── Known site with public adapter? → Use the adapter directly
├── Known site without adapter?
│ ├── Has community plugin? → opencli plugin install
│ ├── Site has public JSON API? → Create YAML adapter
│ └── Unknown API structure? → opencli generate/explore
└── Multiple sources needed? → Run multiple adapters, synthesize results