Insert folder Press build
Ship your
web game
Gameshipper turns a web game folder into Windows, Mac and Linux builds you can upload to Steam, plus Xcode and Android Studio projects for the App Store and Google Play.
FREE PLAY · open source, MITNode.js 22.12+CLI + MCP server
- Windows
- Mac
- Linux
- Steam
- iOS
- Android
Stage select
Five commands from folder to store
Each one does a single job, and every error comes with a fix. Run them by hand or let an agent run the loop.
STAGE 1
Init
Detects your game, its icon and its art, and writes
gameshipper.json.npx gameshipper initSTAGE 2
Play
Runs it in the same shell the builds use. A smoke run reports errors, missing files and crashes.
npx gameshipper play --smokeSTAGE 3
Build
Windows, Mac and Linux apps, plus all eight Steam store images.
npx gameshipper buildSTAGE 4
Check
Launches the build offline at Steam Deck size and reports 18 checks.
npx gameshipper checkSTAGE 5
Publish
Uploads the builds to Steam, itch.io and GitHub Releases.
npx gameshipper publish
No build step required
A folder with an index.html is enough
- Works with what you have. three.js, Phaser, PixiJS, Babylon.js or plain canvas. Your game doesn't need npm.
- Runs offline. Files your game loads from CDNs are downloaded into the build and pinned in
gameshipper.lock, so builds are reproducible. - Has a bundler? If
package.jsonhas a build script (Vite, Parcel, webpack, esbuild, Rollup), Gameshipper runs it and packagesdist/.
out/ windows/ Spinning Cube.exe mac/ Spinning Cube.app signed on a Mac linux/ spinning-cube ios/ App/App.xcodeproj Xcode project android/ Android Studio project store/ 8 Steam images, screenshots/
Player 2 has entered the game
Built so an AI agent can run it end to end
- One JSON object per command. Add
--jsonand stdout is exactly{ ok, data, errors, warnings, logPath }. - Every error says how to fix it. Stable codes, plain-English messages, and a
fixon every error. - Nothing prompts an agent. With
--jsonor--yes, missing input comes back asINPUT_REQUIRED, naming the flag to pass. - MCP server included.
claude mcp add gameshipper -- npx -y gameshipper mcp
- gameshipper_status
- gameshipper_init
- gameshipper_play
- gameshipper_build
- gameshipper_check
- gameshipper_publish
- gameshipper_ci_init
{ "ok": false, "errors": [ { "code": "GAME_FILE_MISSING", "message": "The game requested Style.css, which isn't in the build.", "fix": "The file is named style.css: use exactly that letter case in your code." }, { "code": "GAME_FILE_MISSING", "message": "The game requested missing.png, which isn't in the build.", "fix": "Check the path's spelling and letter case, and that the file is inside your game folder." } ], "warnings": [ { "code": "ICON_MISSING", "message": "No icon set, so builds use the default Electron icon." } ], "logPath": ".gameshipper/logs/play-2026-10-01T02-33-30-008Z.log" }
Power-ups
Steam features built in
Your game gets window.steam and window.gameshipper.saves in every desktop build. Every Steam call resolves to a harmless value when Steam isn't running, so the game never needs to guard each call.
Achievements, stats, leaderboards
Plus rich presence and the Shift+Tab overlay, through
window.steamand your own copy of the Steamworks SDK.Steam Deck
Builds start fullscreen on Deck, the on-screen keyboard opens for text fields, and
checktests the 1280x800 layout.Saves
One JSON file per slot, a format Steam Auto-Cloud can sync. The same API works on iOS and Android.
Eight store images
Every Steam capsule, header and hero at its exact size, cut from one key art and one logo.
Signed Mac builds
Built on a Mac: universal apps, signed and notarized with your Apple Developer ID when your credentials are set.
CI in one command
ci initwrites a GitHub Actions workflow that builds and runs the game on each OS.
Co-op mode
Cross-build from the OS you have
| You're on | Windows | Linux | Mac | iOS + Android projects |
|---|---|---|---|---|
| macOS | yes | yes | yes universal with Apple's command-line tools, signed | yes |
| Linux | yes | yes | Apple Silicon only, unsigned | yes archiving for iOS needs a Mac |
| Windows | yes | yes | no | yes archiving for iOS needs a Mac |