Sign In
S

Steam Library

@mvanhorn
Visit Skill
Share:

pp-steam-web skill: audit your Steam library and backlog, compare friends' playtime and find easy achievements via the Steam Web API CLI.

Security Reviewed

Instruction-only skill for a third-party Steam Web API CLI; data goes to Steam with your API key and stays local unless you opt into webhooks or feedback upload.

Install Steam Library in Google Antigravity

Antigravity loads skills from .agents/skills/ in your project or ~/.gemini/config/skills/ for all projects (official docs). Full guide

EasiestOption 1: paste this to your Antigravity agent
Install the "Steam Library" skill for Google Antigravity.
Follow the steps at https://www.antigravityskills.org/install/steam-library.md (source: https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-steam-web).
Before running anything, show me what you will download and whether it includes scripts, and wait for my OK.
Install it into this project (.agents/skills/) unless I say global. When done, check that Antigravity lists it as an installed skill.

The agent reads the install file, shows you what it will download and waits for your OK.

Option 2: install it yourself
  1. 1. Clone the source repo
    git clone --depth 1 --filter=blob:none --sparse https://github.com/mvanhorn/printing-press-library /tmp/printing-press-library && git -C /tmp/printing-press-library sparse-checkout set cli-skills/pp-steam-web

    Download the repository that contains the skill into a temporary folder.

  2. 2. Copy into this workspace (project skill)
    mkdir -p .agents/skills && cp -r /tmp/printing-press-library/cli-skills/pp-steam-web .agents/skills/pp-steam-web

    Run this from your project root. Antigravity reads workspace skills from <project>/.agents/skills/<folder>/.

  3. 3. Or install globally (all projects)
    mkdir -p ~/.gemini/config/skills && cp -r /tmp/printing-press-library/cli-skills/pp-steam-web ~/.gemini/config/skills/pp-steam-web

    Use this instead of the previous step if you want the skill in every workspace. Antigravity reads global skills from ~/.gemini/config/skills/<folder>/.

  4. 4. Check that Antigravity sees it

    Start a new Antigravity agent session in this workspace and ask "What skills do you have?" (in the Antigravity CLI you can also run /skills). The skill should be listed by its name.

Requires steam-web-pp-cli on PATH (npx -y @mvanhorn/printing-press-library install steam-web --cli-only) and STEAM_WEB_API_KEY from https://steamcommunity.com/dev/apikey. The README does not mention Antigravity; this is a plain folder copy into Antigravity's standard skill folders. Ignore the MCP go install line inside the SKILL.md: its library/other/steam-web path does not exist in the repository.

Using Claude Code, Cursor or Codex? See other assistants below.

What is Steam Library?

pp-steam-web is a skill for Steam players who want an AI agent to audit their game library, compare it with friends' and find the easiest achievements left, by driving the third-party steam-web-pp-cli command-line tool. What we counted at commit 985f5d7 (2026-10-13): the skill folder is one generated file, SKILL.md (638 lines, 36,423 bytes), a mirror of the library's own SKILL.md; it documents 169 CLI commands in 26 command groups (the README says it mirrors all 169 documented Steam Web API endpoints) plus 11 named "unique" commands such as library audit, library compare, friends compare, next-achievement and news search that use a local SQLite store. The CLI source is 256 Go files (5 of them tests) with 5 direct Go dependencies (cobra, pflag, go-toml, modernc sqlite, mcp-go) and two binaries, steam-web-pp-cli and steam-web-pp-mcp. It sits in a library whose cli-skills/ folder holds 586 pp-* skills; tmdb-movies on this site comes from the same library.

How to use Steam Library?

Install the skill and the CLI (npx -y @mvanhorn/printing-press-library install steam-web --cli-only, or go install), set STEAM_WEB_API_KEY, run steam-web-pp-cli doctor and then steam-web-pp-cli sync, which the README says pulls your profile, owned games, friend list and recent achievements into the local SQLite store that the cross-library commands read from. Then ask in plain words. The SKILL.md lists trigger phrases such as "what should I play next on steam", "audit my steam backlog" and "easiest steam achievement to unlock", and tells the agent to run commands with --agent, which expands to --json --compact --no-input --no-color --yes.

