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
userIdthat 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
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).
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
| Request | What it does |
|---|---|
GET /computers | Lists 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/:id | Its state: creating, running, stopping, stopped, archived or error. |
POST /computers/:id/start | Starts a stopped or archived computer. |
POST /computers/:id/stop | Stops 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/disconnect | Ends every live view of the screen: links given out stop working and open sessions close. The computer keeps running. |
POST /computers/:id/actions | One agent action, as above. |
DELETE /computers/:id | Deletes 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
| Size | Resources | Price |
|---|---|---|
| Basic | 1 vCPU · 2 GB RAM · 10 GB disk | $0.10 per hour |
| Medium | 2 vCPU · 4 GB RAM · 10 GB disk | $0.20 per hour |
| Large | 4 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.
| Free | Pro | Scale | |
|---|---|---|---|
| Computers per project | 10 | 50 | 100 |
| Running at once, per account | 3 | 50 | 100 |
| Sizes | Basic, Medium | Basic, Medium | Basic, Medium, Large |
| Stops after no activity for (default) | 3 minutes | 10 minutes | 10 minutes |
| Longest idle time you can set | 10 minutes | 60 minutes | 120 minutes |
| Longest run at once | 30 minutes | No limit | No limit |
| Most spent on computers per account per month | $1.00 a month | Your credits and spend cap | Your 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
Open a terminal in your app's folder and start Claude Code.
claude - 2
Paste the prompt below and press Enter. Approve the file edits and commands it asks about.
- 3
Optional: save a short note about CloudHike.dev in CLAUDE.md so every session knows about it.
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.
