DESKSPAWN

A Linux desktop your AI agent can use.

Deskspawn hands an agent its own desktop over an HTTP API. The agent takes screenshots to see it and sends clicks and keystrokes to work it.

What it is

Three pieces.

A desktop, a fleet service that keeps a warm pool and hands desktops out, and Python and JavaScript clients.

Each desktop is a Docker container running XFCE, driven by screenshot, click, type, key, scroll and bash.

Where it stands

A prototype, and proud of it.

A prototype. Everything runs on Docker on one Windows PC. No paying customer has ever touched it.

See what was measured

Illustration: every star stands for a desktop. Drag to turn it.

Software without an API still has a screen.

Deskspawn gives the agent the same screen, mouse and keyboard a person would use. It sees by taking a screenshot and acts with clicks and keystrokes.

Every call is an ordinary HTTP request, so any language that can send one can drive a desktop.

  • screenshot
  • click
  • type
  • key
  • scroll
  • bash
An agent's cursor works an app window by pixel, one control verb at a time. Illustration

Measured on one Windows PC

Every number here is a prototype number: Docker on one Windows PC, not a production figure. Each row says how it was measured.

How long each step took. Time runs left to right on a log scale; a bar is the measured range, a dot a single figure.
The numbers behind the chart
StepMeasuredHow
Hand out a warm desktop26 ms median, 29 ms p9525 soak runs, one every 300 s, about two hours
Resume a paused desktop0.080 sOne desktop, HTTP round trip through the fleet API
Pause a desktop0.097 sOne desktop, HTTP round trip through the fleet API
Stop a desktop, home kept642–994 msThrough the fleet API, client wall clock
Start it again1,102–1,264 msThrough the fleet API, client wall clock
Refill a warm pool of 31.5–2.0 s was 4.5 sThree runs per pool size, before and after a fix
Forget a desktop whose container vanished8.53–12.74 sThree cases, three runs each
Memory per desktop, in MiB, on a linear scale.
The numbers behind the chart
DesktopMeasuredHow
Idle147 MiB200 desktops at once, measured 2026-09-11
Busy, 8 Firefox tabs614–655 MiB1, 2, 4, 6 and 8 desktops, screenshot and scroll every 5 s for 180 s
  • 58 of 58

    An AI agent passed 58 of 58 tasks across those 25 runs.

  • 10 of 10

    An AI agent completed 10 of 10 tasks on the fleet, one at a time and three at once.

  • 5 of 5

    Stopped and started again, a desktop kept its home: 3 files including 50 MiB of random data matched byte for byte in 5 of 5 cycles.

  • 12 h 40 min

    Paused with Firefox open, a desktop was woken after 12 hours 40 minutes with the same window and a valid screenshot.

Nothing past 8 busy desktops at once was tried. These are prototype numbers, not production figures.

What is built, and what is not

What works today?
  • Three pieces: a desktop, a fleet service that keeps a warm pool and hands desktops out, and Python and JavaScript clients.
  • The fleet keeps a warm pool of desktops, hands them out, takes them back and pauses idle ones.
  • A stopped desktop keeps its home disk. Cloning a stopped desktop with new secrets is built, but not yet on the running fleet.
  • Every desktop has its own bearer token, and the only path to its controls is through the fleet.
What is not built yet?
  • Containers are the isolation boundary today, not a hypervisor. Good enough for demos, not for two unrelated tenants on one host.
  • Accounts, billing, quotas and metering are not started.
  • Cloud deployment is not started. The product runs on one local machine.
Can I use it?

Not yet. There is no public service and no paying customer. If you want to talk about it, get in touch with BOISE AI.