> ## Documentation Index
> Fetch the complete documentation index at: https://docs.boat.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Machine Capabilities

> What's pre-installed on every sandbox and what you can do with it.

Every sandbox is a Linux VM with a curated set of tools available from the moment you SSH in. Nothing to install before you start working.

## Machine types

Sandboxes come in four sizes. Pick one with `--type` when you create the sandbox:

|                                        | `small`        | `default`      | `large`        | `xlarge`              |
| -------------------------------------- | -------------- | -------------- | -------------- | --------------------- |
| CPU                                    | 2 shared vCPUs | 4 shared vCPUs | 8 shared vCPUs | 16 shared vCPUs       |
| Memory                                 | 4 GB RAM       | 8 GB RAM       | 16 GB RAM      | 32 GB RAM             |
| New bare-metal root disk               | 70 GiB SSD     | 70 GiB SSD     | 160 GB SSD     | 320 GB SSD            |
| Bare-metal user-data restore budget    | 50 GiB         | 50 GiB         | 120 GB         | 270 GB                |
| Free on a fresh Hetzner sandbox (`df`) | 17 GB          | 53 GB          | 125 GB         | bare metal only       |
| Machine time                           | 0.5x           | 1x             | 2x             | 50/9x, or \$0.20/hour |
| Architecture                           | x86\_64        | x86\_64        | x86\_64        | x86\_64               |

GB means 1,000,000,000 bytes. GiB means 1,073,741,824 bytes. The root disk includes
the operating system and pre-installed tools. The user-data restore budget leaves
space for that image, filesystem overhead, and restore staging. It is not a
filesystem quota or the compressed size of your snapshots.

The preinstalled tools take about 20 GB, which is why the free space differs from the
disk size. The "free" row is what `df` reports on a Hetzner sandbox you just created.

Public-cloud sizes and restore budgets are unchanged. Hetzner primary placements
have 40, 80, and 160 GB roots for `small`, `default`, and `large`, with restore
budgets of 12, 50, and 125 GiB. CloudStack has 50 GB roots for `small` and 100 GB
roots for `default` and `large`, with restore budgets of 20 and 70 GiB respectively.
Emergency Hetzner CPX22 placements have 80 GB roots and a 50 GiB restore budget.
Restores with a known larger footprint skip destinations that cannot hold them.
Available space depends on the machine you receive and what you have installed.

Existing bare-metal disks are not resized. Older `large` and `xlarge` machines
keep 100 GiB roots and 70 GiB restore budgets until replaced. `small` and `default`
keep their existing disk sizes and budgets. `xlarge` remains bare-metal only.

`xlarge` is available on the \$100 monthly plan and above. It has no public-cloud placement. An
Ascii operator must allocate it on bare metal, so contact us before creating, resuming, forking,
or deploying a named snapshot as `xlarge`.

<CodeGroup>
  ```bash CLI theme={null}
  boat new
  boat new --type small
  boat new --type large
  ```

  ```bash curl theme={null}
  curl -sS -X POST "https://boat.dev/api/v1/sandboxes" \
    -H "Authorization: Bearer $BOAT_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"type":"large","ttlSeconds":3600}'
  ```

  ```ts TypeScript theme={null}
  const created = await sandbox.create({ createSandboxRequest: { type: "large", ttlSeconds: 3600 } });
  ```

  ```python Python theme={null}
  created = sandbox.create(CreateSandboxRequest(type="large", ttl_seconds=3600))
  ```
</CodeGroup>

Stopping, resuming and forking all preserve the type by default, and a fork inherits the type of
the sandbox it came from.

### Changing size

Pass `--type` to `resume` or `fork` to move a sandbox to a different size. Both already restore a
snapshot onto a fresh machine, so resizing costs nothing beyond the resume or fork itself. Resume
changes the sandbox in place; fork leaves the source sandbox untouched and applies the new size to the copy.

<CodeGroup>
  ```bash CLI theme={null}
  boat resume bx_23456789 --type large
  boat fork   bx_23456789 --type small
  ```

  ```bash curl theme={null}
  curl -X POST https://boat.dev/api/v1/sandboxes/bx_23456789/resume \
    -H "Authorization: Bearer $BOAT_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"type":"large"}'
  ```

  ```ts TypeScript theme={null}
  await sandbox.resume({ sandboxId: "bx_23456789", resumeRequest: { type: "large" } });
  ```

  ```python Python theme={null}
  sandbox.resume(sandbox_id="bx_23456789", resume_request=ResumeRequest(type="large"))
  ```
</CodeGroup>

Growing always works. Shrinking is rejected with `type_too_small` when the sandbox holds more data than
the smaller machine can take, and the sandbox is left exactly as it was, so a refused resize never
costs you the sandbox. Delete data and let the sandbox snapshot again if you need to shrink past that
point.

