Skip to content
Computer
Esc
navigateopen⌘Jpreview
On this page

How machines behave

The reasoning behind sizes, readiness, coordinates, and exit codes.

Sizes are named, not free-form

Sizes are named rather than free-form, and the concrete CPU, memory and disk behind each name are server-side, so they can change without a client release.

Running is not the same as ready

A machine has a working shell before it has a working desktop. machines.create returns once the machine is running; waitForDesktop is what tells you the desktop is ready to drive.

Coordinates are refused, not clamped

Coordinates are the display’s own pixels, and a coordinate outside it is refused rather than clamped: a click 200 pixels off the edge is a bug worth surfacing, not one to land somewhere plausible.

A non-zero exit code is a successful call

Only a failure to run the command at all is an error. A command that runs and returns a non-zero exit code is a successful call — the exit code is data, not a fault.

Was this page helpful?