Skip to content
v0.3

CLI

Terminal window
npm i -g @forgeco/cli
forge login --url https://<your-instance>

login stores the box under a name; --instance <name> picks between stored boxes and forge instances lists them. Almost every command in the registry is a CLI command, under the name it has everywhere else:

Terminal window
forge <command> --input '<json>'
forge <command> --input '<json>' --store <store-id>
forge read <capability> --input '<json>'
forge read <capability> --input '<json>' --internal

Both writes and reads take --input. --internal is what picks the OPERATOR face of a read — without it the call goes to the public one, which is a different answer rather than an error.

--store is what an ANONYMOUS command needs — building a cart, placing an order, a shopper logging in. Those run on a face that takes no credential at all, so the store is what resolves the tenant; the CLI sends no token on them even when you are logged in. You do not have to know which commands those are: the CLI reads each command’s face off the same declaration this reference does, and forge --help marks them.

The CLI holds 180 commands and reaches 102 read capabilities — the 32 of the public face, plus the operator face’s own under --internal. It carries no list of its own: the table it dispatches on is generated from the same registry as this page, so a command that exists is callable the day it lands. forge --help prints every command with its face, its scope and its summary, and the 32 public reads by name.

Commands marked System: yes on their page are platform commands: they reach the control face and need a platform credential, not a tenant one.

The 9 commands the CLI does not carry are the ones no face serves at all — only the kernel drives them. forge --help names them with the reason rather than hiding them, and asking for one by name is answered by name: