Every agent
needs a computer.
Descanto gives computer-use agents a persistent Linux desktop that hibernates the instant it's idle and resumes exactly where it left off — tabs, processes, and logins intact. Always there. Pay only when it thinks.
$ descanto wake release-bot woke in 0.5s — 14 tabs, 3 processes, logins intact $ descanto fork release-bot --count 20 20 forks in 4.5s · ~1.4 MB marginal RAM each
How it works
One API call to wake, work, and hibernate — nothing to manage in between.
Create
Create a desktop in one API call — pick a tier, get back a live desktop id.
Work
Your agent works — a full Linux desktop, browser included, streamed live so you can watch or take over.
Hibernate
Hibernate when idle — memory-snapshot preserved, wake in under a second, pay nothing while asleep.
Quickstart
Drive desktops from code or straight from an MCP-compatible agent.
import { Canto } from "@descanto/sdk";
const canto = new Canto({ apiKey }); // or CANTO_API_KEY env var
const d = await canto.desktops.create({ tier: "default", billingMode: "monthly" });
const { stdout } = await d.exec("whoami");
await d.hibernate(); // pay nothing while asleepHow we build
Read the docs →Our slowness never bills you
Descanto meters only while your desktop responds. Cold starts, snapshots, and uploads are on us — and overage is opt-in, never a surprise.
State is the product
Every hibernate captures a full memory snapshot. Restore any generation, fork a running machine, and never lose where an agent left off.
MicroVM boundaries
Every desktop is its own Firecracker microVM — hardware-virtualized isolation, not a shared container pretending to be a computer.
Snapshot-native
Every desktop hibernates as a full memory snapshot — state intact, compute at zero while it sleeps.
Org-scoped API
Every by-id route is org-scoped end to end — a key only ever sees its own org's desktops.
Honest operation handles
Waking, hibernating, and destroying return an operation you can poll — no guessing at state.