Skip to content
Docs / Quickstart Pages

Quickstart

Four steps, a few minutes, with the CLI. Rather use curl? With curl and an API key does the same over the API.

1. Sign up

Create an account at raw.computer/sign-up and verify your email. You get an org (it holds the wallet) with one workspace called default (it holds keys and sandboxes). See Concepts for how the two relate.

2. Install the CLI and sign in

curl -fsSL https://raw.computer/install.sh | sh
raw login

raw login shows a code and opens the console, where you check the code and approve it. The CLI keeps a personal token that acts as you, in your workspaces, and keeps itself up to date.

3. Check who you are

raw whoami
Person     ada <ada@example.com> (usr_DEMJ4NCDUxm2h7orD6T6WkB16m74Tvx8)
Token      raw CLI on laptop (key_01m6xxge1kf83t1tk6pss3awgm, personal; stored by raw login)
Workspace  default · Default (ws_01m6xxgde9f2c9q3y3gn9e8zdp) as admin
Org        ada (org_01m6xxgde9eaer8hxj9q8kx58d)
API        https://raw.computer (version 2026-11-08)

Add --json to any command for the API's own JSON (here, the answer of GET /v1/me).

4. Create a sandbox

raw sandboxes create --class std --size 4x8

During early access no cell is open to customers, so this is the answer you get today:

raw: No cell serves std yet: raw.computer is in early access. [capacity_unavailable]
  next: Read the early-access note; sandbox creates open when the first cell does.
  see:  https://raw.computer/docs/limits#early-access
  docs: https://raw.computer/docs/errors#capacity_unavailable

It is honest on purpose: a request that no cell can serve is refused rather than queued, so nothing waits for capacity that does not exist, and the CLI exits 1. Once cells open, the same command starts a sandbox, or queues it with its position and ETA (Concepts › The queue).

With curl and an API key

In the console, open API keys, give the key a name and choose Create key. The key starts with rc_live_ and is shown once; only its hash is kept. A key acts in one workspace, as developer (reads and writes, the default) or viewer (reads), and never at org level. Keep it in an environment variable:

export RAW_API_KEY="rc_live_…"

Check who you are:

curl https://raw.computer/v1/me \
  -H "Authorization: Bearer $RAW_API_KEY" \
  -H "Raw-Version: 2026-11-08"
{
	"object": "me",
	"user": {
		"object": "user",
		"id": "usr_DEMJ4NCDUxm2h7orD6T6WkB16m74Tvx8",
		"name": "ada",
		"email": "ada@example.com"
	},
	"api_key": {
		"object": "api_key",
		"id": "key_01m6xxge1kf83t1tk6pss3awgm",
		"name": "laptop",
		"kind": "workspace",
		"relation": "developer"
	},
	"workspace": {
		"object": "workspace",
		"id": "ws_01m6xxgde9f2c9q3y3gn9e8zdp",
		"code": "default",
		"name": "Default",
		"org": { "object": "org", "id": "org_01m6xxgde9eaer8hxj9q8kx58d", "name": "ada" },
		"relation": "developer"
	},
	"raw_version": "2026-11-08"
}

Raw-Version pins the API version your code was written against. Leave it out and the request is answered in the version your key is pinned to: the one that was current on the day you made the key. See API › Versions.

Create a sandbox:

curl https://raw.computer/v1/sandboxes \
  -H "Authorization: Bearer $RAW_API_KEY" \
  -H "Raw-Version: 2026-11-08" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{ "class": "std", "size": "4x8" }'
HTTP/1.1 503 Service Unavailable
Content-Type: application/json; charset=utf-8
Raw-Version: 2026-11-08

{
  "error": {
    "code": "capacity_unavailable",
    "message": "No cell serves std yet: raw.computer is in early access.",
    "next_step": {
      "message": "Read the early-access note; sandbox creates open when the first cell does.",
      "url": "https://raw.computer/docs/limits#early-access"
    },
    "docs": "https://raw.computer/docs/errors#capacity_unavailable"
  }
}

An error never holds on to its Idempotency-Key, so the same request can be sent again later. Once cells open, the same call answers 201 with the sandbox starting, or 202 with it queued and its position and ETA.

The CLI takes the same key: RAW_API_KEY=rc_live_… raw sandboxes list.

Next

  • CLI: every command, --json, and using it in CI.
  • Agents: raw agent setup gives Claude Code, Codex and Cursor the skill and the MCP tools.
  • Concepts: orgs, workspaces, sandboxes and the queue.
  • API: every endpoint, idempotency and money.
  • Errors: every code and its next step.