A TypeScript harness for trying alternate futures, comparing outcomes, and continuing from the best result. Jev makes gameplay decisions; an optional supervisor improves strategies in the background.
One repository contains the harness, Microsandbox executor, supervisor providers, and two examples: Doom (Multiverse of Madness) and chess.
Requires Node.js 24+ and a TypeSafe/Jev API key. Doom also needs Apple Silicon macOS or a Linux host with KVM; the demo has been tested on Apple Silicon.
git clone https://github.com/superradcompany/multiverse-of-madness.git
cd multiverse-of-madness
npm ci
cp .env.example .envAdd your key to .env as TYPESAFE_API_KEY=..., then choose an example:
npm run demo:doom # http://localhost:4317
npm run demo:chess # http://localhost:4321Run each command in its own terminal to try both together. Setup/build steps run automatically; Doom's first launch downloads the engine assets and VM runtime. Both start paused. Press Play/Resume in the browser. Refreshing preserves the session; use Restart/New game to start over.
For several saved runs, use npm run demo:sessions, then open
http://localhost:4316. Create a Doom or chess session and start its backend from
that page. Each run keeps separate settings and history. The gamepad menu returns
to the sessions page. See session management for stop/reopen behavior.
Background supervision additionally needs an authenticated Codex or Claude CLI. See the Doom guide or chess guide for enabling it, configuration and troubleshooting.
harness/: reusable experiment and learning core.packages/executor-microsandbox/: isolated code execution.packages/supervisor-*: Codex and Claude integrations.examples/doom/andexamples/chess/: game adapters, backends and viewers.
Doom runs inside real VMs. Chess boards use a local engine; its optional learning code runs in isolated VMs. The examples demonstrate the workflow, not proven competitive playing strength.
For a new game, start with the adapter guide. See architecture, saved sessions and verification for current behavior and limitations.