Publish and update a game on itch.io: create the project page and upload builds with the butler CLI (butler push) to named channels.

Apache-2.0Auto-check passedMobile

Install Itch Publish

skills CLI
$ npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill itch-publish -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install gamedev-skills/awesome-gamedev-agent-skills itch-publish --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/gamedev-skills/awesome-gamedev-agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/workflows/itch-publish .claude/skills/itch-publish && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
itch-publish
GitHub stars
1.4k
Token cost
~1.7k tokens
SKILL.md length
679 words
Files
2 (incl. references)
Skills in repo
53
Repo updated
First seen
Licence
Apache-2.0

At a glance

Publish and update a game on itch.io: create the project page and upload builds with the butler CLI (butler push) to named channels.

  • Works in 4 steps: The one command you need — butler push → Channel naming controls the platform tag… → Version, verify, and preview → …
  • Itch.io publishing
  • SKILL.md covers When to use, Core workflow, Patterns and Pitfalls, plus 2 more sections
  • Needs BUTLER_API_KEY

What it does

Itch Publish is an agent skill from gamedev-skills/awesome-gamedev-agent-skills. Publish and update a game on itch.io: create the project page and upload builds with the butler CLI (butler push) to named channels. Use for itch.io publishing, butler push, channel naming for Windows/macOS/Linux/HTML5, versioning uploads, or shipping a jam or release build to itch.io.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/butler-ci.md`).

It sits in Mobile, covering App store release. It works with Linux and macOS. The repository describes itself as: 74 game-dev skills for AI coding agents — Godot, Unity, Unreal, Phaser, PixiJS, three.js, Bevy, pygame, LÖVE, Roblox. Portable SKILL.md Agent Skills (the format Anthropic… The licence is Apache-2.0.

When your agent uses it

  • Itch.io publishing
  • Channel naming for Windows/macOS/Linux/HTML5
  • Versioning uploads
  • Release build to itch.io

Example prompts

  • “/itch-publish”

Requirements

  • A credential in BUTLER_API_KEY

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. The one command you need — butler push
  2. Channel naming controls the platform tag (kebab-case, lowercase)
  3. Version, verify, and preview
  4. First-time, hidden, and filtered pushes

What it can do on your machine

Read from SKILL.md and the folder at commit 0a70cfc. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • BUTLER_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Itch Publish loads about 1.7k tokens when it runs, and up to ~3.1k if it reads all its reference files. Until then it costs about 75 tokens; SKILL.md has 679 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from gamedev-skills/awesome-gamedev-agent-skills at commit 0a70cfc, republished under its Apache-2.0 licence (© gamedev-skills). 679 words, ~1,721 tokens.

Download SKILL.mdSave it as .claude/skills/itch-publish/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
itch-publish
description
Publish and update a game on itch.io: create the project page and upload builds with the butler CLI (butler push) to named channels. Use for itch.io publishing, butler push, channel naming for Windows/macOS/Linux/HTML5, versioning uploads, or shipping a jam or release build to itch.io.

itch.io Publish (butler)

Get a build onto an itch.io page and keep it updated. The page is created in the browser; all uploads go through butler, itch.io's command-line tool, with one command you'll use forever: butler push. butler diffs against the previous build and uploads only what changed. Deep CI/CD and flag detail lives in references/butler-ci.md.

When to use

  • Use when creating/updating an itch.io project page, installing or logging in to butler, uploading a build with butler push, choosing channel names, versioning uploads, or shipping a jam/demo/release build to itch.io.
  • Triggers: butler push, butler login, channels, .itch.toml, "publish on itch", "upload to itch".

When not to use: publishing on Steam (use steam-publish); jam scope/planning (use game-jam — this skill is only the upload mechanics); building the game itself (engine skills).

Core workflow

  1. Create the project page at itch.io/game/new. Set the Kind of project: keep Downloadable for native builds, or choose HTML for a browser-playable game (this is required for web builds — see Pitfalls). Set pricing/visibility (Draft until ready).
  2. Install butler and log in. Download from itchio.itch.io/butler, add it to PATH, then butler login (opens a browser to authorize). Verify with butler version. For CI, use BUTLER_API_KEY instead — see the reference.
  3. Prepare a portable build folder — the exact files a player runs, nothing extra. Push a folder (or a single .zip of that folder), not an installer and not a pre-compressed archive of archives (hurts patching; see Pitfalls).
  4. Push to a channel: butler push <dir> <user>/<game>:<channel>. The channel name determines the platform tag (see Patterns). The first push uploads everything; later pushes to the same channel upload only the diff.
  5. Set platform/HTML tags on the Edit game page if a channel wasn't auto-tagged correctly, then Save. For browser games also flip the page to HTML and tag the channel playable in browser.
  6. Version your builds (optional but recommended): --userversion 1.2.0 or --userversion-file build.txt so you control the version string players and the update API see.
  7. Update later by pushing to the same channel again. Use butler status <user>/<game> to see channels/builds and butler push-preview to see what a push would change before sending it.

Patterns

1. The one command you need — butler push
bash
# butler push <directory-or-zip> <user>/<game>:<channel>
butler push ./build/windows leafy/my-game:windows
butler push ./build/mac     leafy/my-game:osx
butler push ./build/linux   leafy/my-game:linux
butler push ./web           leafy/my-game:html   # browser build (also set page Kind = HTML)
2. Channel naming controls the platform tag (kebab-case, lowercase)
text
Substring in channel name -> auto-applied tag:
  win / windows  -> Windows        linux -> Linux
  mac / osx      -> macOS          android -> Android
Multiple platforms in one channel are allowed: e.g. a Java jar:
  butler push ./jar leafy/my-game:win-linux-mac
Convention: lowercase words separated by dashes (windows-beta, osx-demo, soundtrack).
Tags are only the INITIAL guess — fix them anytime on the Edit game page (then Save).
3. Version, verify, and preview
bash
butler version                              # print version; confirms install + PATH
butler login                                # authorize this machine (opens browser)

# Set an explicit version string instead of itch's auto-incrementing integer:
butler push ./build leafy/my-game:windows --userversion 1.2.0
butler push ./build leafy/my-game:windows --userversion-file build_number.txt

butler status leafy/my-game                 # list channels + latest builds/versions
butler push-preview ./build leafy/my-game:windows   # NEW/MODIFIED/DELETED/SAME, uploads nothing
4. First-time, hidden, and filtered pushes
bash
# Hide a brand-new channel from the page until you're ready (NEW channels only):
butler push ./build leafy/my-game:windows-beta --hidden

# Exclude files from the upload without copying the folder (--ignore is repeatable):
butler push ./build leafy/my-game:windows --ignore '*.pdb' --ignore '*.dSYM'

# Preview exactly what would be sent, without sending it:
butler push ./build leafy/my-game:windows --dry-run
Show full SKILL.md (291 more words)Show less

Pitfalls

  • Pushing an installer. itch.io patches portable builds; an installer (.exe/.msi) defeats patching and the itch app's auto-update, and may need admin rights players don't have. Push the extracted, runnable folder instead.
  • Pre-compressed builds. Pushing a heavily compressed archive (or an archive of archives) makes patches huge — a tiny change rewrites the whole compressed blob. Push uncompressed files; itch.io compresses on its side.
  • A folder containing only one .zip. butler auto-unzips it and pushes the contents (to avoid a "zip in a zip"). Pass --no-auto-unzip only if you truly want the zip uploaded as one opaque file.
  • HTML5 game shows as a download. Two switches are required: set the page Kind to HTML and tag the channel playable in browser on the Edit game page after the first push — neither happens automatically from the channel name.
  • --hidden on an existing channel errors. It only applies when the push creates a new channel. Unhide later from Edit game.
  • Channel typos make duplicate slots. windows and win-final are different channels and create separate downloads. Decide your channel names up front and reuse them.
  • 30 GB cap. itch.io rejects builds whose total uncompressed size exceeds 30 GB.
  • Secrets in CI logs. A BUTLER_API_KEY printed in a public log is compromised — revoke it immediately on the API keys page. See the reference for safe CI usage.

References

  • For CI/CD (GitHub Actions/GitLab) with BUTLER_API_KEY, automated install via broth, the full flag list, and the update-check API, read references/butler-ci.md.
  • Primary docs: the butler manual — itch.io/docs/butler (installing, login, pushing).
  • steam-publish — the same game on Steam via SteamPipe (often shipped alongside itch.io).
  • game-jam — most jams are hosted on itch.io; this skill handles the upload step.
  • prototype-fast — share an early prototype on a Draft/restricted itch page for playtesting.

© gamedev-skills, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in skills/workflows/itch-publish of gamedev-skills/awesome-gamedev-agent-skills.

  • SKILL.md
  • references/butler-ci.md

Open the folder on GitHubat commit 0a70cfc

Compare with similar skills

Itch Publish next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Itch Publish compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Itch Publish this skillgamedev-skills/awesome-gamedev-agent-skills1.4k—~1.7kAutomated safety check: PassApache-2.0
Releasenotepadqq/notepadqq2.3k—~2kAutomated safety check: PassGPL-3.0
OdevioOdevio/Odevio-CLI423—~7.6kAutomated safety check: PassMIT
Electron Builderpedronauck/skills634—~2.7kAutomated safety check: PassNone
Ship Infiniten1m21n/Infinite271—~4.1kAutomated safety check: PassCustom licence
Standalonehashgraph-online/awesome-codex-plugins1.3k—~2.9kAutomated safety check: PassApache-2.0

Similar skills

  • Release

    notepadqq/notepadqq

    Release a new Notepadqq version. An agent skill from notepadqq/notepadqq.

    2.3k GitHub stars~2k tokensUpdated 5 days ago
    MobileAuto-check passed
  • Odevio

    Odevio/Odevio-CLI

    Take a Flutter project to an iPhone or the App Store with Odevio - build, sign and publish iOS apps from Windows, Linux or macOS with no Mac and no Xcode.

    423 GitHub stars~7.6k tokensUpdated 16 days ago
    MobileAuto-check passed
  • Electron Builder

    pedronauck/skills

    Comprehensive guide for electron-builder (v26.x) packaging, code signing, auto-updates, and release workflows.

    634 GitHub stars~2.7k tokensUpdated 26 days ago
    MobileAuto-check passed
  • Ship Infinite

    n1m21n/Infinite

    Full release: verify, commit, push, tag with curated notes, build the macOS DMG, pull CI Windows zips and Linux AppImage, publish to the Release and GitHub Pages site, flag Node Reference Manual…

    271 GitHub stars~4.1k tokensUpdated yesterday
    MobileAuto-check passed
  • Standalone

    hashgraph-online/awesome-codex-plugins

    Make a studio's game into an app of its own, a desktop app for macOS, Windows and Linux (the kind of build Steam accepts for upload) and a phone app for iOS and Android (the files the App Store and…

    1.3k GitHub stars~2.9k tokensUpdated yesterday
    MobileAuto-check passed
  • Engine Whats New

    flutter/flutter

    Generates the "what's new" release summary and diff file for changes in the Flutter engine (//engine/src/flutter) between two releases (e.g., 3.47 vs 3.44).

    180k GitHub stars~978 tokensUpdated today
    MobileAuto-check passed

More from gamedev-skills/awesome-gamedev-agent-skills

All 53 skills in this repo
  • Create Game Assets

    gamedev-skills/awesome-gamedev-agent-skills

    Plan, generate, source, normalize, and validate cohesive visual game assets.

    1.4k GitHub stars~2k tokensUpdated 2 days ago
    Auto-check passed
  • Roblox UI

    gamedev-skills/awesome-gamedev-agent-skills

    Build production Roblox interfaces with ScreenGui/PlayerGui lifecycle, responsive UDim2 layouts, safe insets, reusable editable Instances, cross-device input and selection, restrained motion…

    1.4k GitHub stars~2.9k tokensUpdated 2 days ago
    Auto-check passed
  • AI Behavior Trees Utility AI

    gamedev-skills/awesome-gamedev-agent-skills

    Build a production behavior-tree runtime (Blackboard, action/condition leaves, sequence/selector/parallel composites, decorators) and a Utility AI system (response curves — linear, exponential…

    1.4k GitHub stars~2k tokensUpdated 2 days ago
    Auto-check passed
  • Bevy Ecs

    gamedev-skills/awesome-gamedev-agent-skills

    Structure a Bevy app around its Entity Component System: build the App with plugins, define Component/Resource types, write systems with Query/Res/Commands, filter and order systems, and use the…

    1.4k GitHub stars~2.5k tokensUpdated 2 days ago
    Auto-check passed
  • Card Game

    gamedev-skills/awesome-gamedev-agent-skills

    Build a card game: card data, deck/hand/discard zones, draw/shuffle/reshuffle, a turn structure, costs, and effect resolution.

    1.4k GitHub stars~1.6k tokensUpdated 2 days ago
    Auto-check passed
  • Fps Shooter

    gamedev-skills/awesome-gamedev-agent-skills

    Build a first-person shooter: move+mouse-look controller, hitscan or projectile shooting, weapons, health, and enemy AI.

    1.4k GitHub stars~1.5k tokensUpdated 2 days ago
    Auto-check passed

Works with

Questions about Itch Publish

What does Itch Publish do?

Publish and update a game on itch.io: create the project page and upload builds with the butler CLI (butler push) to named channels. Itch Publish is an agent skill from gamedev-skills/awesome-gamedev-agent-skills.io: create the project page and upload builds with the butler CLI (butler push) to named channels.

When should I use Itch Publish?

Itch Publish fits situations like: itch.io publishing; channel naming for Windows/macOS/Linux/HTML5; versioning uploads; release build to itch.io.

How do I install Itch Publish in Claude Code?

Run `npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill itch-publish -a claude-code`. Or copy the skill folder (skills/workflows/itch-publish in gamedev-skills/awesome-gamedev-agent-skills) into .claude/skills/itch-publish in your project. Claude Code loads it when a task matches its description.

How do I install Itch Publish in Codex?

Run `npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill itch-publish -a codex`. Or copy the skill folder (skills/workflows/itch-publish in gamedev-skills/awesome-gamedev-agent-skills) into .agents/skills/itch-publish in your project. Codex loads it when a task matches its description.

Can I use Itch Publish in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill itch-publish -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/itch-publish, .gemini/skills/itch-publish, .github/skills/itch-publish and .opencode/skills/itch-publish in your project.

What does Itch Publish need to run?

Going by SKILL.md and its folder, Itch Publish needs credentials named BUTLER_API_KEY. Our summary lists: A credential in BUTLER_API_KEY.

Does Itch Publish access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Itch Publish safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Itch Publish use?

Itch Publish is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Itch Publish use?

About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.4k tokens, read only when the agent opens those files.

What are the alternatives to Itch Publish?

Skills that share tags, products or a category with Itch Publish: Release (notepadqq/notepadqq, 2.3k stars), Odevio (Odevio/Odevio-CLI, 423 stars), Electron Builder (pedronauck/skills, 634 stars) and Ship Infinite (n1m21n/Infinite, 271 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Itch Publish?

gamedev-skills (a GitHub organization) maintains it in gamedev-skills/awesome-gamedev-agent-skills, which has 1,389 GitHub stars. The repository holds 53 skills in this directory. The repository was last updated on October 9, 2026.

Source: gamedev-skills/awesome-gamedev-agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.