ubuntu-vm (any sim with is_desktop=True qualifies).
The session and environment APIs are the same as any other env. The only thing that’s different is env.sdk, which on a desktop env exposes four tool surfaces: status, computer, bash, edit — plus login for getting cookies into the VM’s Chrome.
Requires
plato-sdk-v2 >= 2.61.4.Hello desktop
status()— health and display resolution.bash— shell command on the VM.computer(screenshot)— get a PNG of the desktop, base64-encoded.computer(left_click)— point + click.computer(key)+computer(type)— keyboard input.edit(create)+edit(view)— structured file ops.
Picking the env
Three ways to get a desktop env in your session:session.desktop_env to grab the desktop:
session.desktop_env returns the first env with is_desktop=True, or None if there isn’t one.
Liveview
env.sdk.get_liveview_url() returns a noVNC URL you can open in a browser to watch the VM in real time. Useful for debugging an agent loop.
await even on AsyncPlato.
Async
The async client mirrors the sync one. SwapPlato → AsyncPlato and await everything except get_liveview_url():
What’s next
Tools
Full reference for
computer, bash, edit, statusLogin
Get cookies into the VM’s Chrome before the agent runs
Agent loop
Wire model tool calls to
computer / bash / edit