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

# Machine Capabilities

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

Every box 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

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

|              | `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                                |
| Storage      | 40 GB SSD, at least 12 GB for your data | 80 GB SSD, at least 50 GB for your data | 100 GB SSD, at least 70 GB for your data | 100 GB SSD, at least 70 GB for your data |
| Machine time | 0.5x                                    | 1x                                      | 2x                                       | 50/9x, or \$0.20/hour                    |
| Architecture | x86\_64                                 | x86\_64                                 | x86\_64                                  | x86\_64                                  |

Storage is a floor, not a fixed number: a box is placed on whichever machine of its
size is available, and some are roomier than others. A `large` box gets at least
100 GB of disk and often 160 GB. Plan against the floor.

`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}
  box new
  box new --type small
  box new --type large
  ```

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

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

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

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

### Changing size

Pass `--type` to `resume` or `fork` to move a box 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 box in place; fork leaves the source box untouched and applies the new size to the copy.

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

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

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

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

Growing always works. Shrinking is rejected with `type_too_small` when the box holds more data than
the smaller machine can take, and the box is left exactly as it was, so a refused resize never
costs you the box. Delete data and let the box 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](/box/billing) for what each rate costs.

<Note>
  When a data centre is out of stock for your type, we place the box 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 box 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                                          |
| `box`                    | Box 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; `box 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](/box/snapshots#docker-builds-across-resume-and-fork) |
| `google-chrome-stable` | Chrome browser and headless browser runtime                                                                                                                  |
| `ffmpeg`               | Media processing                                                                                                                                             |

## Related

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