Skip to main content
Four commands operate on a model record after it has been registered: ls, update, instances, and delete. The last three infer the model name from the nearest enclosing reactor.yaml when you run them inside a workspace, so the usual call needs no arguments.

List the models you own

reactor ls prints the models registered against your account (reactor model ls is identical), one canonical <org>/<name> per line, so the output pipes cleanly into shell composition:
The default view shows only models you own. Pass -a/--all to include every visible model on the platform, including the public ones you can deploy but do not own:

Long format with -l

Pass -l to get a table with visibility, ownership, status, and per-region instance columns. Short bool flags compose, so -la is the same as -l -a:

Structured output

Pass -o/--output to emit the same data, including the per-region instance counts, in a structured format: table (default), json, yaml, or md (Markdown table):

Narrowing the listing

Pass --name <substring> to keep only canonical names containing the substring (case-insensitive, server-side filter):
When no rows match, the CLI prints a hint pointing at the next step: register a model, drop --name, or pass -a to widen the view.
list is registered as an alias for ls, so reactor model list keeps working if that’s the muscle memory you have from other CLIs.

Update a model’s spec

reactor model update is the way to change a registered model without re-publishing a release. It has two modes.

Spec-driven (default)

With no flags, update treats your reactor.yaml as the complete declaration of the model’s mutable fields. The CLI sends a full-replace PUT built from the spec: description, resource overrides (CPU / memory / GPU), and extra-args. Anything absent from the spec is cleared on the server.
public is the exception. When you leave it out of the file, the model keeps the visibility it already has. When you write it, the value in the file overwrites the stored visibility. This mode never renames the model: model.name only selects the target. model.version is also ignored (update operates on the model, not a release). To update a model from outside its workspace, point at a spec explicitly:
When both an explicit <name> and a model.name in the file are present, they must match (short and canonical org/name forms compare equal).

Targeted (status / visibility)

To flip a status or visibility flag without touching the rest of the spec, pass one of --status, --public, or --private. Targeted mode ignores reactor.yaml values entirely and applies just the named change server-side.
--status accepts ACTIVE, DEPRECATED, or DISABLED. --public and --private are mutually exclusive. --model-file cannot be combined with the targeted flags.

List running instances

reactor model instances shows the instances currently serving a model, so you can check what is deployed and live without leaving the CLI.
The default view is live-only, and it hides any region where the model is scaled to zero. Add --all to include both the recent historical instances and those all-zero regions. Bound the history window with --since (a Go duration, with a d day suffix):
The formatted output opens with a per-region count table, then lists one row per instance:
Each instance reports its own STATUS: A ? in the region table means the same thing: the server did not report that number. Use INSTANCE (the instance identifier) with reactor logs <machine_id> to tail that instance’s logs, or with GET /logs?machine_id=… from the log gateway.

Delete a model

reactor model delete soft-deletes a model: the record and its releases are kept on the server as a tombstone, and the model’s name stays reserved. The model leaves every read surface at once, but the same name cannot be re-registered while the tombstone exists. The partner image and weights bundles in object storage are retained for audit and garbage-collected separately.
The CLI prints the model name it resolved and then asks you to type it back verbatim before proceeding, the same convention kubectl delete, gh repo delete, and terraform destroy use. Any mismatch (including a different case or trailing whitespace) aborts immediately; there is no retry.
For CI and scripted use where stdin is not a TTY, pass --yes to skip the confirmation:
You can also target a model by name from outside its workspace:

Next

Check release status

See where each release stands and which one is live.

Stream logs

Tail the runtime logs of a session or instance.