Skip to main content
A Project records one Git repository and the defaults for running it. Projects owns the fields, types, update lifecycle, and error codes. Applications shows how a Project becomes an Instance.

Commands

Every command accepts --json.

Project Documents

The project: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

A retry with the same values returns the existing Project.

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 boolean Task 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 and project.has_task_groups. See Remove a Project.
The CLI shows the Project and asks for confirmation, with No selected. --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 returns steps 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 returns name, 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 an app-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 the app-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.
Give the text with --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.
  • instance creates and manages the Instances of a Project.
  • process and schedule record Project definitions with --project.
  • route creates explicit domains for a Project.