CLI Commands
Upload large game builds via command line
Quick Start
Download here: CLI Releases
Upload larger builds directly to Cloudflare R2. Fast, secure, and perfect for CI/CD.

1. Login
Authenticate and save credentials locally.
Login with Browser (Recommended)
Create your API Key in the Dashboard: https://app.gamelauncher.cloud/user/api-keys
Login with email/password
2. List Apps
See all apps you can upload to (owned + team apps).
3. Upload Build
Upload your game build (automatic multipart).
4. Check Status
Monitor build processing in real-time.
5. Retry Failed Build (if needed)
Retry a failed or cancelled build without re-uploading.
Commands
login
loginAuthenticate with browser, api key, or email/password. Saves JWT token locally for future commands.
list-apps
list-appsList all apps you have access to (yours + team apps).
can-upload
can-uploadCheck if you can upload a file (permissions + quota).
upload
uploadUpload a build file. Calculates MD5 hash, uploads directly to R2, then notifies backend.
Options:
-a, --app-id- Application ID (get fromlist-apps)-f, --file- ZIP file path-n, --notes- Build notes/changelog--no-status- Skip status display after upload
How it works:
Requests presigned URL from backend
Uploads directly to Cloudflare R2 (multipart if > 100 MB)
Notifies backend to start processing
status
statusCheck build processing status. Use --watch to poll until complete.
Build Statuses:
PendingโEnqueuedโDownloadingBuildโUnzippingBuildโCreatingPatchโCompletedFailed- Check errorMessage for details
Duration Fields:
Upload Duration - Time to upload file to R2 (shown immediately)
Total Duration - Complete processing time (only shown when Completed)
retry
retryRetry a failed or cancelled build using the already uploaded file. This saves time and bandwidth by reusing the original upload.
Options:
<build-id>- The build ID to retry (required)--watch- Monitor the retried build continuously (optional, default: true)
Requirements:
Build must have
FailedorCancelledstatusOriginal uploaded file must still exist in storage
Build must be from your apps or team apps
Example:
When to use:
Build failed due to temporary server issues
Build was cancelled accidentally
Processing error occurred during patch creation
Ignore Paths
Exclude specific files and folders from patch generation. This feature helps reduce patch sizes and prevents temporary or user-specific files from being included in updates.
Configuration
Ignore paths are configured per application in the dashboard:
App Settings โ Build & Patch โ Ignored Paths
Each app can have its own set of ignored paths that apply to all future builds.
Default Ignored Paths
The system automatically adds:
*output_log.txt- Launcher log filesSelfUpdater\- Auto-updater files (for Apps, not Launchers)
Custom Ignored Paths
Add paths in the dashboard (one per line):
Path Syntax
Directories: End with
\(Windows) or/(Linux/Mac)Wildcards: Use
*to match multiple files (e.g.,*.log)Relative paths: All paths are relative to build root
Case-sensitive: Paths are case-sensitive on Linux/Mac
Examples:
logs\
Ignore entire logs folder
*.tmp
Ignore all .tmp files
cache\*.dat
Ignore .dat files in cache folder
debug_output.txt
Ignore specific file
Temp\
Ignore Temp folder
*_backup.json
Ignore all backup JSON files
How It Works
Upload: You upload a build ZIP containing all files
Extract: Backend extracts the build to temporary storage
Patch Creation: PatchManager compares with previous build and creates patches
Files matching ignored paths are excluded from patches
Ignored files are not tracked for updates
Distribution: Clients only download changed files (excluding ignored paths)
Benefits
Smaller patches: Exclude logs, cache, and temporary files
Faster downloads: Less data to transfer to end-users
Cleaner updates: Avoid overwriting user-specific files
Flexibility: Configure once, applies to all future builds
Limits
Maximum 100 paths per application
Maximum 500 characters per path
No duplicate paths allowed
Validation occurs when saving in dashboard
Best Practices
Ignore log files and crash dumps
Ignore user-generated content folders
Ignore platform-specific cache files
Test with a small build first to verify paths work correctly
Complete Example
Full workflow from login to upload completion.
CI/CD Examples
Automate build uploads on every release tag.
GitHub Actions
Triggers on version tags (e.g., v1.0.0).
Required Secrets: (Settings โ Secrets)
GLC_API_URL:https://api.gamelauncher.cloudGLC_EMAIL: Your emailGLC_PASSWORD: Your passwordGLC_APP_ID: Application ID (fromlist-apps)
GitLab CI
Triggers on version tags.
Variables: (Settings โ CI/CD โ Variables)
GLC_API_URL,GLC_EMAIL,GLC_PASSWORD,GLC_APP_ID
Bash Script
Simple script for custom workflows.
Troubleshooting
Common issues and quick fixes.
"Not authenticated"
Token expired. Run login again
"App not found"
Wrong app ID. Check with list-apps
"Upload failed"
Network issue. Check connection and retry
Build stuck in "Processing"
Large builds take 5-10 min. Use status --watch
"Email not confirmed"
Verify email in dashboard first
Configuration
Credentials are stored locally (JWT token + email).
Config file location:
Windows:
%APPDATA%\GameLauncherCloud\config.jsonmacOS:
~/Library/Application Support/GameLauncherCloud/config.jsonLinux:
~/.config/gamelaunchercloud/config.json
To reset: Delete config file and run login again.
Next Steps
CLI Releases - Download CLI binaries
Upload Builds - Upload builds via dashboard
Environments - Configure staging/production
Need Help? Join Discord or email [email protected]
Last updated
Was this helpful?