Browse docs

Services

Cloud Computer

Linux desktops in the cloud for AI agents: start one per user, watch it live in your app, and drive it with screenshots, clicks, typing and shell commands.

How it works

Click Deploy on the Cloud Computer card. You get COMPUTERS_API_URL and COMPUTERS_API_KEY. From your server, ask for a computer for one of your users, show its screen in your app, and let your AI agent use it: take a screenshot, send it to a model, then click, type or run a command with what the model answers.

  • Each computer is a Linux desktop (Debian with Xfce) with Google Chrome as its default browser, Chromium, a terminal and a file system of its own, running in an isolated sandbox.
  • Give each of your users their own computer by passing your id for them as userId. A computer keeps its user's files, browser sign-ins and screen, so never share one between different people.
  • Asking for a userId that already has a computer starts that computer and returns it, so your app does not need to store computer ids.
  • Try computers from the dashboard too: Cloud Computer → New computer opens its live screen, and you can use it with your mouse and keyboard or try agent actions.
  • Keep the key on your server. It is not meant for browser code.

Start a computer and show its screen

From your server
TypeScript
const api = (path: string, body?: unknown) =>
  fetch(`${process.env.COMPUTERS_API_URL}${path}`, {
    method: body === undefined ? "GET" : "POST",
    headers: {
      authorization: `Bearer ${process.env.COMPUTERS_API_KEY}`,
      "content-type": "application/json",
    },
    body: body === undefined ? undefined : JSON.stringify(body),
  }).then((r) => r.json());

// Creates and starts this user's computer, or starts the one they have.
const computer = await api("/computers", { userId: user.id, size: "basic" });

// A link to the live desktop, for an <iframe> in your app. It works for an hour.
const { url } = await api(`/computers/${computer.id}/preview`, { viewOnly: false });

Pass viewOnly: true to let your user watch the agent without taking over the mouse and keyboard. Ask for a new link when the old one expires. When your user leaves, POST /computers/:id/disconnect ends every live view at once, so a link they kept stops working.

Let an AI agent use it

Each step of a computer-use agent is one POST /computers/:id/actions request. Screenshots come back as a base64 PNG to send to your model; positions are pixels from the top left of the screen (1280 × 800).

Look, then act
TypeScript
const act = (action: object) => api(`/computers/${computer.id}/actions`, action);

const shot = await act({ type: "screenshot" }); // { image, mime, cursor }
await act({ type: "click", x: 640, y: 400 }); // button: "left" | "right" | "middle", double: true
await act({ type: "move", x: 100, y: 200 });
await act({ type: "drag", x: 100, y: 200, toX: 400, toY: 200 });
await act({ type: "scroll", x: 640, y: 400, direction: "down", amount: 3 });
await act({ type: "type", text: "hello world" });
await act({ type: "key", key: "enter", modifiers: [] });
await act({ type: "hotkey", keys: "ctrl+l" });
const out = await act({ type: "exec", command: "ls ~", timeout: 30 }); // { exitCode, output }

Anthropic's and OpenAI's computer-use tools both work this way: turn each tool call the model makes into one of these actions, and send back the next screenshot.

API

RequestWhat it does
GET /computersLists the project's computers. ?userId= keeps one user's.
POST /computers{ userId?, name?, size? }. Creates and starts a computer (201), or starts the one this userId has (200).
GET /computers/:idIts state: creating, running, stopping, stopped, archived or error.
POST /computers/:id/startStarts a stopped or archived computer.
POST /computers/:id/stopStops it. Files are kept, and nothing is charged while stopped.
POST /computers/:id/preview{ viewOnly? }. A link to the live screen, for an hour.
POST /computers/:id/disconnectEnds every live view of the screen: links given out stop working and open sessions close. The computer keeps running.
POST /computers/:id/actionsOne agent action, as above.
DELETE /computers/:idDeletes the computer and its files.
  • Send the key as Authorization: Bearer <key>. Errors are { "error": { "message" } } with a 4xx or 5xx status.
  • Starting is refused with 402 when the account is out of credits, at its spend cap or past its monthly computer allowance, and with 403 when the project keeps as many computers as the plan allows.

Sizes, prices and limits

SizeResourcesPrice
Basic1 vCPU · 2 GB RAM · 10 GB disk$0.10 per hour
Medium2 vCPU · 4 GB RAM · 10 GB disk$0.20 per hour
Large4 vCPU · 8 GB RAM · 10 GB disk$0.40 per hour

Only running time is charged, counted by the second, from your credits. A stopped computer keeps its files at no charge. Usage is charged every hour and shows as Cloud Computer on Credits & Billing.

FreeProScale
Computers per project1050100
Running at once, per account350100
SizesBasic, MediumBasic, MediumBasic, Medium, Large
Stops after no activity for (default)3 minutes10 minutes10 minutes
Longest idle time you can set10 minutes60 minutes120 minutes
Longest run at once30 minutesNo limitNo limit
Most spent on computers per account per month$1.00 a monthYour credits and spend capYour credits and spend cap
  • A computer with no mouse, keyboard or API activity stops by itself. Change how long it waits under Cloud Computer → Settings, from 1 minute up to your plan's longest; running computers take the new time at once.
  • Stopped for a day, a computer is archived: its files are kept and the next start takes a little longer.
  • Running computers are stopped when the account runs out of credits or reaches its monthly computer allowance.

Use with AI

Let your coding agent add cloud computers for your AI agents.

  1. 1

    Open a terminal in your app's folder and start Claude Code.

    Terminal
    Shell
    claude
  2. 2

    Paste the prompt below and press Enter. Approve the file edits and commands it asks about.

  3. 3

    Optional: save a short note about CloudHike.dev in CLAUDE.md so every session knows about it.

PROMPT
Read https://cloudhike.dev/docs/md/computers. Add a CloudHike.dev cloud computer for each signed-in user: from server code only, call COMPUTERS_API_URL with COMPUTERS_API_KEY, POST /computers with the user's id as userId, show POST /computers/:id/preview's url in an iframe, and run the agent loop with POST /computers/:id/actions.

Replace the placeholders in <angle brackets> before sending. Always review what the agent changes.