Features / Desktop and computer use
A desktop your agent can see and use.
Every sandbox runs a 1920×1080 desktop with Google Chrome. Agents take screenshots, click, type and scroll through the CLI, the API or MCP. Playwright and Puppeteer connect to the same Chrome, and you can watch it all in your browser.
curl -fsSL https://pols.so/install.sh | sh- Screenshot of the whole desktop
- 345 ms
- Each click, type, key or scroll action
- 90–160 ms
- Playwright connected to Chrome
- 1.8 s
Measured on 30 September 2026 against our sandbox host. Playwright ran on a machine outside the data centre.
Three ways in
Pixels
pols computertakes a screenshot and sends clicks, drags, typing, key chords and scrolling, at pixel coordinates from the top left. It works for any application, file dialogs included.Chrome over CDP
pols browser cdpreturns a WebSocket URL for Playwright or Puppeteer, valid for 5 minutes and only for that sandbox. Chrome's debugging port listens only inside the VM; pols relays the connection.Your own eyes
pols desktopprints a link to the desktop in your browser. Watch an agent work, or take over the mouse. The link lasts 12 hours and ends when the sandbox stops.
From the CLI or from code
An agent loop is a screenshot, an action and another screenshot to check the result. Over MCP, the same actions are the tools computer_screenshot, computer_click, computer_type and so on, andbrowser_cdp for the browser.
For web pages, CDP is faster and more reliable: selectors instead of coordinates.
$ pols computer screenshot web -o before.png
$ pols computer click web 960 540
$ pols computer type web 'hello world'
$ pols computer key web Return
$ pols computer screenshot web -o after.pngimport { createPolsClient } from "@peweo/pols";
import { chromium } from "playwright";
const pols = createPolsClient({
apiKey: process.env.POLS_API_KEY!,
});
const { websocket_url } = await pols.browser.cdp("web");
const browser = await chromium.connectOverCDP(websocket_url);
const [context] = browser.contexts();
const page = await context.newPage();
await page.goto("https://example.com");More of pols
- Forks and templates
Copy a sandbox into a second running VM in 0.64 s, or save it as a template.
- HTTPS ports and SSH
Any port at its own HTTPS address, private until you share it. SSH with your own keys.
- Hosted in Germany
Disks, templates and the encrypted vault stay on our servers in Germany.
Start with one machine.
Install the CLI, sign up, and give your agent somewhere to work.
curl -fsSL https://pols.so/install.sh | sh