The public MDL CLI contract centers on diff, push, and pull. The commands share one deterministic package model and one bearer-key auth model.
| Command | Hosted API | Auth required | Mutates hosted state |
|---|---|---|---|
| mdl auth login/list/logout | Account summary verification on login | Login only | Stored local config only |
| mdl whoami | Yes | Yes | No |
| mdl register | Yes | Yes | Yes |
| mdl games list/info | Yes | Yes | No |
| mdl containers list/diff | Yes | Yes | No |
| mdl diff | Yes | Yes | No |
| mdl pull | Yes | Yes | Writes local files only |
| mdl inventory list/cat | Yes | Yes | No |
| mdl push | Yes | Yes | Yes |
mdl authStore, inspect, and remove host-scoped CLI credentials for repeated remote usage.
mdl auth login [--host <url>] [--api-key <key>]
mdl auth list
mdl auth logout [--host <url>] [--all]login defaults to https://mdl.continualmi.com and prompts only for the API key unless you pass an explicit host override.list shows saved hosts and the active host.logout removes one host or clears all saved hosts with --all.mdl whoamiResolve the active remote auth context and inspect the account and plan behind it.
mdl whoami [--base-url <url>] [--api-key <key>]https://mdl.continualmi.com as the final host fallback.mdl registerCreate a hosted game record through the platform API before the first push.
mdl register [--package <path>] [--slug <slug>] [--name <display-name>] [--base-url <url> --api-key <key>]--slug overrides the derived game slug.--name overrides the display name derived from manifests/game-definition.json.mdl push command.mdl gamesInspect the hosted games visible to the authenticated creator without opening the platform UI.
mdl games list [--base-url <url>] [--api-key <key>]
mdl games info <slug> [--base-url <url>] [--api-key <key>]list shows creator-owned hosted games, their visibility settings, and dev/live container presence.info shows one hosted game's metadata, timestamps, owner, and current dev/live container hashes when known.mdl containersInspect hosted dev/live containers directly, without relying on a local package checkout.
mdl containers list <slug> [--base-url <url>] [--api-key <key>]
mdl containers diff <slug> [--base-url <url>] [--api-key <key>]list shows the current dev/live container ids, hashes, file counts, and indexed timestamps.diff compares dev and live hosted containers directly and exits non-zero when they differ.mdl diffCompare the local package inventory against a hosted dev or live container through the platform API.
mdl diff [--package <path>] [--game <slug>] [--base-url <url>] [--api-key <key>] [--live]mdl diff resolves auth from flags, environment variables, or stored CLI config.POST /sync/diff.--game overrides the derived slug.--live compares against the live container instead of the dev container.mdl pullRetrieve a hosted dev or live container into a local package or output directory.
mdl pull <slug> [--package <path>] [--out <path>] [--force] [--base-url <url> --api-key <key>] [--live]--out, the CLI prefers an autodiscovered local package and maps hosted runtime paths back to package source paths.--out, the CLI writes hosted logical paths into that directory.--force when any target file would be overwritten.mdl inventoryInspect authoritative hosted container contents without relying on local package state.
mdl inventory list <slug> [--base-url <url> --api-key <key>] [--live]
mdl inventory cat <slug> <path> [--base-url <url> --api-key <key>] [--live]list prints hosted logical paths for the selected dev or live container.cat prints text-based hosted files and refuses binary output to avoid unreadable terminal dumps.--live to inspect the live container explicitly.mdl pushUpload changed files, finalize the hosted inventory, and refresh saved-universe prompt snapshots when prompt-affecting package inputs changed.
mdl push [--package <path>] [--game <slug>] [--base-url <url>] [--api-key <key>] [--include-live] [--refresh-existing-universes] [--skip-existing-universe-refresh]POST /sync/diff, POST /sync/files, and POST /sync/finalize.mdl push resolves auth from flags, environment variables, or stored CLI config.--include-live is not part of the normal creator iteration path and should be treated as a controlled release-adjacent flag.runtime/system_prompt.txt, runtime/structured-output-schema.json, runtime/additional_instructions.txt, or manifests/runtime-ui.json changed, the push automatically rebuilds saved-universe generation contracts for that game.--refresh-existing-universes forces that rebuild even when the prompt-affecting package inputs did not change.--skip-existing-universe-refresh opts out of the automatic rebuild for a given push.mdl diff exits non-zero when the local and remote states are not in sync. That makes it useful in CI and pre-push verification flows.
https://mdl.continualmi.com as the final host fallback.