Desktop & computer use

A desktop your agent can see, and you can watch.

Every VM can run a full XFCE desktop with Chromium and Firefox. Humans watch it live in the browser. Agents drive it through a screenshot and input API. Pause it, and the windows are still there when it wakes.

Two paths into the same screen

People need a live stream. Agents need pixels and an input channel, which is far cheaper. We do both.

Desktop streaming architecture A user's browser connects over HTTPS and WebSocket to the edge gateway, which checks a signed URL and wakes the VM, then forwards the KasmVNC stream from the microVM. Separately, an AI agent calls the REST API; the control plane talks to an in-VM agent over vsock to take screenshots and send mouse and keyboard input. Browser (human) KasmVNC web viewer Edge gateway signed URL + TTL · wake on request AI agent screenshot / input API Control plane REST → vsock Firecracker microVM Xvnc + XFCE · 1920×1080 KasmVNC :6901 Chromium · Firefox vm-agent screenshot · xdotool input HTTPS/WSS WireGuard REST vsock

Humans: live stream in the browser

Open https://<short_id>-desktop.taskhost.cloud in Chrome, Firefox or Safari. Our target is a visible desktop in under 2 s from the click, including waking a paused VM. KasmVNC runs over WebSocket on HTTPS: no UDP, no TURN server, no client install.

Agents: screenshot + input API

GET /screenshot returns a PNG (target p95 under 300 ms). POST /input moves, clicks, scrolls, types and sends key combos. The shape matches Anthropic's computer-use tool, so existing agent loops plug in directly.

Computer use API

See the screen, move the mouse

Two endpoints are enough for most agent loops: take a screenshot, decide, send input, repeat. No video stream to decode.

  • Screenshot: PNG of the full 1920×1080 framebuffer.
  • Input: mouse move, click, scroll, text and key shortcuts.
  • Share: signed viewer links, read-only mode, revocable through the API.
# Take a screenshot
curl -H "Authorization: Bearer $TASKCLOUD_API_KEY" \
  https://api.task.cloud/v1/sandboxes/$ID/screenshot -o screen.png

# Click, then type
curl -X POST -H "Authorization: Bearer $TASKCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  https://api.task.cloud/v1/sandboxes/$ID/input \
  -d '{"actions":[
        {"action":"left_click","coordinate":[640,410]},
        {"action":"type","text":"hello from the agent"},
        {"action":"key","text":"Return"}]}'

The details

SURVIVES PAUSE

Sessions come back

The pause snapshot includes RAM, so windows, the open browser and logged-in tabs return in under a second after resume. The stream reconnects automatically.

TEMPLATE: desktop

Ready to use

Ubuntu 24.04, XFCE, KasmVNC, Chromium, Firefox, xdotool and fonts. The template itself is a RAM snapshot of a running desktop, so new VMs start on a ready screen.

TTL · READ-ONLY · REVOKE

Safe to share

Viewer links are signed and expire (10 minutes by default). Share read-only views with your users and revoke links through the API. The VNC port is never exposed without a token.

IDLE STILL PAUSES

Watching doesn't burn money

An active viewer counts as activity, so the VM stays up while someone watches. An idle desktop with no viewers and no input pauses like any other VM.

default SIZE OR LARGER

Encoding runs in your VM

Screen encoding uses the VM's own vCPUs, with no extra fee. That is why desktops need at least default (4 vCPU / 8 GB).

NO GPU

Know the limits

Rendering is software-only. Office work, browsing and dev tools are fine; WebGL, 3D maps and video playback are slow. Smooth 60 fps WebRTC streaming is on the roadmap, not in the beta.

Give your agent a screen

Desktop streaming and computer use are part of the beta, on every default or large VM, at the same per-second price.