For developers running AI agents

A sandbox for your AI agents

Give every agent its own isolated Linux desktop in the cloud, with a real browser, root access, and an API. Watch it work, and take the controls when it gets stuck.

Free tier: 60-minute sessions, no credit card.

Animation: an AI agent signs in to a supplier portal inside an isolated Cyqle desktop and stops at a verification code. A person types the code with their own cursor and hands back. The agent exports a file, and the same snapshot then boots three runs in parallel.

Where should your agent run?

An agent that clicks and types needs a whole computer. The question is whose.

What it can reach
Your laptopYour files, your signed-in accounts, your network
Headless browser serviceA browser, and nothing else
Cyqle desktopA desktop of its own, holding only what you put there
When it gets stuck
Your laptopYou drop what you're doing to untangle it
Headless browser serviceRead the logs, guess, run it again
Cyqle desktopYou open the same desktop and take the controls
Starting point
Your laptopWhatever is on your machine today
Headless browser serviceClean, but browser-only
Cyqle desktopA snapshot you set up once, identical every run
Ten runs at once
Your laptopOne machine, one run
Headless browser serviceYes
Cyqle desktopYes, one clone per run
When a run goes wrong
Your laptopIt went wrong on your machine
Headless browser serviceContained
Cyqle desktopContained. Close it and boot a fresh copy

What every desktop gives your agent

isolation

Its own network and its own disk

Each desktop gets its own network and its own storage, encrypted with keys made for that session. Nothing from your laptop comes along unless you send it.

full desktop

Root on a real Linux desktop

A browser, a terminal, and full root access. Install your agent and the apps it needs to drive. If it runs on Linux, it runs here.

snapshots

The same start, every run

Set a desktop up once, the way your agent needs it, and snapshot it. Every run boots a fresh copy, so one bad run never leaks into the next.

parallel runs

One snapshot, many runs

Boot a clone for each task from your code. Every clone is a separate desktop, so runs never share state.

pause & resume

Stop mid-run, pick up later

Pause freezes a desktop exactly where it is. Resume brings back the same windows, mid-task.

human in the loop

A person can step in

Your agent drives with its own cursor. Open the same desktop in your browser to watch it work, or grab your own cursor and take over.

agent-run.sh
# Boot a fresh copy of your snapshot
SID=$(curl -sS -X POST https://api.cyqle.in/v1/sessions \
  -H "Authorization: Bearer $CYQLE_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"snapshotId\":\"$SNAPSHOT\"}" | jq -r .data.id)
until curl -sS "https://api.cyqle.in/v1/sessions/$SID" \
    -H "Authorization: Bearer $CYQLE_KEY" \
  | jq -e '.data.status == "RUNNING"' >/dev/null
do sleep 2; done

# Click with your agent's own cursor
curl -X POST \
  "https://api.cyqle.in/v1/sessions/$SID/input/mouse" \
  -H "Authorization: Bearer $CYQLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action":"click","x":640,"y":360,
       "pointerId":"my-agent"}'

# Freeze it mid-run, resume later
curl -X PUT "https://api.cyqle.in/v1/sessions/$SID/pause" \
  -H "Authorization: Bearer $CYQLE_KEY"

REST API

Drive the desktop over HTTP

Every desktop is an API endpoint. Your agent reads the screen, moves its own cursor, types, and runs shell commands. Your code decides when to clone a desktop and when to pause or close it.

The calls your agent uses most

  • POST/v1/sessionsBoot a desktop, from a snapshot if you like
  • GET/v1/sessions/{id}/capture/{w}/{h}/{x}/{y}Capture any region of the screen
  • POST/v1/sessions/{id}/input/mouseMove, click, drag, scroll
  • POST/v1/sessions/{id}/input/keyboardType text or press key combinations
  • POST/v1/sessions/{id}/execRun a shell command and read the output
  • POST/v1/snapshotsSnapshot a configured desktop
  • PUT/v1/sessions/{id}/pauseFreeze it; PUT …/resume picks it back up
  • DELETE/v1/sessions/{id}Close the desktop

How a run works

  1. 1

    Set it up once

    Open a desktop, install your agent and its tools, and sign in to what it needs. Then take a snapshot.

  2. 2

    Run it from code

    Boot a copy of the snapshot for each task. Your agent works through the API, with its own cursor.

  3. 3

    Step in when it asks

    When your agent needs a person, for a 2FA code or a judgment call, open the desktop and do that step yourself. Then hand it back.

Included in every paid desktop

Rather not build the agent yourself?

Factor, Cyqle's co-driving AI agent, works in the same desktops. Describe the task in plain words and watch it work at its own cursor.

Meet Factor

Start free. Pay per desktop.

Free

$0no credit card

  • 60-minute sessions
  • 1 vCPU · 1 GB RAM
  • API access
  • Starts clean every session
  • No snapshots
  • Factor not included
Start a free desktop

Paid plans

from $6per desktop / month

  • No session time limit
  • Persistent storage and snapshots
  • Up to 8 vCPU · 16 GB RAM
  • Factor, with monthly AI credits
Compare plans

Questions developers ask

Give your agent its own computer

Boot a desktop and install your agent. The free tier needs no credit card.

Start a free desktop

Paid plans from $6/month per desktop.