Key features of Steam Library

  • ✓library audit: never-launched games, paid titles played under 2 hours, hours by genre
  • ✓library compare: games only you own, only a friend owns, or both own
  • ✓friends compare, currently-playing and achievement-leaderboard across your friend list (throttled to Steam's 25 req/s budget)
  • ✓next-achievement, achievement-hunt and rare-achievements using global unlock rates
  • ✓news search (FTS5) over synced news posts, plus review-velocity and play-trend per app
  • ✓--agent mode: JSON, compact, non-interactive, with --select field filtering and --dry-run previews

When to use Steam Library

  1. 1Auditing your backlog after a Steam sale
  2. 2Picking a co-op game you and a friend both own
  3. 3Finding the easiest achievements left to unlock
  4. 4Searching patch notes across games you own

Installation & Setup Guide

Agent Rules / Prompt Setup

Follow these steps (taken from the project's own docs) to configure Steam Library in your development environment.

Step 1: Skill via the skills CLIclaude
npx skills add mvanhorn/printing-press-library/cli-skills/pp-steam-web -g -y

Installs the focused skill (README, Focused skills). The README names Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot and other agents supported by the vercel-labs skills CLI; Antigravity is not mentioned.

Step 2: CLI plus skill in one stepclaude
npx -y @mvanhorn/printing-press-library install steam-web

The npm installer pulls the Go binary and the focused skill; add --cli-only or --skill-only for one half, or --agent claude-code to limit the skill install to Claude Code (steam-web README).

Step 3: Cursor: only through the skills CLIcursor

The steam-web README lists Cursor among the agents the skills CLI supports, but gives no Cursor-specific command or folder, so we list only the shared command above.

Usage Example & Verification

Prompt / Request Example
1) README example (steam-web README, Quick Start): after `steam-web-pp-cli sync`, run `steam-web-pp-cli next-achievement --steamid <your id> --limit 5`.
-> What happens: you get the five lowest-effort achievements across your whole library, ranked by global unlock rate, read from the local SQLite store that sync filled.

2) README example (Quick Start): `steam-web-pp-cli friends compare 1245620 --my-steamid <your id>`.
-> What happens: a throttled fan-out over your friend list ranks everyone by hours in app 1245620 (Elden Ring, per the README) and caches each friend's owned games locally for next time.

3) Our example: "Audit my Steam backlog: which games have I never launched?"
-> What happens: the SKILL.md trigger phrase "audit my steam backlog" maps to `steam-web-pp-cli library audit <steamid> --never-launched --json`; the agent summarises the never-launched games. Your game details must be public for Steam to return them.
Installation Confirmation Method

Run steam-web-pp-cli --version and steam-web-pp-cli doctor in a terminal, then start a new agent session and ask "What skills do you have?" (Antigravity CLI: /skills); pp-steam-web should be listed. Try "what is Steam's server time", which the SKILL.md says needs no API key.

Security Review

Static review
Reviewed Date
2026-10-13
Audited Ref / Commit
985f5d7cc305b38b501c1e6302ac731a38eac503
Reviewer
antigravityskills.org (static code review)

Instruction-only skill for a third-party Steam Web API CLI; data goes to Steam with your API key and stays local unless you opt into webhooks or feedback upload.

Full review: scope, findings, risks
Audit Scope:Static review at commit 985f5d7 (HEAD, 2026-10-13): cli-skills/pp-steam-web/SKILL.md (full), the repository README.md (install and focused-skills sections), library/media-and-entertainment/steam-web/README.md, go.mod and LICENSE; grep over library/media-and-entertainment/steam-web/internal and cmd for URLs, os/exec, http requests, environment variables and file paths. The 256 Go files were not read line by line.
Key Findings:Skill is instructions only (allowed-tools: Read Bash). CLI hosts found in the Go source: api.steampowered.com and store.steampowered.com; STEAM_WEB_BASE_URL can override the base URL. os/exec is used only in internal/mcp/cobratree (shellout.go, cli_path.go) so the MCP server can call the CLI. Environment variables read: STEAM_WEB_API_KEY, STEAM_WEB_CONFIG, STEAM_WEB_BASE_URL, STEAM_WEB_CLI_PATH, STEAM_WEB_FEEDBACK_ENDPOINT, STEAM_WEB_FEEDBACK_AUTO_SEND. Files written: SQLite store under ~/.local/share/steam-web-pp-cli/, config under ~/.config/steam-web-pp-cli/, feedback under ~/.steam-web-pp-cli/. --deliver webhook:<url> can POST command output to an arbitrary URL (internal/cli/deliver.go). The SKILL.md Command Reference includes Steam's interactive login commands (iauthentication-service, 8 commands) and says not to use them for normal workflows.
Identified Operational Risks & Permissions:API key sent as a query parameter (may appear in logs or proxies). Webhook delivery can send data off-machine if an agent uses it. --agent mode skips confirmations. The installer pulls a third-party Go binary. Static review only: we did not run the CLI.

