For the complete documentation index, see llms.txt. This page is also available as Markdown.

Upload with the CLI Tool

Upload large builds and automate releases from the command line

The CLI uploads your build directly to Cloudflare R2, so it handles large files and can run inside your CI/CD pipeline.


Before You Start

Your build must be a .zip file with all game files in the root of the ZIP (not inside a single folder). See Prepare Your Build if you are not sure.


Step 1: Download the CLI

Grab the binary for your platform on the CLI Download page. There is no installer: it is a single executable you can run from anywhere.

Game Launcher Cloud CLI

The CLI works in two modes: interactive (run it with no arguments and follow the menu) or by commands (the examples below).


Step 2: Log In

Pick one of the three methods:

  • Browser (recommended): opens your browser and returns to the terminal when you are done

  • API Key: best for CI/CD, create yours at app.gamelauncher.cloud/user/api-keys

  • Email and password

Credentials are saved locally, so you only do this once per machine.


Step 3: Find Your App ID

The list includes your apps and the apps of teams you belong to.


Step 4: Upload the Build

Option
Meaning

-a, --app-id

Application ID from list-apps

-f, --file

Path to your ZIP file

-n, --notes

Build notes, players read them in the launcher

The CLI requests a presigned URL, uploads straight to Cloudflare R2 (multipart automatically over 100 MB) and then tells the backend to start processing.

Write down the Build ID it prints, you need it for the next step.


Step 5: Watch the Processing

The status refreshes until the build is done:

PendingEnqueuedDownloadingBuildUnzippingBuildCreatingPatchCompleted


Step 6: Set the Build as Active

A processed build is not live yet. Activation happens in the dashboard:

1

Open the Environments tab

Go to your app and click "Change Active Build".

2

Confirm

Select the build you just uploaded and click Set Build.

Change active build dialog

Automate It

The same flow runs unattended on every release tag. Ready to copy examples for GitHub Actions, GitLab CI and plain bash are in the CLI reference:


Troubleshooting

Problem
Solution

"Not authenticated"

Token expired. Run login again

"App not found"

Wrong app ID. Check it with list-apps

"Upload failed"

Network issue. Check the connection and retry

Build stuck in "Processing"

Large builds take longer. Use status --watch

Build ended in "Failed"

Run retry <build-id>, no re-upload needed

"Email not confirmed"

Verify your email in the dashboard first


Next Steps

Last updated

Was this helpful?