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 model that you can use, including public models from other accounts:

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.
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). When you omit public from the file, the model keeps its current visibility. Customers can set it to false to make an existing public model private. Only Reactor staff can set it to true on a private model. 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 or visibility change

To change status or visibility without replacing the rest of the spec, pass --status, --public, or --private. Targeted mode ignores reactor.yaml and changes only the named fields.
--status accepts ACTIVE, DEPRECATED, or DISABLED. You cannot use --public and --private together. You also cannot combine --model-file with targeted flags. Only Reactor staff can change a private model to public. Contact Reactor if you need public access. Customers can preserve an existing public setting or use --private to remove public access.

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 that the count is unavailable. Use INSTANCE (the instance identifier) with reactor logs --instance <instance_id> to tail that instance’s logs, or with GET /logs?instance_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 resolves the model to its full <org>/<name>. It asks you to type that name back verbatim before you proceed, 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.