Get a computer.

Hand it to your agent, or make the calls yourself.

With your agent

Paste one prompt into Claude Code, Codex or Cursor. It gets you a key, tells you what each call does and runs a first task.

By hand

One call tells you where you stand and what to run next. Or follow the steps below.

Create an account
01

Set your key

Any key works. Get a trial key with one call and no email, or make one in the dashboard.

curl -X POST https://gateway.cerver.ai/v2/auth/temp-signup
export CERVER_API_KEY=ck_...

Lost at any point? This call says where you are and gives the next call, ready to run.

curl https://gateway.cerver.ai/v2/start \
  -H "Authorization: Bearer $CERVER_API_KEY"
02

Connect your provider

Send your E2B key once. Sandboxes then start on your own account and E2B bills you directly, at its own price. Vercel, Daytona, Modal and Boat connect the same way.

curl -X POST https://gateway.cerver.ai/v2/account/providers \
  -H "Authorization: Bearer $CERVER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "provider": "e2b", "credentials": { "api_key": "e2b_..." } }'
03

Get a computer and run on it

This starts a sandbox and runs a command in it.

curl -X POST https://gateway.cerver.ai/v2/sessions \
  -H "Authorization: Bearer $CERVER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "session_name": "hello-cerver", "compute": { "provider": "e2b" } }'

curl -X POST https://gateway.cerver.ai/v2/sessions/SESSION_ID/run \
  -H "Authorization: Bearer $CERVER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "code": "uname -a; nproc; free -h" }'
04

Add your own machine

One command, and your Mac or server is a computer on your account.

curl -fsSL https://cerver.ai/install.sh | bash
05

Move the session to it

Same session, different machine. The history comes along. Take the id from GET /v2/computes.

curl -X POST https://gateway.cerver.ai/v2/sessions/SESSION_ID/change-compute \
  -H "Authorization: Bearer $CERVER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "compute": { "compute_id": "comp_..." } }'