Run bounded asynchronous shell work inside an active Task.
Each Command is an independent non-interactive shell process inside one active Task. It executes as the operating-system user bound during Machine enrollment. Odyshell does not sandbox, elevate, or roll back that user.
command_run and POST /v1/tasks/:taskId/commands accept:
Caller-provided environment variables, standard input, PTYs, and persistent shell state are not supported. A later Command starts independently and does not inherit changes to shell state from an earlier one.
Creation returns a durable Command ID. Poll command_get until terminal and read transient
stdout/stderr chunks with command_output, passing the last sequence cursor as after. Output is
bounded by Local Policy, can be truncated, and expires from the delivery buffer.
command_cancel requests process-tree termination. Cancellation is not reported as complete until
the Client confirms a terminal result. After an abrupt Client crash, reconciliation reports an
unknown or failed outcome instead of claiming the detached process stopped.
Durable audit records the exact command, working directory, timeout, Agent, Machine, Task, status, exit code when known, and timestamps. It never stores OAuth credentials or retained stdout/stderr.