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.
Use the CLI when your build is over the 5 GB dashboard limit, when the upload speed matters, or when you want releases to happen automatically.
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.

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
-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:
Pending → Enqueued → DownloadingBuild → UnzippingBuild → CreatingPatch → Completed
If the build ends in Failed, you do not have to upload the file again. Retry it with the file already in storage:
Step 6: Set the Build as Active
A processed build is not live yet. Activation happens in the dashboard:
Open the Environments tab
Go to your app and click "Change Active Build".

Confirm
Select the build you just uploaded and click Set Build.

Players update automatically: once a build is active, players receive it the next time they open the launcher.
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
"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
Need help? Join Discord or email support@gamelauncher.cloud
Next Steps
Last updated
Was this helpful?