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 loginThe 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 installhelix initscaffolds a complete Vite project.--kindischaracter(single player, the default),multiplayer(players see and hear each other) orscene.helix installresolves the platform systems your world pins (the character and engine packages), downloads their code intopublic/helix_modules/, and wires the hosted runtime into your import map.
3. Build and check it
npm run build
helix validate disthelix 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 disthelix 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-worldOpen 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.