Automation
Use SSH exec commands and durable request IDs to automate machine management.
Results and completion
Use --json for machine-readable results. An exec invocation writes one result
to standard output; progress goes to standard error. Check the SSH command's exit
status as well as its result. A failed command exits nonzero.
Creation, start, stop and deletion wait up to 120 seconds for the matching physical
result. A request being accepted or acknowledged is not proof that the machine
has reached the requested state. --no-wait returns the accepted request without
waiting; --timeout SECONDS changes the wait limit. Timing out or disconnecting
does not cancel accepted work.
Retry safely
Choose a stable, unique request ID for each intended mutation. Reuse it when retrying that same mutation after losing a reply. Request IDs contain 1–128 ASCII letters, digits, underscores, dots, colons or hyphens, and start with a letter or digit. Do not reuse one ID for different operations.
new --name example-machine --request-id example-create-001 --no-wait --json
request show example-create-001 --json
new --name example-machine --request-id example-create-001 --no-wait --json
The accepted request retains its normalized command and resolved resources. Retrying cannot retarget a different machine after name reuse or silently select a different default image. Query the original request after a lost response or timeout. Request status remains subject to current account authorization, including after the machine is archived.
Key removal prevents subsequent commands and status polls from that session. Accepted jobs continue. Reconnect using another registered key, or use email login to manage your keys in Marshall. Do not put private keys or approval links in logs.