Prized docs

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

SizeSpecsDiskAwakeAsleepPlan that runs it 24/7
Nano2 vCPU / 2 GB40 GB$0.014 an hour$0.004 an hour$10 a month
Micro2 vCPU / 4 GB80 GB$0.034 an hour$0.008 an hour$25 a month
Extra Small2 vCPU / 8 GB150 GB$0.068 an hour$0.015 an hour$50 a month
Small4 vCPU / 16 GB300 GB$0.137 an hour$0.030 an hour$100 a month
Medium8 vCPU / 32 GB500 GB$0.342 an hour$0.050 an hour$250 a month
Large16 vCPU / 64 GB1 TB$0.685 an hour$0.100 an hour$500 a month
Extra Large32 vCPU / 128 GB2 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.

FactDetail
TypeAWS EBS gp3 at its baseline performance; no extra IOPS or throughput are provisioned for any size
EncryptionAlways on, with the account's default EBS key. A snapshot inherits it, and so does every box restored from one
SizeThe Disk column above is the floor a size is born with, 40 GB on a Nano to 2 TB on an Extra Large
GrowingSizing 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)
ShrinkingNever. 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)
PausedThe disk stays, metered at the sleep rate. After 14 days paused it is parked as a snapshot and the box reads deep sleep (States)
SnapshotsBlock-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 as jose, 3jay as jay). When nothing usable survives, or the name collides with a system account such as git or node, the user is doppel; 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 info shows the user and prized ssh uses it.
  • Boxes from before login users existed sign in as ubuntu.
  • Ubuntu's restriction on unprivileged user namespaces stays on. bwrap carries 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.

WhatOn the boxHow it got there, and how it stays current
Docker Engine, Compose, Buildxdocker, docker compose, docker buildxDocker's apt repository; the daemon starts at boot; your user is in docker, so no sudo
Claude CodeclaudeAnthropic's installer, per user under ~/.local; updates itself in place
Codex CLIcodex, with codex-code-mode-host beside itOpenAI's installer at a release pinned when the image was built; per user; updates itself in place
GitHub CLIghGitHub's apt repository
Compilers and build toolsgcc, g++, make, pkg-config, gitapt (build-essential)
Pythonpython3, pip, venvUbuntu's packages
Shell toolstmux, mosh, rg, fd, jq, htop, rsync, sqlite3, zip, unzip, zstd, curl, wgetapt
Desktop stackXFCE, Xvfb, x11vnc, Google Chrome, xdotool, wmctrlapt, Chrome from Google's repository; nothing starts until you open the desktop
Sandboxingbwrap (bubblewrap)apt, with the AppArmor profile above
Sync agentMutagen's agentNot 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

FactDetail
CPU architecturex86_64 (amd64) only; no arm64 sizes. prized env rebuilds or re-pulls arm64-only Docker images for amd64
VirtualizationOne 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 virtualizationOff. KVM is not available inside a box
GPUNone
Instance metadataIMDSv2 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.

SizeInstance type
Nanot3a.small (burstable)
Microt3a.medium (burstable)
Extra Smallm6a.large
Smallm6a.xlarge
Mediumm6a.2xlarge
Largem6a.4xlarge
Extra Largem6a.8xlarge

Regions

RegionAWS idIn the CLI
US West (Oregon)us-west-2oregon, the default
US West (California)us-west-1california

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).

ProcessRuns asListens onWhat it doesWhat it can see
prized-agentYour login user, pinned by a per-box systemd drop-in7377 on the tunnel address onlyLists 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 itselfA 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 agentrootNothing; it only calls outSends 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 changeTalks only to the control plane
prized-secretsdroot127.0.0.1:7379, loopback onlyThe secrets broker: swaps a placeholder for the real value on requests to the hosts you allowlistedHolds secret values in memory only; does nothing until a secret is mounted
sshdroot22, reachable only through the tunnel (no public rule opens it)Your sessions, sync, mount, prized exec, and every SSH-speaking toolAccepts 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-wsgwkernel, rootudp/51820 and tcp/443, the only two ports open to the internetThe tunnel endpoint, and its websocket fallbackEncrypted 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/51820 and the websocket fallback on tcp/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 ssh follows the box.

Something unclear or out of date?

On this page