关于 itch-publish
面向游戏开发者的 itch.io 发布技能,说明如何使用 butler 命令行上传和更新构建版本,并管理渠道与版本信息。
主要功能
- 01使用 butler push 上传构建
- 02按渠道组织不同平台版本
- 03设置或读取版本标识
- 04预览上传内容并查看状态
- 05排除指定文件或隐藏新渠道
适用场景
- 01发布游戏 Jam、试玩版或正式版
- 02向 itch.io 更新已有构建
- 03发布 HTML 游戏并设置浏览器游玩选项
- 04在上传前检查变更内容
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ gamedev-skills/ awesome-gamedev-agent-skills --skill itch-publish安装后在 Claude Code 中输入/itch-publish确认已加载。
附带文件references/butler-ci.md
详细介绍
itch.io 发布(butler)
将构建版本发布到 itch.io 页面并保持更新。页面在浏览器中创建;所有上传都通过 butler(itch.io 的命令行工具)完成,你只需记住一个命令:butler push。butler 会与上一个构建版本进行比较,只上传发生变化的内容。有关 CI/CD 和标志的详细信息,请参阅 references/butler-ci.md。
适用场景
- 创建或更新 itch.io 项目页面、安装或登录 butler、使用
butler push上传构建版本、选择频道名称、对上传版本进行版本管理,或向 itch.io 发布游戏果酱、演示版或正式版构建时使用。 - 触发词:
butler push、butler login、频道、.itch.toml、“在 itch 上发布”、“上传到 itch”。
不适用场景: 在 Steam 上发布(使用 steam-publish);规划游戏果酱的范围/计划(使用 game-jam——此技能仅涵盖上传操作);构建游戏本身(使用引擎技能)。
核心工作流
- 创建项目页面,网址为
itch.io/game/new。设置 Kind of project:原生构建版本选择 Downloadable,可在浏览器中游玩的游戏选择 HTML(网页构建版本必须选择此项——参见“注意事项”)。设置定价和可见性(准备就绪前保持为草稿)。 - 安装 butler 并登录。 从
itchio.itch.io/butler下载,将其添加到PATH,然后运行butler login(会打开浏览器进行授权)。使用butler version验证。CI 中使用BUTLER_API_KEY代替——请参阅参考文档。 - 准备便携式构建文件夹——只包含玩家要运行的确切文件,不要添加其他内容。推送一个文件夹(或该文件夹的单个
.zip),不要推送安装程序,也不要推送由多个压缩包组成的预压缩归档文件(这会影响补丁效果;参见“注意事项”)。 - 推送到频道:
butler push <dir> <user>/<game>:<channel>。频道名称决定平台标签(参见“模式”)。首次推送会上传全部内容;之后推送到同一频道时,只会上传差异部分。 - 如果频道未自动设置正确标签,请在 Edit game 页面上设置平台/HTML 标签,然后点击 Save。对于浏览器游戏,还需将页面切换为 HTML,并将频道标记为 playable in browser。
- 为构建版本设置版本号(可选,但建议这样做):使用
--userversion 1.2.0或--userversion-file build.txt,以便控制玩家和更新 API 看到的版本字符串。 - 之后再次推送到同一频道即可更新。使用
butler status <user>/<game>查看频道和构建版本,并使用butler push-preview在发送前预览推送会产生的变更。
模式
1. 只需掌握的一个命令——butler push
# 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. 频道命名决定平台标签(短横线命名法,全小写)
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. 设置版本、验证并预览
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. 首次推送、隐藏推送和筛选推送
# 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
常见问题
- 推送安装程序。 itch.io 会为便携式构建版本打补丁;安装程序(
.exe/.msi)会导致补丁功能和 itch 应用的自动更新失效,而且可能需要玩家没有的管理员权限。请改为推送解压后可运行的文件夹。 - 预先压缩的构建版本。 推送经过高度压缩的归档文件(或由多个归档文件组成的归档)会导致补丁体积巨大——哪怕只改动一点内容,也会重写整个压缩数据块。请推送未压缩的文件;itch.io 会在其服务器端进行压缩。
- 只包含一个
.zip的文件夹。 butler 会自动解压该文件并推送其中的内容(以避免出现「zip 套 zip」)。只有在确实希望将 zip 作为一个不透明文件上传时,才传入--no-auto-unzip。 - HTML5 游戏显示为下载内容。 需要设置两个选项:将页面的 Kind 设为 HTML,并在首次推送后于 Edit game 页面为频道添加 playable in browser 标签——这两项都不会根据频道名称自动设置。
- 对已有频道使用
--hidden会报错。 此选项仅在推送时创建新频道才适用。之后可在 Edit game 中取消隐藏。 - 频道名称拼写错误会创建重复条目。
windows和win-final是不同的频道,会创建独立的下载项。请提前确定频道名称并重复使用。 - 30 GB 上限。 itch.io 会拒绝总未压缩大小超过 30 GB 的构建版本。
- CI 日志中的机密信息。 如果
BUTLER_API_KEY出现在公开日志中,该密钥就已泄露——请立即在 API keys 页面撤销。关于安全使用 CI 的说明,请参阅参考文档。
参考资料
- 关于使用
BUTLER_API_KEY的 CI/CD(GitHub Actions/GitLab)、通过broth自动安装、完整的标志列表以及更新检查 API,请阅读references/butler-ci.md。 - 主要文档:butler 手册 —
itch.io/docs/butler(安装、登录、推送)。
相关技能
steam-publish— 通过 SteamPipe 在 Steam 上发布同一款游戏(通常也会同时发布到 itch.io)。game-jam— 大多数游戏创作马拉松都托管在 itch.io 上;此技能负责上传步骤。prototype-fast— 在 Draft/受限的 itch 页面分享早期原型,以便进行试玩测试。
评论
支持 Markdown