Download butler from https://itchio-butterlib.s3.amazonaws.com/... (or via the itch.io app) for your platform and place it on your PATH.
Authenticate butler with your itch.io account by running butler login — this opens a browser-based OAuth flow and saves credentials locally; for CI use butler login --api-key <API_KEY> with a key generated at itch.io/user/settings/api-keys.
Run butler push <BUILD_DIRECTORY_OR_ZIP> <ITCHIO_USERNAME>/<GAME_SLUG>:<CHANNEL_NAME> to upload; channel name identifies the platform or variant (e.g., windows, linux, html5).
Butler performs delta uploads — only changed files are transferred; subsequent pushes for the same channel are fast. The first push creates the channel if it does not exist.
Verify the upload by visiting your game's edit page on itch.io and checking that the new build appears under the channel with the correct file count and size.
For CI pipelines, set BUTLER_API_KEY as an environment variable; butler reads it automatically, avoiding the need for an interactive login step.
Known gotchas
Channel names are permanent and not renameable after creation — choose a clear, consistent naming scheme (e.g., windows-64, mac-universal) before your first push, as the channel name appears in download URLs.
Pushing a directory uploads all its contents recursively including hidden files and development artifacts; use a clean build output directory or pass --ignore patterns to exclude .git, node_modules, and similar directories.
itch.io's free plan has storage and bandwidth limits; large game files or high download volumes may require upgrading, and butler push will succeed even if you are over quota — the overage is billed or restricted separately.
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