Skip to main content
Generated from 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 with achievementId, 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.
Also takes the global flags.

opengame games

List your games and their latest deploy.
Also takes the global flags. Connect this folder to an existing game.
Also takes the global flags.

opengame pull

Bring website metadata into this folder.
Also takes the global flags.

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.
Also takes the global flags.

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.
Also takes the global flags.

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.
Also takes the global flags.

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.

Environment

Global flags

Every command takes these.