Rewrite steam-cli onto the any-cli/kit framework#2
Merged
Merged
Conversation
Replace the hand-built cobra tree and the single steam/steam.go with a kit Domain: each operation is declared once in steam/domain.go and becomes a CLI command, an HTTP route under serve, an MCP tool, and a steam:// URI dereference at the same time. The data layer splits into one file per surface (app, search, reviews, package, featured, news, players, achievements, profile, market) over a paced, retrying, caching client. All reads are keyless: there is no API key and no login. The appid keys the app and its reviews, news, player count, and achievements, and records carry kit:link edges so a host can walk the graph. pkg/steamid does the offline SteamID conversion (64-bit, [U:1:N], STEAM_X:Y:Z), and steam/ids.go classifies any reference and builds its URL for the offline ref command. The applist command is dropped: ISteamApps/GetAppList no longer answers keyless, so there is no full-catalog surface to back it.
Point the Dockerfile, Makefile, and GoReleaser config at cmd/st and the st binary name, and add a golangci misspell ignore for packageid, the Steam field name for a package id.
Replace the scaffold page/links examples with the real command surface: app, search, reviews, package, featured, news, players, achievements, profile, resolve, market, price, and the offline ref group. Document the single keyless plane across the three hosts, the appid graph, the exit-code taxonomy, the steamcommunity reachability caveat, and the steam-specific locale and review flags. Drop the stale v0.1.0 release-notes page and the nonexistent list output format.
# Conflicts: # go.sum # steam/domain.go # steam/steam.go
featuredcategories carries four named slices alongside the numbered banners: top_sellers, new_releases, specials, and coming_soon. Add a command for each (top-sellers, new-releases, specials, coming-soon) so the surface released in v0.1.1 is preserved on the kit rewrite. featured still flattens and de-duplicates every category; each slice returns just its own category in endpoint order with no cross-category dedup, and a missing category yields no apps and no error.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rewrites steam-cli onto the any-cli/kit framework so every operation is declared once and surfaces as a CLI command, an HTTP route under serve, an MCP tool, and a steam:// URI dereference at the same time.
What changed
Keyless only, no API key
Every read is keyless: there is no API key and no login. The appid keys the app and its reviews, news, player count, and achievements, and records carry kit:link edges so a host can walk the graph.
The applist command is dropped. ISteamApps/GetAppList no longer answers keyless (GetSupportedAPIList reports the keyless ISteamApps interface as GetSDRConfig, GetServersAtAddress, and UpToDateCheck only), so there is no full-catalog surface to back it.
Verification