Continual MI
MDL
Endless VN Engine
GamesMGPT APIEarningsMonitoringDocs
Learn
  • Introduction
  • Quick Start
  • MDL CLI
  • How It Works
Build
  • Workspace
  • Agentic Workflow
  • Instructions
  • Schema
  • Assets
Ship
  • Publishing
  • Monitoring
  • Earnings & Payouts
Reference
  • Package Model
  • API Keys & Auth
  • CLI Reference
  • Platform Reference
Docs/CLI Reference

CLI Reference

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 summary

CommandHosted APIAuth requiredMutates hosted state
mdl auth login/list/logoutAccount summary verification on loginLogin onlyStored local config only
mdl whoamiYesYesNo
mdl registerYesYesYes
mdl games list/infoYesYesNo
mdl containers list/diffYesYesNo
mdl diffYesYesNo
mdl pullYesYesWrites local files only
mdl inventory list/catYesYesNo
mdl pushYesYesYes

mdl auth

Store, 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 whoami

Resolve the active remote auth context and inspect the account and plan behind it.

mdl whoami [--base-url <url>] [--api-key <key>]
  • Credential precedence is flags, then environment variables, then stored CLI config, with https://mdl.continualmi.com as the final host fallback.
  • The command reports the host, resolved account identity, plan, creator access, and API-key prefix.

mdl register

Create 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.
  • The command prints the created game id and the next recommended mdl push command.

mdl games

Inspect 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 containers

Inspect 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 diff

Compare 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.
  • The command calls POST /sync/diff.
  • --game overrides the derived slug.
  • --live compares against the live container instead of the dev container.

mdl pull

Retrieve 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]
  • Without --out, the CLI prefers an autodiscovered local package and maps hosted runtime paths back to package source paths.
  • With --out, the CLI writes hosted logical paths into that directory.
  • The command prints files that will be added, overwritten, and left untouched as local-only files.
  • Interactive pulls ask for confirmation before overwriting. Non-interactive pulls require --force when any target file would be overwritten.

mdl inventory

Inspect 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.
  • The default target is the hosted dev container. Pass --live to inspect the live container explicitly.

mdl push

Upload 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]
  • Remote push calls POST /sync/diff, POST /sync/files, and POST /sync/finalize.
  • The default creator path updates the hosted dev container only.
  • mdl push resolves auth from flags, environment variables, or stored CLI config.
  • The command prints staged progress for local inventory, remote diff, upload, finalize, and universe refresh work.
  • --include-live is not part of the normal creator iteration path and should be treated as a controlled release-adjacent flag.
  • If 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.
  • Universe refresh output reports scanned, updated, cache-invalidated, and failed universe counts, and push exits non-zero if any expected rebuild fails.

Exit behavior

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.

Operational defaults

  • Push targets the hosted dev container by default.
  • Hosted games, container inspection, and hosted inventory inspection all target the hosted dev state by default unless a command says otherwise.
  • Live release remains separate from normal push.
  • Remote commands resolve auth as flags, then environment variables, then stored CLI config, with https://mdl.continualmi.com as the final host fallback.
  • The CLI writes the local inventory after successful push for developer inspection.

Next

Build
MDL CLI
Return to the higher-level creator workflow and command model.
Reference
Package model
See what the commands validate and hash.
Reference
API keys & auth
Understand the bearer-key model used by remote commands.