HELIX Docs
Introduction

Quickstart

From an empty folder to a published, multiplayer HELIX Instant world in about ten minutes, using the real helix CLI.

This builds and publishes a multiplayer world on the Web runtime, the fastest path to a playable link. Every command on this page was run end to end against the live platform; the command reference lists everything else the CLI can do. Unreal setup lives in the Unreal SDK section.

Prerequisites

  • Node.js 20 or newer
  • A HELIX account (helixgame.com)
  • A Chromium-based browser available to Playwright. Publishing renders your world once to check it and to capture a cover image. If none is installed, the CLI tells you to run helix screenshot --install.

1. Install the CLI and sign in

npm install -g @hypersoniclabs/helix-cli
helix login

The package is scoped

The binary is helix, the package is @hypersoniclabs/helix-cli. A bare npx helix runs an unrelated package. To skip the global install, prefix every command with npx -y @hypersoniclabs/helix-cli@latest. Keep the @latest: without it, npx runs a copy that is already installed globally, even an old one, instead of fetching the current release.

helix login opens your browser and stores a client token locally. On a machine without a browser, helix login --no-browser prints the sign-in URL instead, and helix login --token <token> signs in non-interactively for CI. Check the result with helix whoami.

Publishing from CI, SSH or a container?

Browser login needs a callback on the machine that runs the CLI. On a headless or remote host, create a client token in Account → API keys and run helix login --token "$HELIX_CREATOR_TOKEN" before publishing. Keep the token in your secret manager. See the CLI account guide.

2. Create a world

helix init my-world --kind multiplayer --title "My World"
cd my-world
npm install
helix install
  • helix init scaffolds a complete Vite project. --kind is character (single player, the default), multiplayer (players see and hear each other) or scene.
  • helix install resolves the platform systems your world pins (the character and engine packages), downloads their code into public/helix_modules/, and wires the hosted runtime into your import map.

3. Build and check it

npm run build
helix validate dist

helix validate runs the same rules the server enforces at publish time, so a problem found here is a problem you do not meet later. Fix everything it reports before moving on.

Test the built bundle, not the dev server

The scaffold's comments say it too: test with npm run build and npm run preview. The dev server rewrites bare imports and hides whether the import map is correct. To try saves, purchases and entitlements without a login or a backend, run helix dev from the project folder. It serves the built bundle under a simulated HELIX shell.

4. Publish

helix verify-subpath dist
helix publish dist

helix verify-subpath serves your bundle from a nested path, the way a published world is served, and fails on root-absolute 404s that every other local check misses. helix publish runs it again, uploads the files, finalizes an immutable build, captures a cover image and prints the play link:

✔ Published "My World" build 1
  play: https://helixgame.com/play/my-world

Open the link in two browser windows to see two players in the same space.

Make something happen

The scaffold already gives you a character, an avatar, an emote wheel and, for --kind multiplayer, presence and proximity voice. To add shared game state, declare it in public/helix.json. HELIX multiplayer is declarative and server-authoritative, so there is no server code to write. The first multiplayer world guide adds a server-validated action to exactly this project.

Where to go next

On this page