opengame help --json (CLI 0.3.3). Run opengame <command> --help for the same text in a terminal.
Internal build. Install the tarball the team supplies; the package is not on a public registry.
Choose a task
Start with the quickstart for a private preview, or For agents for approval and structured output.Commands
opengame init
Create opengame.json for an existing game.
Also takes the global flags.
opengame check
Find local build and asset problems before uploading.
Also takes the global flags.
opengame dev
Serve a local export with game-runtime headers. Under a contract that adds the SDK, pages also get the host runtime and SDK, as they do when hosted. If the contract supports opting out, sdk.inject: false leaves out the SDK.
Also takes the global flags.
opengame login
Sign in through your browser.
Also takes the global flags.
opengame deploy
Build, check and upload a release, then return with the address of its deployment page, where the checks run and the private preview plays once they pass. Add--wait to stay until they finish. Once the preview is ready, the achievements opengame.json declares are saved by deploy --wait or by the next opengame status in this folder. Removing an achievement from opengame.json does not switch it off. To retire one, send PUT /api/v1/games/{id}/achievements with achievementId, title, description and active: false. Unlocks are never deleted.
Also takes the global flags.
opengame status
Show the most recent deploy for this folder, with its findings. Finishes saving its declared achievements if the deploy could not. Removing an achievement from opengame.json does not switch it off. To retire one, send PUT /api/v1/games/{id}/achievements withachievementId, title, description and active: false. Unlocks are never deleted.
Also takes the global flags.
opengame deployments
List the linked game’s deploys, newest first: status, when, size, who started each one, why any stopped, and each one’s page or preview.
Also takes the global flags.
opengame open
Open the linked game’s private page in your browser.
Also takes the global flags.
opengame submit
Send one release to review, and enter it in a jam.
Also takes the global flags.
opengame jams
List open jams, or show one jam’s tracks and flags.opengame games
List your games and their latest deploy.
Also takes the global flags.
opengame link
Connect this folder to an existing game.
Also takes the global flags.
opengame pull
Bring website metadata into this folder.opengame stats
Read analytics for a game you own, or this folder’s linked game, for one complete ISO week, Monday to Sunday in UTC. Average playtime is total playtime divided by distinct players in the week.
Also takes the global flags.
opengame whoami
Show the account and permissions for this token.opengame token
Create, list or revoke tokens in your browser.
Also takes the global flags.
opengame logout
Revoke this device’s token and remove it locally.
Also takes the global flags.
opengame limits
Show bundle limits and your remaining account allowance.opengame vendor
Create a separate export with dependencies downloaded at their exact versions, rewritten and hashed.
Also takes the global flags.
opengame skills
Install the OpenGame skills for your coding agent.
Also takes the global flags.
opengame upgrade
Install the current CLI, or print the line that does.
Also takes the global flags.
opengame version
Print the CLI version.Exit codes
Stable across versions. Branch on the code, then read the message.JSON events
With--json, the CLI prints the final JSON object with collected findings and notices. For progress events, use --jsonl: one event per line, ending with result or error. A terminal gets plain text by default; a pipe or an agent gets JSON. JSON modes require explicit choices instead of command prompts.
When stdout is not a terminal, or
CI or CLAUDECODE, CODEX_SANDBOX, CODEX_THREAD_ID, CURSOR_AGENT, OPENCODE or AI_AGENT is set to anything but 0, false or no, output defaults to one formatted JSON result or error. In a terminal, —human ignores those variables and prints text. Use --jsonl to stream events. With either JSON mode there are no command prompts or browser opens, and login prints the approval URL and code instead of waiting. Run opengame login --wait to wait for the browser anyway.
See The repair loop for the finding shape and how to act on each field.