Skip to content

Deploy to Steam & itch.io

GemShell Pro lets you deploy your built game to Steam and itch.io with one click. Both platforms can be configured independently and deployed together.

PRO FEATURE

Deploy requires GemShell Pro.

Overview

  1. Build your game first (Step 4)
  2. Go to Deploy (Step 5)
  3. Configure Steam and/or itch.io (one-time setup)
  4. Click Deploy Now to upload

Settings are saved per-game in gemshell.config.json.


Steam Deploy

Requirements

  • Steamworks Partner account
  • App ID and Depot IDs from Steamworks Partner
  • SteamCMD (downloaded automatically by GemShell)

Setup

  1. Enable the Steam deploy card
  2. Authenticate with your Steam build account (username + password)
  3. Enter your Steam App ID (from Game Settings when Steam is enabled)
  4. Map Depots to architectures — one unique depot per platform:
    • windows-x64 → Depot ID
    • mac-arm64 / mac-x64 → Depot IDs
    • linux-x64 / linux-arm64 → Depot IDs
  5. Optionally set a Release Branch (beta, preview, or leave empty)

One depot per platform — don't share IDs

Each platform build needs its own depot ID. Don't point Windows, macOS and Linux at a single shared depot: Steam would bundle all three into it, so every player downloads all three builds, and you can't target the right executable per platform in the app's install options. GemShell rejects the deploy if two platforms are given the same depot ID.

A typical layout (IDs are examples — use yours from Steamworks):

PlatformDepot IDInstalled launch option
Windows480 1 (e.g. 4800001)MyGame.exe
macOS4800002MyGame
Linux4800003MyGame

In Steamworks → Installation → Launch Options, set the executable to AppName.exe for the Windows depot and just AppName (the wrapper script, no extension) for macOS and Linux.

Channel Names

ArchitectureDefault Channel
windows-x64windows
windows-arm64windows-arm64
windows-ia32windows-32
mac-arm64mac
mac-x64mac-intel
linux-x64linux
linux-arm64linux-arm64

Deploy

Click Deploy Now. GemShell builds the VDF config and uploads via SteamCMD. The build is set live on your chosen branch if configured.


itch.io Deploy

Requirements

Setup

  1. Install Butler (e.g. brew install butler on macOS)
  2. Enable the itch.io deploy card
  3. Enter your API key and save
  4. Enter your Project Slug (e.g. username/gamename or full URL)
  5. Configure Channels per architecture (defaults: windows, mac, mac-intel, linux)

Channel Names

ArchitectureDefault Channel
windows-x64windows
windows-arm64windows-arm64
windows-ia32windows-32
mac-arm64mac
mac-x64mac-intel
linux-x64linux
linux-arm64linux-arm64

Deploy

Click Deploy Now. Butler uploads each build to its channel. The last deploy (time, version, channels) is shown in the card header.


Config File

Deploy settings are stored in gemshell.config.json:

json
{
  "steam_deploy": {
    "enabled": true,
    "depots": {
      "windows-x64": "1234568",
      "mac-arm64": "1234569",
      "linux-x64": "1234570"
    },
    "branch": "beta",
    "last_deploy": {
      "timestamp": "2025-02-20T12:00:00.000Z",
      "buildId": "..."
    }
  },
  "itch_deploy": {
    "enabled": true,
    "project_slug": "username/gamename",
    "channels": {
      "windows-x64": "windows",
      "mac-arm64": "mac"
    },
    "last_deploy": {
      "timestamp": "2025-02-20T12:00:00.000Z",
      "version": "1.0.0",
      "channels": "mac, windows"
    }
  }
}

API Key

The itch.io API key is stored in App Data (not in the project) for security.