npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@helixdev/helix-cli

v0.1.5-staging.27

Published

helix — the HELIX creator CLI: scaffold, validate, and publish Instant Worlds

Readme

@hypersoniclabs/helix-cli

helix — the HELIX creator CLI: scaffold, validate, and publish Instant Worlds to the HELIX backend. It shares bundle validation with the server via @hypersoniclabs/helix-manifest, so "validate passed but publish failed" can't happen for contract reasons.

Install

npm install -g @hypersoniclabs/helix-cli

Authentication

helix login opens your browser to the website's /cli-login page; you sign in there and the CLI captures a client token via a one-shot loopback redirect. For CI/headless, pass a token directly: helix login --token <token> (mint one in the Creator HubSettings → Client Tokens).

The token is stored in ~/.helix/credentials.json (mode 600). It's sent as Authorization: Bearer <token> on publish calls. helix login validates it against GET /api/v1/users/me before saving and reads the token's exp so the CLI knows when it lapses.

The backend & website default to the build's environment: the published @hypersoniclabs/* CLI targets production (api.helixgame.com / helixgame.com); the staging @helixdev/* CLI targets the staging backend (helix-backend-staging.up.railway.app) + staging website (next.helixgame.com). Override per run with --api-url/HELIX_API_URL and --web-url/HELIX_WEB_URL (e.g. a local/dev backend).

Commands

| Command | What it does | |---|---| | helix login [--api-url <url>] [--web-url <url>] [--token <t>] [--no-browser] | Sign in via the browser (/cli-login), or --token for CI/headless. Stores the client token. | | helix logout | Remove the stored token. | | helix whoami | Show current login status. | | helix init <dir> | Scaffold a minimal Three.js world (helix.json + index.html + main.js). | | helix install [--update] | Resolve a world's systems/abilities pins (a v0.2 or v0.3 manifest) → materialize the modules, the three import map, and helix.runtime.ts. | | helix validate [dir] | Validate a bundle locally — the exact rules the server enforces. | | helix publish [dir] | Validate → resolve/create the world → upload files → finalize → print the play URL. | | helix list | List your worlds. | | helix doctor [--project <dir>] | Print the environment + whether the @helix toolchain (CLI/MCP/SDK/manifest) is current. |

Publish flow

helix publish maps directly onto the backend's Instant World API:

  1. checkBundle validates helix.json + files via @hypersoniclabs/helix-manifest.
  2. GET /api/v1/instant-worlds/me → reuse the world with the manifest's slug, else POST /api/v1/instant-worlds.
  3. POST /api/v1/instant-worlds/:id/builds → presigned upload tickets.
  4. Files PUT directly to storage (6 concurrent), content-type/length bound to each ticket.
  5. POST /api/v1/instant-worlds/:id/builds/:buildId/finalize → byte-exact verify, activate, publish.
  6. GET /api/v1/instant-worlds/:slug → the play URL.

The programmatic surface (publishWorld, checkBundle, whoAmI, …) is exported from the package main, so an MCP server can drive the exact same code paths an agent would.

Develop

npm install
npm test       # jest
npm run build  # tsc → dist/ (bin: dist/index.js)
npm run lint