Simplifyd CloudSimplifyd Cloud
HomeDeveloper IntegrationsComputers for AI Agents

Computers for AI Agents

Give an AI agent a desktop machine it can see, click, type into and run commands on.

A desktop machine is a virtual machine that boots straight into a desktop: Ubuntu 24.04 with Xfce, Firefox and LibreOffice, signed in and ready. An AI agent uses it the way a person would, by looking at the screen and using the mouse and keyboard. It can also run shell commands for work a terminal does better.

You can watch the agent work from the console, and take over the mouse and keyboard yourself at any point.

Like every other service, a desktop machine runs inside your project's private network. An agent working on one can reach your databases and internal services by their private hostnames, and none of them need a public address.

Desktop machines are in beta.

Create one

From the console: open the command palette, choose Virtual Machine, and pick Ubuntu 24.04 Desktop as the image. SSH keys are optional for a desktop machine.

From an AI tool: with the MCP server connected, ask for one: "Create a computer called research in production." The agent calls create-computer and can start using the machine about a minute later.

A desktop machine starts with 2 vCPUs, 4 GB of memory and a 20 GB disk. 4 GB of memory and 20 GB of disk are also the minimums. It is billed as a virtual machine while it runs. Stop it from the console when you are not using it.

Watch and take control

Open the machine on the project canvas. The Desktop tab shows its screen live.

The view opens watching only, so a stray click does not land in the middle of an agent's work. Choose Take control to use the mouse and keyboard yourself, and Stop controlling to hand control back.

Only one person can view a machine's screen at a time. Opening it in a second tab disconnects the first.

Let an agent drive it

With MCP

The MCP server includes four tools for this:

ToolWhat it does
create-computerCreates and starts a desktop machine
computer-screenshotReturns the screen as an image
computer-actionClicks, moves, drags, types, presses keys, scrolls or waits, then returns a new screenshot
computer-bashRuns a shell command and returns its output and exit code

The actions use the same vocabulary as the computer-use tools models are trained on (left_click, type, key, scroll, and so on), so most agents use them without further instruction.

With the API

The computer API lives under the machine's service path:

https://api.cloud.simplifyd.com/v1/workspaces/{workspace}/projects/{project}/envs/{env}/svcs/{service}/computer

Authenticate with an API token as Authorization: Bearer <token>. Request and response bodies are JSON, except the screenshot.

Method and pathBodyDoes
GET /screenshotThe screen as a PNG. Add ?format=base64 for {"image", "media_type"}, ready for a model API
GET /display{"width": 1280, "height": 800}
POST /click{"x", "y", "button": "left" | "middle" | "right", "double": false}Moves the pointer to (x, y) and clicks
POST /mouse-move{"x", "y"}Moves the pointer
POST /drag{"start_x", "start_y", "end_x", "end_y"}Drags with the left button held
POST /type{"text"}Types into whatever has focus
POST /key{"key"}Presses a key or chord: Return, ctrl+l, alt+Tab
POST /scroll{"x", "y", "direction": "up" | "down" | "left" | "right", "amount": 3}Scrolls at (x, y)
POST /wait{"seconds"}Waits up to 30 seconds
POST /bash{"command", "timeout": 60}Runs a command; returns {"output", "exit_code", "timed_out", "truncated"}
POST /exec{"code", "timeout": 60}Runs Python 3 code, with the same result as bash

Coordinates are pixels from the top-left corner of the screen. The screen is 1280×800, and screenshots are taken at that size. That is the largest size computer-use models accept without scaling, so a point an agent picks out of a screenshot is the point it clicks.

Commands run as the desktop user (ubuntu, which can sudo) in its home directory, with the display set. A graphical program started from bash opens on the screen. End the command with & so the call returns:

curl -X POST "$SVC/computer/bash" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"command": "firefox https://news.ycombinator.com &"}'

While the machine is stopped or still starting, every call returns 503. Wait a few seconds and try again.

With the Go SDK

computer := client.Workspace(ws).Project(p).Env(env).Services().Computer(svc)

png, err := computer.Screenshot(ctx)
err = computer.Click(ctx, 640, 400, cloud.MouseLeft)
err = computer.Type(ctx, "simplifyd cloud")
err = computer.Key(ctx, "Return")
out, err := computer.Bash(ctx, "ls ~/Downloads", time.Minute)

What an agent can and cannot do

  • It is a full machine. The agent can install software, keep files between sessions, and run long jobs. Anything it installs stays on the disk until you delete the machine.
  • It has the internet. The browser can reach any public site. Do not sign it in to accounts you would not hand to the agent directly.
  • It is yours to inspect. Everything the agent does happens on a screen you can watch, and in a shell you can open from the Console tab.