Commands
Every command accepts
--json.
Project Documents
Theproject:document commands browse, change, and version the documents of a Project. The project:document-storage commands configure the Gateway’s private storage for them. Each command has its own section below, and Project Documents owns the full contract.
Mutations require an observed --expected-revision; permanent removal also requires --yes without a terminal. JSON mode preserves the API envelope. Local validation uses input.invalid and exit 2. Local download integrity or filesystem failures use project_documents.local_io_failed and exit 1. On project_documents.revision_conflict, preserve the draft and reread metadata rather than retrying automatically.
orbit project:create
orbit project:list
List every Project with its slug, type, repository, default branch, and root. JSON output also includes the source access.orbit project:show
Show one Project with its source access, source defaults, task check, task workspace routing, and excluded Nodes. Human detail output labels the booleanTask workspace routed; JSON uses task_workspace_routed. Null default_branch or root values mean the source defaults are incomplete, and new Instance creation fails with project.source_defaults_incomplete until they exist. A null task check means tasks run no check command. Human output also lists the Project’s Instances with ID, name, environment, Node, domain, and status. In a terminal, selecting an Instance opens instance:show.
orbit project:update
Change a Project’s display name, type, source access, source defaults, task check, task workspace routing, or review and merge. Omitted fields stay unchanged. The Gateway reconciles affected development sources, checkouts, Routes, inherited web roots, and runtimes before publishing the change. It does not start a production deployment. See Update a Project for validation, rollback, and retry behavior.orbit project:destroy
Remove a Project that has no Instances and no Routes. Its definitions, setup steps, Node exclusions, and update records go with it. A Project with tasks cannot be removed: the request fails with HTTP 409 andproject.has_task_groups. See Remove a Project.
--yes confirms without a prompt and is required for JSON and noninteractive calls.
orbit project:dev-deploy-step:list
List the Project’s development deploy steps in stored order. Each entry shows its name, command, timeout, and whether it is required. JSON returnssteps and request_id.
orbit project:dev-deploy-step:create
Record a named step without starting a deployment. Human step results show control characters as visible escapes and preserve literal text such as<error> tags; JSON preserves the stored command unchanged. Development deploy steps owns the limits, placement rules, and required-versus-best-effort behavior.
name is the step name, unique within the Project.
orbit project:dev-deploy-step:update
Change a named step. Omitted fields keep their stored values. A required-only update is supported. JSON for create, update, and remove returnsname, command, timeout_seconds, required, and request_id.
orbit project:dev-deploy-step:destroy
Remove a named step. The remaining steps keep their order.--yes confirms without prompting and is required for JSON and noninteractive calls.
orbit project:excluded-node:add
Keep a Project off anapp-dev Node for development placement. The Node must have an active app-dev role. A second add of the same pair returns the stored exclusion. Development node exclusions owns the rules.
In a terminal, an omitted Project or Node opens a searchable selector. JSON and noninteractive calls must name both.
orbit project:excluded-node:list
List theapp-dev Nodes the Project cannot use. Each entry shows the Node and the number of development Instances of the Project already on it.
orbit project:excluded-node:remove
Let the Project use the Node again. It asks for no confirmation, because it moves and stops nothing.orbit project:document:list
List the direct children of a folder, or of the root. Columns are ID, KIND, NAME, REVISION, SIZE, and ARCHIVED. Project Documents owns the full command contract.orbit project:document:search
Find entries whose name or path contains the query. Columns are ID, KIND, PATH, REVISION, SIZE, and ARCHIVED.query is a name or path substring. The options work as for project:document:list.
orbit project:document:show
Show the metadata of one entry. It never prints the body.entry is a numeric entry ID, never a path. Every command that acts on one entry takes it second.
orbit project:document:create
Create a folder or a file.orbit project:document:update
Rename or move an entry.orbit project:document:read
Print a file’s exact text on stdout with no added newline. Diagnostics go to stderr.--json returns the API envelope.
--version=ID reads an earlier version. The newest version by default.
orbit project:document:upload
Write local bytes as a new version of a file.--from=- reads stdin. The CLI checks the local size before sending, and the server checks it again.
orbit project:document:write
Write UTF-8 text as a new version of a file.--content or read it with --from. --from=- reads stdin.
orbit project:document:download
Save a file version to a new local file, or print it to stdout.
The CLI verifies the size and digest before it publishes the file.
--json returns the body as base64 instead, and refuses --output. A local failure returns project_documents.local_io_failed and exit 1.
orbit project:document:versions
List a file’s versions. Columns are NUMBER, ID, TYPE, SIZE, SHA256, and CREATED.orbit project:document:restore-version
Create a new version from an earlier one. It asks for no confirmation, because the history keeps every version.orbit project:document:archive
Archive an entry. Archiving is not removal:project:document:restore brings it back.
orbit project:document:restore
Restore an archived entry.orbit project:document:remove
Permanently remove an entry. The confirmation names the Project, the entry, and whether the removal is recursive.orbit project:document-storage:show
Show the private object storage that holds document bodies, and its status. Credentials are always redacted. It takes no Project selector.orbit project:document-storage:update
Configure the private object storage. Omitted settings stay unchanged. In a terminal, credentials use masked prompts. Secret values are never command-line arguments.
A credential file is UTF-8. One final newline is stripped.