Files
jackwener__opencli/docs/adapters/browser/steam.md
jakevin a78ceb1602 feat: 11 read adapters across 8 sites (round 2) (#1345)
* feat: 11 read adapters across 8 sites (dblp / steam / bbc / devto / lobsters / medium / coingecko / hf)

Round 2 of the adapter expansion sweep. All 11 commands hit public APIs (no
browser, no auth), follow the post-#1332 typed-error / no-silent-failure
discipline, and were live-verified against real endpoints.

New adapters:
- dblp/author      : recent publications for one author (resolve PID by name, or pass --pid)
- steam/search     : storefront name search (storesearch API)
- steam/app        : single app detail (appdetails API; HTML entities decoded)
- bbc/topic        : per-topic RSS (8 canonical BBC News feeds)
- devto/latest     : /api/articles/latest with --page pagination
- lobsters/domain  : stories from a specific source domain (/domains/<d>.json)
- medium/tag       : tag RSS (description full-length, no silent truncation)
- coingecko/exchanges  : trust score + 24h BTC volume leaderboard
- coingecko/categories : sector buckets with 6 sort options
- coingecko/global     : aggregate market totals + BTC/ETH dominance
- hf/paper         : single-paper detail by arXiv id (summary, ai_summary, ai_keywords, upvotes)

Also adds clis/steam/utils.js + clis/bbc/utils.js as shared helpers (HTML entity
decode, RSS parsing). All listings carry a round-trippable id where a detail
sibling exists; advise:listing-id-pairing reports zero new violations. typed-
error-lint and silent-column-drop gates both unchanged from baseline.

Manifest: 698 → 709 (+11 entries).

* fix: tighten adapter round2 contracts
2026-05-06 12:46:14 +08:00

2.0 KiB

Steam

Mode: 🌐 Public · Domain: store.steampowered.com

Commands

Command Description
opencli steam top-sellers Top selling games on Steam
opencli steam search <query> Search the Steam storefront by name keyword
opencli steam app <id> Storefront detail for a single app id (game / DLC / package)

Usage Examples

# Top sellers
opencli steam top-sellers --limit 10

# Free-text search
opencli steam search "portal" --limit 5
opencli steam search "stardew" --limit 5

# App detail (round-trip from search.id)
opencli steam app 620      # Portal 2
opencli steam app 413150   # Stardew Valley

# Different storefront / currency
opencli steam search "portal" --currency cn
opencli steam app 620 --currency jp

# JSON output
opencli steam app 620 -f json

Output Columns

Command Columns
top-sellers (see existing top-sellers row schema)
search rank, id, name, price, currency, metascore, platforms, url
app id, name, type, isFree, releaseDate, developers, publishers, price, currency, metacritic, recommendations, genres, categories, shortDescription, website, url

The id column on search round-trips into app — it's Steam's numeric app id (also visible in the storefront URL store.steampowered.com/app/<id>/).

Notes

  • price is the storefront's localized final price expressed as a decimal (e.g. 9.99), not cents. The accompanying currency column gives the ISO code.
  • --currency is a Steam country code (us, cn, jp, de, ...). It controls both pricing and regional availability — some apps return success: false outside their licensed regions; the adapter raises EmptyResultError with a hint when that happens.
  • metascore / metacritic are returned only when Steam has a Metacritic mapping; otherwise they are null.
  • HTML entities in name and shortDescription are decoded (e.g. &quot;").

Prerequisites

  • No login required (public APIs /api/storesearch/ and /api/appdetails).