CLI & AI toolsCommand reference
helix product
Register world-local consumables, passes and currencies.
CLI version 0.1.27-helix3.551. Run
helix product --help for the text your installed build prints.helix product
Register world-local consumables, passes and currencies. Universal items use helix item distribution instead
helix product <command>helix product register
Register a purchasable product on one of your PUBLISHED worlds — one round trip, live as soon as it returns
helix product register [options] <world-slug>| Argument | Required | Description |
|---|---|---|
world-slug | yes | the world that sells it |
| Option | Description |
|---|---|
--title <title> | name the purchase popup shows the player (max 120 chars) (required) |
--price <lix> | price in LIX; 0 registers a free "Claim" (a confirmation, no spend) (required) |
--type <type> | legacy world-local effect type: consumable (required unless you author --grants) |
--grants <json> | JSON array of world-local entitlements instead of --type: pass | currency, max 8 (e.g. '[{"kind":"currency","code":"coin","amount":500}]'; [] = a tip jar). Fixed at registration |
--key <key> | stable slug world code buys as pkey:<key> (max 64 chars, lowercase a-z0-9_-); it cannot be renamed later |
--description <text> | what the player is buying |
--max-per-user <n> | cap on how many one player may own (whole number >= 1) |
--dry-run | validate everything locally and print what WOULD be sent; no network, works logged out |
--json | machine-readable output |
helix product list
List a world's registered products, or — with no slug — every PUBLISHED world of yours and what it sells
helix product list [options] [world-slug]| Argument | Required | Description |
|---|---|---|
world-slug | no | the world that sells them; omit for all your published worlds |
| Option | Description |
|---|---|
--json | machine-readable output |
helix product update
Patch a registered product. The key and the type are fixed at registration — world code buys the key, and changing what a purchase hands over would re-label every copy already sold
helix product update [options] <world-slug> <product>| Argument | Required | Description |
|---|---|---|
world-slug | yes | the world that sells it |
product | yes | the product key (or its uuid, if you registered it without a key) |
| Option | Description |
|---|---|
--title <title> | new title |
--description <text> | new description |
--price <lix> | new price in LIX; 0 makes it a free "Claim" |
--max-per-user <n> | new per-player ownership cap (whole number >= 1) |
--active <true|false> | false takes it off sale — existing owners keep theirs, nobody new can buy it |
--dry-run | validate the patch locally and print what WOULD be sent; no network, works logged out |
--json | machine-readable output |
helix product set-active
Put a product on sale or take it off. The row stays either way, so past purchases and their grants keep resolving
helix product set-active [options] <world-slug> <product> <true|false>| Argument | Required | Description |
|---|---|---|
world-slug | yes | the world that sells it |
product | yes | the product key (or its uuid) |
true|false | yes | true puts it on sale, false takes it off |
| Option | Description |
|---|---|
--json | machine-readable output |