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

# Image Contents

> Look up what the standard image, the agents image, and the Actions runner image contain, which runs when, and how each is selected.

BoxRouter ships three images. Which one runs depends on what you start, not on the provider. Versions below are read from the published images, so they match what a new sandbox gets.

## Which Image Runs

| Image | Runs When | Select It With |
| - | - | - |
| Standard | A sandbox request names no `image` | Omit `image` |
| Agents | You [launch a catalog agent](https://boxrouter.ai/docs/launch/agents.md) | `boxrouter launch AGENT` |
| Actions runner | A GitHub Actions job runs on a BoxRouter label | `runs-on: boxrouter-ubuntu-24.04` |
| Actions runner, full | The label ends in `-full` | `runs-on: boxrouter-ubuntu-24.04-full` |

An Actions job never runs the standard image, and `image` does not apply to it. The runner image and the standard image are separate builds with different tools.

## Standard Image

Ubuntu 24.04 on `linux/amd64`, with an unprivileged `user`, passwordless `sudo`, and a writable `/workspace`.

| Tool | Version |
| - | -: |
| Python | 3.12.3 |
| pip | 24.0 |
| Node.js | 24.22.1 |
| npm | 11.19.1 |
| Git | 2.43.0 |
| curl | 8.5.0 |
| sudo | 1.9.15 |
| Bash | 5.2.21 |
| GNU coreutils | 9.4 |

Python packages install into a virtual environment that `user` owns, and `npm install -g` installs under the user's home, so neither needs `sudo`.

It does not include `jq`, `wget`, a C compiler, or Docker. Install them with `sudo apt-get install`, or [bring your own image](https://boxrouter.ai/docs/images.md#bring-your-own-image).

A route can run commands as another user, so read `$HOME` and `id -un` instead of hard-coding either.

## Agents Image

The standard image plus the ten catalog agents, each installed at a pinned version and checked at build time. A [catalog launch](https://boxrouter.ai/docs/launch/agents.md) starts from it, so the agent is ready in seconds instead of installing at launch.

| Agent | Command | Version |
| - | - | -: |
| `claude-code` | `claude` | 2.1.316 |
| `codex` | `codex` | 0.166.0 |
| `cursor` | `agent` | 2026.11.05-86047df |
| `hermes` | `hermes` | 0.21.5 |
| `junie` | `junie` | 1468.30 |
| `kilocode` | `kilocode` | 7.8.25 |
| `openclaw` | `openclaw` | 2026.10.9 |
| `opencode` | `opencode` | 1.19.5 |
| `pi` | `pi` | 0.73.1 |
| `t3code` | `t3` | 0.1.6 |

Agents live in the user's `~/.local/bin`, which leads `PATH`. A launch that cannot use this image falls back to the agent's own setup commands, which install the same agent when it starts. A [manifest](https://boxrouter.ai/docs/launch/manifest.md) for your own agent sets `image` like any other sandbox request.

## Actions Runner Image

Ubuntu 24.04 on `linux/amd64`, running one GitHub runner as the non-root user `runner`. It is smaller than a GitHub-hosted image, so install what is missing.

| Tool | Version |
| - | -: |
| Node.js (default) | 22.23.4 |
| npm | 10.9.9 |
| Corepack | 0.36.0 |
| Python | 3.12.3 |
| Git | 2.43.0 |
| curl | 8.5.0 |
| jq | 1.7 |
| GitHub CLI | 2.102.0 |
| GCC | 13.3.0 |
| GNU Make | 4.3 |
| Python in the tool cache | 3.15.2 |
| Go in the tool cache | 1.24.13, 1.26.10 |
| Node.js in the tool cache | 22.23.4, 24.22.2 |

The tool cache holds the versions `actions/setup-node`, `actions/setup-python`, and `actions/setup-go` resolve first, so a loose request such as `3.x` needs no download. Other versions download when the job asks. `Node.js (default)` is the version on `PATH` before any setup action runs.

The basic image has no Docker, so `docker build`, container actions, and service containers fail. The `-full` label adds the tools below on the same size.

| Added By `-full` | Version |
| - | -: |
| Docker Engine | 29.8.2 |
| Buildx | 0.37.1 |
| Compose | 5.6.0 |
| OpenJDK | 17.0.20.1 |
| Rust | 1.98.1 |
| Cargo | 1.98.1 |
| Android SDK platform | 34 |

The full image also includes `iptables`. Until BoxRouter verifies it for your workspace, [Actions readiness](https://boxrouter.ai/docs/reference/get-actions-readiness.md) reports `profile_unavailable` and jobs that use it stay queued. [Runners](https://boxrouter.ai/docs/actions/runners.md) lists sizes and limits.

## Updates and Pinning

An image never changes under a running sandbox. BoxRouter moves to a new build by publishing a new digest, and new sandboxes get it. Each build pins its Ubuntu package snapshot and tool versions.

Treat the versions above as the current build, not a promise. When a job needs a tool at a fixed version, pin it yourself: `actions/setup-*` with an exact version for Actions, or your own [image](https://boxrouter.ai/docs/images.md#bring-your-own-image) for sandboxes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.