Static review at commit 985f5d7. cli-skills/pp-steam-web/SKILL.md is a generated mirror of library/media-and-entertainment/steam-web/SKILL.md and contains only usage instructions (allowed-tools: Read Bash). A grep of the CLI source (internal/ and cmd/) shows the API hosts api.steampowered.com and store.steampowered.com. os/exec appears only in internal/mcp/cobratree, where the MCP server shells out to the CLI. The skill says the Steam key is sent as a ?key= query parameter, feedback is local-only by default (posted only if STEAM_WEB_FEEDBACK_ENDPOINT is set and --send or STEAM_WEB_FEEDBACK_AUTO_SEND is used), and --deliver webhook:<url> POSTs output to a URL you name. It also lists the IAuthenticationService login commands and says they should not be used for normal Web API workflows; --agent expands to include --yes. Install pulls a Go binary through an npm installer or go install.

Operational Notes & Known Limitations

Known Limitations

  • •Needs the steam-web-pp-cli binary (npx installer or Go); SKILL.md and README say Go 1.26.6 or newer, while the CLI's go.mod says 1.26.5
  • •Most player endpoints need a Steam Web API key in STEAM_WEB_API_KEY, sent as a ?key= query parameter; server time, app list and news work without one
  • •Friend and library data depends on Steam profile privacy settings, and the cross-library commands only work after steam-web-pp-cli sync has filled the local store
  • •The skill's MCP install command and the install block in its frontmatter use the Go path library/other/steam-web, which does not exist in the repository at this commit (the CLI lives in library/media-and-entertainment/steam-web), so that go install command would fail; the CLI install command uses the correct path
  • •Not affiliated with Valve (third-party CLI); the README does not mention Antigravity
  • •--agent includes --yes, so confirmations are skipped in agent mode

Frequently Asked Questions

Is the Steam library skill safe?

In our static review of commit 985f5d7, the SKILL.md limits tools to Read and Bash and runs the steam-web-pp-cli binary, which talks to api.steampowered.com and store.steampowered.com with your Steam Web API key. Feedback stays local unless you set STEAM_WEB_FEEDBACK_ENDPOINT. Note that --deliver webhook:<url> can POST output to any URL, --agent skips confirmations, and the CLI also exposes Steam's interactive login commands, which the skill says not to use for normal work.

How do I install the Steam library skill in Antigravity?

Sparse-clone mvanhorn/printing-press-library (cli-skills/pp-steam-web), copy that folder to .agents/skills/pp-steam-web or ~/.gemini/config/skills/pp-steam-web, install steam-web-pp-cli, set STEAM_WEB_API_KEY and check by asking "What skills do you have?" (Antigravity CLI: /skills). The README does not mention Antigravity, so this uses Antigravity's standard skill folders.

Do I need a Steam API key?

For player data, yes: get one at https://steamcommunity.com/dev/apikey and set STEAM_WEB_API_KEY. The skill says some endpoints (server time, app list, news) work without a key.

Where is data stored?

From the Go source: synced data goes to a local SQLite file (default ~/.local/share/steam-web-pp-cli/data.db), settings to ~/.config/steam-web-pp-cli/config.toml, and feedback notes to ~/.steam-web-pp-cli/feedback.jsonl.

Supported Platforms

antigravityclaudecodex