
AuraJS currently exposes three related public entrypoints:
auramaxx ... for global install, first-run bootstrap, project creation,
project-local authoring commands, and auramaxx play <game> ... from any directorynpm run ... for the generated project-local wrapper scripts inside a scaffolded gamenpx <game> ... for scaffolded or published game wrappersBootstrap loop:
npm install -g auramaxx
auramaxx create my-game
cd my-game
npm run dev
# or run the interactive bootstrap once
npx auramaxx
Local developer loop:
cd my-game
npm run dev
auramaxx make scene Scene1
auramaxx vendor helpers
auramaxx explain
auramaxx check
npm run state -- export --compact
npm run action -- schema --compact
Published game loop:
npx <game> play
npx <game> session start
npx <game> state export --compact
auramaxx play <game> play
auramaxx play <game> session start
auramaxx play <game> state export --compact
Important truth:
auramaxx, not auraauramaxx resolves the current AuraJS project for
authoring and publish commandsnpm run dev|play|session|state|inspect|action scripts remain the
shortest local wrapper pathsession controls an AuraMaxx-launched project process; it is not a generic
attach API for arbitrary foreign processesUse auramaxx for the public AuraJS surface both outside and inside a project.
Current important commands:
auramaxx create <name> [--template ...] [--skip-install]auramaxx devauramaxx build [--target <windows|mac|linux|all|web|android|ios|mobile>]auramaxx playauramaxx run [--session]auramaxx make ...auramaxx vendor helpers [--force]auramaxx explainauramaxx checkauramaxx publish [--dry-run]auramaxx external-assets generate --public-base-url <url>auramaxx cleanauramaxx test [file] [options]auramaxx conformance [--mode shim|native|both] [--json]auramaxx state <export|diff|patch|apply|step|slot|checkpoint> ...auramaxx inspect export ...auramaxx action <schema|run> ...auramaxx session <start|list|attach|detach|close|state|inspect|action> ...auramaxx play <game> ...auramaxx publishnpx auramaxxImportant notes:
auramaxx create is the public create path used in onboarding and docs.npx auramaxx runs the same first-run flow without requiring a global
install.auramaxx delegates to the AuraJS project you are standing inauramaxx play is the fastest local path for a visible native game plus a live developer sessionauramaxx run is the lower-level launcher; add --session when you want explicit live session registrationauramaxx session start defaults to native; use --headless when you explicitly want a detached non-windowed runtimeauramaxx explain and auramaxx check describe and validate the authored registry, scenes, screens, prefabs, data files, and runtime bootstrap files for the current projectCurrent output lanes are intentionally split by platform truth:
--target web emits browser artifacts under build/web for the current browser-backed subset.--target android|ios|mobile produces host artifacts, stages mobile package roots, and runs Gradle/Xcode export when prerequisites are present; otherwise manifests stay reason-coded and staged.--asset-mode embed in v1.Scaffolded and published AuraJS games ship a small wrapper CLI.
Default public commands:
playforkpublishsessionThe wrapper also forwards:
stateinspectactionThe wrapper keeps default help intentionally small. Use --help --all when you
want the full forwarded surface.
Examples:
npx mygame play
npx mygame fork ./mygame-local
npx mygame session start
npx mygame state export --compact
npx mygame action schema --compact
npx <game> fork [destination] copies the installed package surface into a new
local directory for editing. When you omit destination, the wrapper suggests a
default ./<game>-fork target (or a sibling path when you launch from inside
an existing project root). The copy intentionally skips transient runtime
artifacts such as .logs/, .aura/, build/, .git/, and node_modules/.
Run npm install inside the fork after the copy completes.
AuraMaxx can launch the published game wrapper directly.
Examples:
auramaxx play mygame
auramaxx play mygame fork ./mygame-local
auramaxx play mygame session start
auramaxx play mygame state export --compact
auramaxx play mygame action schema --compact
auramaxx play <game> now preserves forwarded game verbs instead of treating
everything after the package name as an opaque play-only tail.
Published game launches through auramaxx play <game> preserve the local shell
environment before handing off to the installed game wrapper. .env remains a
project-root convenience for project-owned runs; for published wrapper runs,
export the vars you want in the local shell before launch.
When a project-root .env exists, auramaxx publish generates a blank
.env.example from its keys and excludes the real .env from the npm package
surface.
auramaxx publish now emits a signed package integrity manifest into the published
package surface. AuraMaxx verifies that manifest before launch, including exact
file hashes plus published metadata such as npm name/version/description,
authored identity/window metadata, and publish-time icon/build identity records.
Packages published outside auramaxx publish will not carry that manifest and are
not treated as safe by auramaxx play <game>. AuraMaxx also pins the signer
fingerprint on first successful launch and refuses later signer changes for the
same published package name.
For the trust model and remaining limits, see docs/published-game-security.md.
auramaxx publish also measures the built asset payload before it asks npm to
carry the package. The default npm-first threshold is 50 MiB, and operators can
override it with AURA_PUBLISH_ASSET_THRESHOLD_BYTES when they need a
different release policy.
When the payload is too large for the normal npm-first lane, the current public answer is self-hosting on infrastructure you control:
auramaxx external-assets generate --public-base-url <url> to write
aura.external-assets.json and stage manifests plus upload recordsnpx <game> play or join hydrate and cache the hosted assets
before launchThere are two honest developer-session shapes today:
Native-default session:
auramaxx playauramaxx run --sessionauramaxx session startThese flows launch one Aura-owned native process and register it as the current developer session for the project. Other terminals can then use:
auramaxx session state exportauramaxx session inspect exportauramaxx session action schemaauramaxx session action runauramaxx session closeExplicit headless session:
auramaxx session start --headless --name ci-loop --compact
Use this when a visible native window is not wanted.
Still not claimed:
auramaxx create is the public scaffold command.
Current templates:
2d-adventure2d-shooter2d-survivordeckbuilder-2d3d-adventure3d-platformer3d-collectathonblanklocal-multiplayerCurrent create note:
auramaxx create <name> opens the starter promptauramaxx create <name> --template ... accepts the shipped template catalog--template 2d and --template 3d normalize to
2d-adventure and 3d-adventureGenerated project shape includes:
package.jsonaura.config.jsonaura.capabilities.jsonREADME.mdRUNBOOK.mdsrc/src/starter-utils/ for non-blank templatessrc/runtime/project-registry.js for registry-backed authored projectssrc/runtime/scene-registry.js for registry-backed authored projectssrc/runtime/project-inspector.js for registry-backed authored projectssrc/runtime/scene-flow.js for registry-backed authored projectssrc/runtime/screen-shell.js for registry-backed authored projectsscenes/, ui/, prefabs/, config/, and content/ for scaffolded authored startersassets/skills/.logs/bin/play.jsScaffold notes:
src/starter-utils/@auraindustry/aurajs/helpers lane owns the shared helper implementation, while scaffolded gameplay code can keep local copiessrc/starter-utils/animation-2d.js, tween-2d.js, and combat-feedback-2d.jssrc/starter-utils/triggers.jssrc/starter-utils/adventure-objectives.js.logs/ during wrapper and dev flowsplay, publish, and
sessionRegistry-backed authored projects now also scaffold an app-shell runtime:
scene-flow.js owns scene-stack flow for replace/push/pop casesscreen-shell.js owns mounted HUD, overlay, and modal screen stateproject-registry.js remains the authored inventory and source of truthauramaxx make scene|ui-screen|prefab self-wires those authored files into the
project registryIn practice, that means starters can mount HUD and pause/settings screens through one explicit runtime model instead of only starter-local booleans.
The main config file controls identity, window/build settings, and module gates.
Common module flags:
modules.physicsmodules.networkmodules.multiplayerImportant naming detail:
modules.networkaura.netThe CLI exposes three related developer surfaces:
auramaxx state ... for canonical state export/apply/diff/restoreauramaxx inspect export for engine/runtime telemetry snapshotsauramaxx action ... for optional gameplay-semantic commands defined by the gameauramaxx replay run ... for deterministic headless input replay with checkpoints and divergence reportsauramaxx evidence for one combined headless manifest plus state.json,
inspect.json, perf.json, and optional replay artifactsExamples:
auramaxx state export --compact
auramaxx inspect export --compact
auramaxx action schema --compact
auramaxx action run request.json --export-state --compact
auramaxx replay run replay.json --compact
auramaxx evidence --compact
auramaxx evidence --replay replay.json --compact
For development restore loops:
auramaxx dev --restore-slot <name>auramaxx dev --restore-checkpoint <name>Testing surfaces:
auramaxx test runs a headless game-logic harnessauramaxx conformance runs API-level conformance in shim/native/both modesThese are useful for:
The published package currently exports:
./cutscene./helpers./helpers/2d./scene-composition./prefabs./shader-kits./react./webauramaxx and aura