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,xiaohongshu,twitter/x. There is NOyahoo-financeadapter — usesina-finance stockfor 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 # Structured data for processing
opencli hackernews top --limit 5 -f md # Readable markdown
opencli hackernews top --limit 5 -f csv # Spreadsheet-friendly
opencli hackernews top --limit 5 -f yaml # Human-readable structured
opencli hackernews top --limit 5 # Default: rich terminal table
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:
# Tech news
opencli hackernews top --limit 10 -f json
# Stock quote (Chinese & US markets via Sina Finance)
opencli sina-finance stock AAPL -f json
# Research papers
opencli arxiv search "transformer architecture" --limit 5 -f json
# Programming questions
opencli stackoverflow search "rust async" --limit 5 -f json
# Word lookup
opencli dictionary search "ephemeral" -f json
# Bluesky trending
opencli bluesky trending -f json
# Product launches
opencli product-hunt today -f json
Pattern 2: Multi-Source Research
When the user needs a broad picture, combine multiple adapters:
# Gather from multiple sources, then synthesize
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:
# One-shot: explore and generate adapter in one step
opencli generate https://example.com --goal "trending posts"
# Or step by step for more control:
opencli explore https://example.com --site mysite # Discover APIs
opencli synthesize mysite # Generate adapter
opencli mysite <command> --limit 5 -f json # Use it
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 searchcommand can return HTTP 429 if called too frequently. If this happens, wait a few seconds and retry, or fall back to WebFetch onhttps://arxiv.org/search/as a workaround. - No Yahoo Finance adapter: Despite references in OpenCLI's website docs, there is no
yahoo-financeadapter. Usesina-finance stock <TICKER>for stock quotes instead. barchartrequires 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 withopencli 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 doctorfor diagnostics - Node errors — Ensure Node.js 20+:
node --version - Check adapter strategy — Run
opencli listto 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