Machines are feature-flagged. The
compute:* scopes and list_machines tool will return an error until machines are enabled in your workspace. Contact support or check your plan’s feature list if the tools are unavailable.Creating a machine
Callcreate_machine with the parameters that fit your task. Choose the smallest size and shortest TTL window that will realistically cover the work — you can stop early and the unused time is returned to your org’s allowance.
Machines are billed per second from the moment they are ready until they stop. The TTL window is reserved from your organization’s allowance; stopping the machine early returns the remainder.
Machine lifecycle
1
Created
The machine is provisioned and the OS is initializing. Call
get_machine to poll status until it reaches ready.2
Ready
The machine is up and accepting commands. Call
run_command to start work.3
Running
A command is executing. Long-running commands can be started in the background; poll for output periodically.
4
Stopped
stop_machine has been called (or the TTL elapsed). The disk is snapshotted and billing pauses. The machine is not deleted — call resume_machine to bring it back from the snapshot.5
Deleted
delete_machine permanently removes the machine and all its snapshots. This action is irreversible and requires the compute:admin scope.Running commands
Userun_command to execute shell commands on a ready machine. The tool returns the exit code and combined output.
& and redirect output to a file), then use subsequent run_command calls to read the log file and check for completion.
Exposing ports publicly
If the machine runs a web server or any other network service,host_machine_port gives it a stable public HTTPS URL that routes to the specified port:
Stop and resume
Stopping a machine snapshots the disk and halts billing. The machine is not deleted — resume it later from the exact state it was in:Injecting credentials
Passinject_credential_ids when creating or resuming a machine to place vault credentials in the machine’s environment variables. The credential values are injected directly by the platform — they never appear in the MCP tool call or in your application code:
Reading and writing files
Two tools let the agent transfer data between its local context and the machine’s file system:read_machine_file— read a file as text or base64-encoded bytes (requirescompute:read)write_machine_file— create or replace a file on the machine (requirescompute:run)
Desktop access
For machines running a graphical environment,get_machine_desktop returns a short-lived access URL that opens the desktop in a browser. This requires the compute:admin scope and the Compute Scale add-on for large machines with extended run windows.
Billing
Machines are billed per second from the moment they reachready until they reach stopped or deleted. Size affects the per-second rate: larger sizes cost proportionally more. Machine time is pooled across your organization.
Additional machine time beyond your pool is available at €0.06 per machine-hour.
Required scopes
Next steps
Machines API reference
Browse the full MCP tool and REST endpoint reference for creating, running, and managing machines.