Install steamcmd on your build machine and log in with a Steam account that has 'Edit App Metadata' and 'Publish App Changes to Steam' permissions for the app.
Create a depot build script (depot_<DEPOTID>.vdf) that specifies ContentRoot (path to game files), FileMapping entries, and any FileExclusion rules.
Create an app build script (app_build_<APPID>.vdf) referencing the depot scripts, setting the target branch (e.g., beta or default), and a Description for the build.
Run: steamcmd +login <USERNAME> +run_app_build /path/to/app_build_<APPID>.vdf +quit — steamcmd uploads content, creates a build, and outputs a BuildID on success.
In the Steamworks partner portal under the app's SteamPipe page, set the new BuildID live on the desired branch if it was not automatically published.
Verify the live build by checking the branch's current BuildID in the portal and optionally downloading via Steam client with beta opt-in.
Known gotchas
The uploading Steam account must have two-factor authentication (Steam Guard Mobile Authenticator) configured; interactive login will prompt for the code, so automated pipelines must use a ssfn file or the TOTP secret via a compatible tool to avoid blocking.
Depot content is delta-uploaded, but the first upload of a large depot can time out on slow connections — split large depots (e.g., separating locale data into separate depots) to reduce individual upload size.
Setting a build live on the 'default' branch immediately pushes it to all players; always stage on a beta branch first and use the portal's 'Set Build Live' flow with a deliberate review step.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp