Prompt or Die is an open-source game platform for building deterministic, authoritative worlds where autonomous AI agents and human players operate under the same gameplay rules. The runtime is written in Rust, supports native and browser clients, and is being extended toward a full 2D, 2.5D, and 3D authoring stack.
Current release posture: v0.1.0-alpha.2, an early testing alpha. Expect
breaking changes across runtime contracts, tooling, and benchmark/report
surfaces while the platform hardens.
- Documentation Hub
- CLI Surface
- Reference Bootstrap
- Architecture Overview
- Benchmark Suite
- Rust SDK Boundary
Discover the supported platform command surface from one entrypoint:
bun ./scripts/pod.ts list
bun ./scripts/pod.ts shell
bun ./scripts/pod.ts runtime server --dry-run
bun ./scripts/pod.ts web dev
bun ./scripts/pod.ts show pod-server --jsonFor attached terminal workflows, use bun ./scripts/pod.ts shell. For
interactive machine sessions, use newline-delimited JSON request/event objects
through bun ./scripts/pod.ts shell --agent.
printf '{"type":"builtin","requestId":"1","name":"context"}\n{"type":"builtin","requestId":"2","name":"exit"}\n' | bun ./scripts/pod.ts shell --agentFor an attached terminal workflow, use the interactive shell:
bun ./scripts/pod.ts shell
bun ./scripts/pod.ts shell --agent
bun ./scripts/pod.ts export events --format toon
bun ./scripts/pod.ts export world --format jsonpod shell is the human-friendly attached terminal experience. pod shell --agent
is the machine-friendly interactive shell mode for long-lived autonomous agent
sessions. One-shot automation should keep using list/show/env/command/run --json.
TOON is reserved for the large LLM-facing export surfaces under
pod export world|events|multiverse --format toon.
bun ./scripts/pod.ts workspace build
bun ./scripts/pod.ts runtime desktop
bun ./scripts/pod.ts runtime server
cd apps/pod-web
bun install
cd ../..
bun ./scripts/pod.ts web devIf you want to stay inside one terminal and inspect supported commands as you
go, use bun ./scripts/pod.ts shell. For machine-driven interactive sessions,
use bun ./scripts/pod.ts shell --agent.
bun ./scripts/pod.ts runtime headless -- --profile ci-smoke
bun ./scripts/pod.ts runtime headless -- --profile ci-smoke --dataset-output /tmp/pod-headless-dataset.json --topology-output /tmp/pod-headless-topology.json
bun ./scripts/pod.ts benchmark controller-parity
bun ./scripts/pod.ts benchmark toon-exports -- --fail-on-checks
bun ./scripts/benchmark_toon_exports.ts --profile extensive --output artifacts/toon-export-benchmark-extensive.json --html-output artifacts/toon-export-benchmark-extensive.html --markdown-output artifacts/toon-export-benchmark-extensive.md --charts-dir artifacts/toon-export-benchmark-extensive-charts --fail-on-checks
bun ./scripts/pod.ts benchmark topology-feed -- --topology-input /tmp/pod-headless-topology.json --fail-on-checks
bun ./scripts/pod.ts workspace test
bun ./scripts/pod.ts workspace checkbun ./scripts/pod.ts history run-shard-target-snapshot -- --label 2026-W11For retained history, snapshot comparison, and benchmark interpretation, see Benchmark Suite and Benchmark Snapshot History.
bun ./scripts/pod.ts assets stage-import -- --output-root artifacts/staged-assets path/to/asset.glbFor bundle specs, --materialize-runtime, KTX2/meshopt variants, runtime
selection rules, and browser asset verification, see
Asset Pipeline.
- Deterministic ECS runtime in
pod-corewith one shared agent pipeline:Observe -> Decide -> Validate -> Execute -> Broadcast - Native and browser rendering surfaces in
pod-render - A real browser-side Three.js client in
apps/pod-web - Headless multi-world tournament and evaluation entrypoint in
apps/pod-headless - Scene, prefab, save/load, and state-stack authoring in
pod-scene - Direct-connect networking plus SpacetimeDB integration in
pod-netandpod-stdb - Asset processing, animation, scripting, spatial, and physics support across the workspace
crates/
pod-core Deterministic ECS world, tick loop, agent contract, actions, observations, events
pod-render Native wgpu renderer and browser bridge
pod-scene Scenes, prefabs, save/load, typed bindings, streaming
pod-net QUIC/WebSocket transport and SpacetimeDB-aware clients
pod-stdb SpacetimeDB tables, reducers, events, and client wrapper
pod-agents LLM, neural, scripted, and hybrid agent implementations
pod-editor Visual editor shell and authoring panels
pod-assets Asset import, processing, caching, and procedural generation
pod-animation Keyframes, tweening, blending, and state machines
pod-physics Physics integration
pod-spatial Pathfinding, raycasts, and spatial queries
pod-scripting Lua scripting API and sandbox
apps/
pod-desktop Desktop runtime and local simulation entry point
pod-headless Headless multi-world tournament and evaluation runner
pod-web Browser-side Three.js/WebGPU client and bridge demo
pod-server Dedicated authoritative server
specs/
Product and subsystem requirements
docs/
Public architecture, workflow, benchmark, and release guides
- Documentation Hub
- CLI Surface
- Architecture Overview
- Plugin Model
- Agent Integration Contract
- Agent Runtime Audit
- Multi-World Agent Topology
- Asset Pipeline
- Reference Bootstrap
- Benchmark Suite
- Platform Stabilization
- Rust SDK Boundary
- Benchmark Snapshot History
- Competitive Matrix
- Moat Gates
- Bootstrap Showcase Research
- Active execution checklist: IMPLEMENTATION_PHASES.md
- Historical implementation log: IMPLEMENTATION_PLAN.md
- Current session tracker: SESSION.md
- Delivery recap: progress.md
The repo already has the deterministic core, browser client, headless multi-world runner, shared topology contract, controller parity harness, and weekly shard-target benchmark workflow in place. The next major layers are public platform hardening, import/shipping polish, and a formal plugin/app lifecycle. The current hardening contract for benchmark tiers, planning-doc ownership, shipping profiles, authz policy scope, and SDK boundaries lives in docs/platform-stabilization.md. The repo-owned Rust SDK hookup boundary now lives in docs/rust-sdk-boundary.md.