Automate itch.io build releases from CI using butler push with versioned channels
domain: itch.io · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Store your itch.io API key as a CI secret and export it as the butler API key environment variable so butler can authenticate non-interactively.
Use a CI step that installs the butler binary on the runner (for example, a setup-butler action).
Run butler push <build_dir> <user>/<game>:<channel> --userversion <version> for each platform artifact, using kebab-case channel names (e.g., win64, linux, osx) so itch.io routes builds to the right platform.
Source the --userversion value from your CI's tag or commit metadata so itch.io's build history reflects real release versions.
After push, optionally check butler's status output in CI to confirm the new build landed on the expected channel before marking the job successful.
Known gotchas
Channel names are free-form strings you define; a typo in the channel name creates a new, separate channel instead of updating the intended one, and it won't be caught until players report missing updates.
butler push uploads only diffs after the first push, but the first full upload for a new channel can be large — budget CI time/bandwidth accordingly for the initial release.
The CI secret for the butler API key is a powerful credential scoped to your whole itch.io account; scope and rotate it separately from other publishing credentials where possible.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?