Machines.
What a box is made of. The sizes and the disk each one carries, Ubuntu 24.04 on a dedicated x86_64 virtual machine, what comes preinstalled, the Prized processes that run beside your work, and how the network reaches it.
Sizes
| Size | Specs | Disk | Awake | Asleep | Plan that runs it 24/7 |
|---|---|---|---|---|---|
| Nano | 2 vCPU / 2 GB | 40 GB | $0.014 an hour | $0.004 an hour | $10 a month |
| Micro | 2 vCPU / 4 GB | 80 GB | $0.034 an hour | $0.008 an hour | $25 a month |
| Extra Small | 2 vCPU / 8 GB | 150 GB | $0.068 an hour | $0.015 an hour | $50 a month |
| Small | 4 vCPU / 16 GB | 300 GB | $0.137 an hour | $0.030 an hour | $100 a month |
| Medium | 8 vCPU / 32 GB | 500 GB | $0.342 an hour | $0.050 an hour | $250 a month |
| Large | 16 vCPU / 64 GB | 1 TB | $0.685 an hour | $0.100 an hour | $500 a month |
| Extra Large | 32 vCPU / 128 GB | 2 TB | $1.370 an hour | $0.200 an hour | $1,000 a month |
A box is one dedicated virtual machine in the size you pick, and the size decides three things at once: the vCPUs and memory, the disk it is born with, and the hourly rate. Pick it by label or short name, prized box new --size Small (xs, s, m, l, xl, or the ids nano, micro, lite, flow, pro, max, ultra all work), or from the create form; change it later with a resize. Rates, the plan ladder, and the four-hour balance check are on Billing.
- Nano and Micro are burstable. They run on burstable instances sized for editors, agents, and small dev servers rather than sustained full-CPU load; Extra Small and up run on fixed-performance machines.
- Memory decides what a pause keeps. Nano through Small hibernate (RAM is written to the disk and processes resume where they were); Medium and larger stop clean. See Pause and resume.
- No GPU on any size.
Disk
One encrypted volume is the root and the only disk: your home directory, Docker images, and the system all live on it.
| Fact | Detail |
|---|---|
| Type | AWS EBS gp3 at its baseline performance; no extra IOPS or throughput are provisioned for any size |
| Encryption | Always on, with the account's default EBS key. A snapshot inherits it, and so does every box restored from one |
| Size | The Disk column above is the floor a size is born with, 40 GB on a Nano to 2 TB on an Extra Large |
| Growing | Sizing up grows the disk during the same restart, and the filesystem is expanded on every boot, so the space is there when the box comes back (Resize) |
| Shrinking | Never. A box that kept a bigger disk than its size normally has keeps paying that disk's sleep rate, and a snapshot restores only into a size whose disk holds it (Restore) |
| Paused | The disk stays, metered at the sleep rate. After 14 days paused it is parked as a snapshot and the box reads deep sleep (States) |
| Snapshots | Block-level, incremental images of this disk, taken while the box runs (Snapshots) |
Operating system
Ubuntu 24.04 LTS on x86_64, from Canonical's current server image at the time the box image was built, fully upgraded then. It is your machine: the login user has passwordless sudo, is in the docker group, and can apt install whatever is missing.
- Your login user is your first name: lowercased, accents folded, leading digits dropped, letters, digits, and hyphens only, up to 31 characters (
Josésigns in asjose,3jayasjay). When nothing usable survives, or the name collides with a system account such asgitornode, the user isdoppel; a box restored or forked from a snapshot keeps its source box's user, because the home directory on that disk belongs to it.prized box infoshows the user andprized sshuses it. - Boxes from before login users existed sign in as
ubuntu. - Ubuntu's restriction on unprivileged user namespaces stays on.
bwrapcarries the AppArmor grant it needs, so the sandboxes Claude Code and Codex run commands in work; everything else keeps the distro default.
Preinstalled software
Everything below is baked into the box image, so a fresh box has it from its first boot. Nothing is signed in: your agents' credentials come from your machine.
| What | On the box | How it got there, and how it stays current |
|---|---|---|
| Docker Engine, Compose, Buildx | docker, docker compose, docker buildx | Docker's apt repository; the daemon starts at boot; your user is in docker, so no sudo |
| Claude Code | claude | Anthropic's installer, per user under ~/.local; updates itself in place |
| Codex CLI | codex, with codex-code-mode-host beside it | OpenAI's installer at a release pinned when the image was built; per user; updates itself in place |
| GitHub CLI | gh | GitHub's apt repository |
| Compilers and build tools | gcc, g++, make, pkg-config, git | apt (build-essential) |
| Python | python3, pip, venv | Ubuntu's packages |
| Shell tools | tmux, mosh, rg, fd, jq, htop, rsync, sqlite3, zip, unzip, zstd, curl, wget | apt |
| Desktop stack | XFCE, Xvfb, x11vnc, Google Chrome, xdotool, wmctrl | apt, Chrome from Google's repository; nothing starts until you open the desktop |
| Sandboxing | bwrap (bubblewrap) | apt, with the AppArmor profile above |
| Sync agent | Mutagen's agent | Not in the image: the box fetches it on the first prized sync add or prized setup (Sync) |
Not preinstalled: Node.js, Go, Rust, Homebrew, databases, and the rest of a working environment. The environment step of prized setup (prized env on its own) scans your machine and installs the versions you actually have, Node through fnm, Python versions through uv, Go and Rust, Homebrew formulae as apt packages, Docker images pulled on the box; see Bring your environment. For a first boot that repeats across boxes, put repos, a setup script, and env vars in an environment.
Architecture and virtualization
| Fact | Detail |
|---|---|
| CPU architecture | x86_64 (amd64) only; no arm64 sizes. prized env rebuilds or re-pulls arm64-only Docker images for amd64 |
| Virtualization | One EC2 virtual machine per box with its own kernel; not a container, not a shared host. Docker inside works as on any Linux machine |
| Nested virtualization | Off. KVM is not available inside a box |
| GPU | None |
| Instance metadata | IMDSv2 only and closed to everything but root, containers included; a box carries no IAM role, so nothing you run finds AWS credentials there (Security) |
Each size maps to one EC2 instance type. When AWS is short of that type in a zone, the launch tries a sibling with the same vCPUs and memory, then a larger type, in every zone of the region, before giving up; you keep the size and the rate you picked either way.
| Size | Instance type |
|---|---|
| Nano | t3a.small (burstable) |
| Micro | t3a.medium (burstable) |
| Extra Small | m6a.large |
| Small | m6a.xlarge |
| Medium | m6a.2xlarge |
| Large | m6a.4xlarge |
| Extra Large | m6a.8xlarge |
Regions
| Region | AWS id | In the CLI |
|---|---|---|
| US West (Oregon) | us-west-2 | oregon, the default |
| US West (California) | us-west-1 | california |
A box lives in one region and can move; the move, what it keeps, and the four-per-day cap are on Regions. The rate for a size is the same in both, and a snapshot stays in the region its box was in.
What runs on the box
Beside your own processes, a fresh box runs a small set of Prized services. They are ordinary systemd units you can inspect (systemctl status prized-agent).
| Process | Runs as | Listens on | What it does | What it can see |
|---|---|---|---|---|
prized-agent | Your login user, pinned by a per-box systemd drop-in | 7377 on the tunnel address only | Lists listening ports and the process behind each, samples CPU, memory, disk, and network, lists tmux sessions, judges idleness for auto-pause, relays loopback-only ports so they can be mirrored, and updates itself | A read-only view of the system and of the process table; capped at 256 MB of memory and half a CPU; never pauses the box itself |
| The mini agent | root | Nothing; it only calls out | Sends a heartbeat to the control plane every 15 seconds, keeps the tunnel's peer list and your registered device keys current, and applies environment vars and secret files within seconds of a change | Talks only to the control plane |
prized-secretsd | root | 127.0.0.1:7379, loopback only | The secrets broker: swaps a placeholder for the real value on requests to the hosts you allowlisted | Holds secret values in memory only; does nothing until a secret is mounted |
sshd | root | 22, reachable only through the tunnel (no public rule opens it) | Your sessions, sync, mount, prized exec, and every SSH-speaking tool | Accepts the Prized user CA's short-lived certificates, the device keys Prized registers for you (/etc/ssh/doppel_fallback_keys/<user>), and any key you add to ~/.ssh/authorized_keys |
WireGuard wg0, doppel-wsgw | kernel, root | udp/51820 and tcp/443, the only two ports open to the internet | The tunnel endpoint, and its websocket fallback | Encrypted tunnel traffic only |
On demand: the Mutagen agent while a project syncs, the desktop stack while a desktop is open, and three helper scripts the first remote prompt installs.
What reaches Prized from these is the box's telemetry, not your work: CPU, memory, swap, load, network and disk rates, mount points and interface names, listening ports (up to 32), the top processes by CPU and by memory (up to 20, with their command lines), the idle state, and component versions; tmux session names are read over the tunnel when you ask, never reported. File contents move between your machine and the box over SSH, secret values never leave the broker's memory, and your agents' sign-ins stay on the disk. The full telemetry statement is on Security; retention windows are on Data retention.
Networking
- Inbound: only the tunnel's two ports, WireGuard on
udp/51820and the websocket fallback ontcp/443, on the box's own public IPv4 address. - SSH: never on the internet. You reach it, and every port you run, through the tunnel with short-lived certificates (Ports, Sessions, Credentials).
- Public ports: none. A box cannot open a port to the internet; to share a running server, mirror it to your machine and share from there.
- Outbound: not filtered.
- Public IP: not stable, so nothing should pin to it. It changes on a pause and on a region move, and
prized sshfollows the box.
Something unclear or out of date?
Boxes
A box is a dedicated Linux machine in the size you pick, from Nano to Extra Large. Create and manage boxes from the CLI or the dashboard; connect to them with the CLI.
Snapshots
Point-in-time images of a box's disk. Take one by hand or on a schedule, restore it into a new box, fork a running box in one step, and save named templates new boxes start from.