Size sets the rate you spend machine time, because you are renting more or less machine. See
[Billing & Limits](/billing) for what each rate costs.

<Note>
  When a data centre is out of stock for your type, we place the sandbox on the closest machine we can
  get rather than leave you waiting. That is rare, and it is always the largest available option; if
  it matters for your workload, stop and start the sandbox to be re-placed.
</Note>

## Pre-installed tools

### AI & automation

| Tool                     | Description                                                                                 |
| ------------------------ | ------------------------------------------------------------------------------------------- |
| `claude`                 | Claude Code CLI, an AI coding assistant                                                     |
| `codex`                  | OpenAI Codex CLI                                                                            |
| `pi`                     | Pi coding agent ([pi.dev](https://pi.dev))                                                  |
| `opencode`               | OpenCode terminal coding agent                                                              |
| `hermes`                 | Hermes Agent by Nous Research (browser tools not preinstalled: `hermes` offers to add them) |
| `openclaw`               | OpenClaw CLI (gateway not started; run `openclaw gateway` yourself if you want it)          |
| `agent` / `cursor-agent` | Cursor CLI agent                                                                            |
| `prime-agent`            | Prime Intellect's Prime Agent                                                               |
| `kimi`                   | Kimi Code CLI by Moonshot AI                                                                |
| `host`                   | Expose localhost services to the internet                                                   |
| `lux`                    | Desktop and browser automation with demo recording                                          |
| `boat`                   | Boat CLI inside the VM                                                                      |

These harnesses are installed system-wide (`/usr/local`, `/opt`), so they cost nothing in your snapshots and come back after a stop/resume. Each one signs in with its own `login` command; `boat prompt` and the Agents page drive `claude` and `codex` today. Installing your own copy (for example `npm i -g` or the vendor installer into `~/.local/bin`) shadows the preinstalled one and is kept in your snapshots as usual.

### Languages & runtimes

| Tool                                        | Description                                                                                                                                                                               |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `node` / `npm` / `nvm`                      | Node.js 24 with npm by default (nvm-managed, also linked into `/usr/local/bin` so non-login shells get it); the apt Node.js 20 remains for compatibility, and nvm installs other versions |
| `bun` / `bunx`                              | Bun JavaScript runtime                                                                                                                                                                    |
| `deno`                                      | Deno JavaScript/TypeScript runtime                                                                                                                                                        |
| `pnpm`                                      | JavaScript package manager                                                                                                                                                                |
| `python3` / `pip` / `venv`                  | Python 3 and standard Python packaging tools                                                                                                                                              |
| `uv`                                        | Python project and dependency manager                                                                                                                                                     |
| `go`                                        | Go toolchain                                                                                                                                                                              |
| `rustc` / `cargo` / `rustup`                | Rust compiler, package manager, and toolchain manager                                                                                                                                     |
| `java` / `mvn` / `gradle`                   | Java/OpenJDK, Maven, and Gradle                                                                                                                                                           |
| `kotlin` / `kotlinc`                        | Kotlin runtime and compiler                                                                                                                                                               |
| `scala` / `scalac` / `sbt`                  | Scala compiler and build tools                                                                                                                                                            |
| `ruby` / `gem` / `bundle`                   | Ruby, RubyGems, and Bundler                                                                                                                                                               |
| `php` / `composer`                          | PHP CLI and Composer                                                                                                                                                                      |
| `erl` / `elixir`                            | Erlang and Elixir                                                                                                                                                                         |
| `dotnet`                                    | .NET SDK                                                                                                                                                                                  |
| `R`                                         | R runtime and development packages                                                                                                                                                        |
| `gcc` / `g++` / `clang` / `cmake` / `ninja` | C/C++ build toolchain                                                                                                                                                                     |

### Version control

| Tool  | Description                                        |
| ----- | -------------------------------------------------- |
| `git` | Git                                                |
| `gh`  | GitHub CLI for PR creation, issue management, etc. |

### Utilities

| Tool                   | Description                                                                                                                                              |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `rg`                   | ripgrep for fast code search                                                                                                                             |
| `jq`                   | JSON processor                                                                                                                                           |
| `curl`                 | HTTP client                                                                                                                                              |
| `docker`               | Container runtime with BuildKit. Layer cache is per machine; see [Docker builds across resume and fork](/snapshots#docker-builds-across-resume-and-fork) |
| `google-chrome-stable` | Chrome browser and headless browser runtime                                                                                                              |
| `ffmpeg`               | Media processing                                                                                                                                         |

## Related

* [Desktop Streaming](/desktop-streaming)
* [Hosting](/hosting)
* [SSH Access](/ssh-access)
