Skip to content

Releases: Bluscream/steam-cli

v0.9.0

Choose a tag to compare

@Bluscream Bluscream released this 15 Sep 08:35

steamcli server — the desktop client's Game Servers dialog, on the command line.

steamcli server browse 730 --not-empty --secure
steamcli server info 10.0.0.5:27015 --players --rules
steamcli server favorites --refresh
steamcli server add 10.0.0.5:27015
steamcli server lan
steamcli server connect 10.0.0.5:27015
  • browse searches Valve's master list with a typed filter (map, gametype, name, version, secure, dedicated, not-empty…). Any APPID accepts a game name.
  • info queries a server directly over A2S — status, scoreboard and rules — with no API key.
  • favorites and history read and write Steam's own file, so changes show up in the client. Writes are atomic, preserve everything they do not model, and keep a backup. Close Steam first; the commands warn when it is running.
  • lan broadcasts a query and reports whoever answers.

Uses rumblefrog/go-a2s (MIT, zero transitive dependencies) rather than reimplementing the protocol. A panic in that library, triggered by a malformed reply from a real server, is contained so one bad host cannot take down a listing.

v0.8.2

Choose a tag to compare

@Bluscream Bluscream released this 15 Sep 08:16

Refactoring pass over the 0.8.0 work.

  • Fixed a data race. search and info fan out across goroutines that each resolved the configuration, which writes back to shared state when a profile sets allow_http. Settings are now resolved once, which also removes four redundant config reads per apps run.
  • Unified logged-in-user resolution. Three commands had their own copy and search had lost the desktop-client fallback, so it resolved a different account from web and info on the same machine.
  • CSV is machine-readable. It carried 546,909 and 33.4 MiB; numbers are now bare and sizes are raw bytes, while tables keep the readable form.
  • Covered the new local-config readers — internal/library 47% → 84%, project 72.6%.
  • Documented info, search, apps and web apps, none of which appeared in the README.

v0.8.1

Choose a tag to compare

@Bluscream Bluscream released this 15 Sep 08:05

Fixes for regressions introduced in 0.8.0.

  • --output parsed works again as a deprecated alias for short; every documented example had started erroring.
  • STEAM_WEB_API_KEY is read again as a fallback for STEAM_API_KEY.
  • steamcli info now reports sections it could not fetch instead of silently omitting them.
  • Launch-option values that look like credentials are redacted in library custom; --show-secrets prints them.
  • The test suite is hermetic again — three tests had begun requiring live internet. The store endpoint is configurable via store_url / STEAM_STORE_URL.

v0.8.0

Choose a tag to compare

@Bluscream Bluscream released this 14 Sep 20:29

What's Changed

  • UI & Formatting: Upgraded all human/terminal outputs with go-pretty, ANSI colors, clean borders, and formatted cards/tables.
  • ASF 2FA & Status: Added styled cards and tables for ASF 2FA codes and ASF status; added -o short to output raw 2FA tokens.
  • CSV Output: Added --output=csv with optional --with-header support. Removed obsolete parsed output format.
  • Config & Auth: Switched default API key environment variable from STEAM_WEB_API_KEY to STEAM_API_KEY (with backward-compatible fallback).
  • Client & Local: Styled path, install, and player detail views.

v0.7.1

Choose a tag to compare

@Bluscream Bluscream released this 14 Sep 18:15

steamcli web profile — a rendered profile view, aliased from web player.

Shows persona, all three SteamID forms, online status or the game being played, community visibility, country, account creation date, primary group and profile URL. Several IDs at once render as a table sorted by persona. -o json returns Valve's payload unchanged.

Aliases: profile, profiles. Not players — that is already the current player-count command.

v0.7.0

Choose a tag to compare

@Bluscream Bluscream released this 14 Sep 18:12

Rendered output by default.

--output auto is the new default (-o shorthand): each command prints the clearest form it has — a table, a report, or a reduced ASF value — and falls back to indented JSON where it has none.

  • status shows its full report without --output raw
  • library, id, doctor, workshop collection/search/subs/installed and batch summaries render as tables
  • asf bots gained a table; asf token reduces to the bare code automatically

ASF envelopes are reduced only when they carry an outcome. A bot listing or asf status carries data, so it is printed whole rather than flattened to its envelope message.

Breaking: the previous default was json. Scripts parsing stdout should pass -o json.

v0.6.0

Choose a tag to compare

@Bluscream Bluscream released this 14 Sep 17:39

First public release.

One static binary for Steam from the terminal — no telemetry, no hosted middleware, no browser automation, and no Python, Node or .NET runtime. CGO-free, so it runs anywhere.

Install

curl -fsSL https://raw.githubusercontent.com/Bluscream/steam-cli/main/scripts/install.sh | sh

Verifies the download against SHA256SUMS below. Also available as an AppImage, an Arch PKGBUILD, or a plain binary for six platforms.

What it does

  • status — service health, latency, live player counts, connection managers, CS2 game coordinator with matchmaking queues and per-region datacenter capacity
  • web — discovery over ~170 Web API methods with an offline catalog, typed helpers, and a raw call escape hatch
  • workshop — cursor-paged search, subscriptions, favorites, and collection create / edit / delete including membership
  • cmd — SteamCMD bootstrapped from Valve on demand, with checksum verification and app/workshop downloads
  • asf — ArchiSteamFarm IPC: bots, commands, OpenAPI, two-factor codes, with --bots selectors and --output parsed
  • client — forwards to the desktop Steam client for launching, installing and steam:// URLs
  • library, id, doctor — local inspection and diagnostics, fully offline

Notes

Some operations are genuinely not available through the Steam Web API: collection membership, your own subscription and favorite lists, and deleting your own Workshop files. Those use a browser session cookie, exactly as the Workshop web UI does, and the CLI tells you so plainly rather than reporting a success that changed nothing.

Credentials are never persisted. Profiles store only the names of environment variables and files.

Public domain under the Unlicense. Not affiliated with or endorsed by Valve Corporation.