Ship a corrected mesh onto an already-published GLB add-on/prop/avatar, IN PLACE — new Package Version, same item id/owner/listings; every existing owner gets it at their next spawn
Move an item to a sealed Package Version of its own package (the visual check is advisory and never gates the move; only a technical failure or content safety refuses it). A vehicle moves its car with the pin: the version's sealed vehicle definition is sent as properties.vehiclePackage (refused if the version has none). A version the item already had is a rollback (PUT versions/current), so moving back to an older version works too
helix item set-version [options] <item-id>
Argument
Required
Description
item-id
yes
universal item UUID
Option
Description
--package-version <version>
the sealed version to move to, e.g. 1.0.12 (required)
--reason <text>
required, lands in the audit ledger (required)
--expected-current-version-id <uuid>
refuse if the item has moved off this Package Version since you last read it
--as-admin
platform admins only: move an item another account created (POST /api/v1/admin/universal-items/<id>/versions). Same gates as the creator move (technical failure, content safety); --reason is recorded with you as the actor
Search the published MARKETPLACE catalogue — including Presets (user-facing name for a build: a free, never-owned preset), the dressed presets someone already assembled. A Preset is never owned itself; its parts are acquired individually from their own listings
form factor beneath the category, e.g. car / rifle / art
--tag <tag>
exact tag
--host-kind <hostKind>
host class, e.g. vehicle / character / weapon
--builds <mode>
Presets (API identifier: builds) in the results: include | only | exclude (default include — a Preset is filed under its base's own category, so it comes back alongside bases unless you narrow)
What is in a published Preset (API identifier: build): its base, its add-on parts, what you own, and what the parts cost together. A Preset is never owned itself — only its parts are, each bought or held from its own listing
Render an item headless in the real HELIX runtime, measure it, and (with --submit) record the advisory visual-QA notes (never a gate on publishing, listing or moving; only an unusable file or content safety blocks). --hosted asks the platform to render it on a GPU runner instead
helix item visual-qa [options] [item-id]
Argument
Required
Description
item-id
no
universal item UUID (its CURRENT package version is rendered, or --package-version); omit with --hosted-worker
Option
Description
--submit
submit frames + measurements to the backend, which judges and records the verdict (needs helix login)
--hosted
queue a hosted render on the platform GPU runner and wait for the verdict (needs helix login; exit 0 pass, 0 warn (advisory notes only: verdict: "warn" + warnings in --json), 1 fail (notes, never a gate), 2 error)
--retry
with --hosted: REQUEUE this version after a failed, errored or exhausted hosted run (a fresh job, attempts start again; inside the backend cooldown it waits it out, up to --timeout)
--no-wait
with --hosted: queue the render and return without waiting
--timeout <minutes>
with --hosted: how long to wait for the verdict (default "30")
--status
read-only: show the hosted visual-QA state and recorded result for the item (no login needed)
Playwright storageState of a signed-in QA account (Try Now and the customiser need one); default $HELIX_VQA_STORAGE_STATE
--host <id...>
only fit onto these host/base item ids (add-ons, wearables)
--package-version <version>
render this sealed version of the item's own package before moving its pin (vehicles, avatars, add-ons, wearables, props, Devices)
--vehicle-package <file>
with --package-version on a vehicle: the version move's vehicle package JSON, served by Try Now after server-side preparation
--chrome <path>
Chromium executable (default: Playwright Chromium / Chrome for Testing, headless; the macOS system Chrome is refused)
--no-world-walk
skip the world walk (wearables, character add-ons, avatars: worn and walked in the test grounds, measured for holes and poke-through); also HELIX_VQA_WORLD_WALK=0
--api-url <url>
platform API base URL
--web-url <url>
website base URL (default: the site that serves --api-url)
Compile the item-lod/1 Runtime Artifact for a published prop, Device or vehicle: up to two cheaper models (a tier that does not shrink the model is left out) with their own small textures, plus an octahedral impostor. Local preview; the backend worker is the source of truth
helix item lods [options] [package]
Argument
Required
Description
package
no
<packageId>[@version] of the Package Version to compile
Option
Description
--item <idOrSlug>
compile the Package an Item currently points at (instead of <package>)
--glb <file>
compile a local static GLB instead of a Package (no Package identity is recorded)
--profile <prop|vehicle>
LOD1 triangle budget: prop keeps at most 25 percent, vehicle max(5000, 10 percent) (default: vehicle for vehicle Packages, else prop)
--variant <id>
model variant id or role suffix, when a Package carries several (default: the balanced web model)
--shading <albedo|lit/1|gbuffer/1>
impostor rendition (default lit/1; the backend compiles item-lod/5 with gbuffer/1)
--card-truth <apply|observe>
with --shading gbuffer/1: apply leaves the card out of an item it cannot represent truthfully (glass, a mirror, thin emissive parts) when a mesh is guaranteed; observe only reports the verdict