> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.runtype.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.runtype.com/_mcp/server.

# Preinstalled sandbox software

> The languages, packages, command-line tools, and coding agents that every Runtype Sandbox container includes, so your code can use them with no install step.

Every Runtype Sandbox container starts from the same Linux image. The software on this page is installed in that image, so your code can use it without an install step and without network access.

The image backs these features:

* **Custom Tools** that set `sandboxProvider` to `runtype-sandbox`. For more information, see [Creating custom tools](/user-guide/tools/creating-custom-tools).
* **An Agent's Linux computer**, which gives the Agent the `bash`, file, and process tools. For more information, see [Agent Sandbox tools](/user-guide/tools/built-in-tools#agent-sandbox-tools).
* **Sandbox deployments** that run a server at a preview URL. For more information, see [Deploy a sandbox preview](/developer-guides/guides/sandbox-deployments).

Preinstalled software matters most for a custom Tool. Tool code has no network access unless the Tool sets `networkAccess`, so it can't download a package at run time. Code runs as `root`, and an Agent's commands start in `/workspace`.

## Operating system

The image runs Ubuntu 22.04 LTS on the `x86_64` (`amd64`) architecture. The following table lists the build tools that the image adds to the operating system:

| Software        | Version              | Command              |
| --------------- | -------------------- | -------------------- |
| build-essential | Ubuntu 22.04 package | `gcc`, `g++`, `make` |
| OpenSSH client  | Ubuntu 22.04 package | `ssh`, `scp`         |
| xz-utils        | Ubuntu 22.04 package | `xz`                 |

## Languages and runtimes

The following table lists the language runtimes:

| Software | Version   | Command                            | Notes                                                                 |
| -------- | --------- | ---------------------------------- | --------------------------------------------------------------------- |
| Node.js  | `24.21.0` | `node`, `npm`, `npx`               | Runs JavaScript Tools.                                                |
| tsx      | `4.23.15` | `tsx`                              | Runs TypeScript Tools directly, with no compile step.                 |
| Python   | `3.13.15` | `python3`, `python`, `pip`, `pip3` | Runs Python Tools. `pip install` works without a virtual environment. |
| Bun      | `1.3.12`  | `bun`                              | A JavaScript runtime, bundler, and package manager.                   |

## Package managers

The following table lists the package managers. Each one needs network access to download a package:

| Software | Version   | Command | Use it for                                |
| -------- | --------- | ------- | ----------------------------------------- |
| npm      | `11.19.0` | `npm`   | Node.js packages. Ships with Node.js.     |
| pnpm     | `12.6.0`  | `pnpm`  | Node.js packages with a shared store.     |
| uv       | `0.12.20` | `uv`    | Python packages and virtual environments. |

## Python packages

The following Python packages are installed for the default `python3`. Import them directly from a Python Tool:

| Software   | Version  | Import name  |
| ---------- | -------- | ------------ |
| numpy      | `2.5.3`  | `numpy`      |
| pandas     | `3.0.6`  | `pandas`     |
| matplotlib | `3.11.2` | `matplotlib` |
| Pillow     | `12.3.0` | `PIL`        |
| IPython    | `9.17.1` | `IPython`    |

The installation also includes the packages that these depend on, such as `python-dateutil`. matplotlib uses the `Agg` backend, so a plot renders to a file instead of a window. Call `savefig` to write an image to disk.

## Command-line tools

The following table lists the command-line tools:

| Software | Version  | Command        | Use it for                                       |
| -------- | -------- | -------------- | ------------------------------------------------ |
| Git      | `2.34.1` | `git`          | Clone, diff, and commit.                         |
| curl     | `7.81.0` | `curl`         | HTTP requests.                                   |
| Wget     | `1.21.2` | `wget`         | File downloads.                                  |
| jq       | `1.8.2`  | `jq`           | JSON processing.                                 |
| ripgrep  | `13.0.0` | `rg`           | Search across files.                             |
| SQLite   | `3.37.2` | `sqlite3`      | Local SQL databases.                             |
| less     | `590`    | `less`         | Paging through long output.                      |
| OpenSSL  | `3.0.2`  | `openssl`      | Keys, certificates, and hashes.                  |
| zip      | `3.0`    | `zip`, `unzip` | ZIP archives.                                    |
| tar      | `1.34`   | `tar`          | TAR archives, including `.tar.gz` and `.tar.xz`. |

Network commands such as `git clone` and `curl` reach only the hosts that the sandbox's network settings allow.

## Runtype CLI

The Runtype CLI is installed so that code in the sandbox can call Runtype. The following table lists its version:

| Software    | Version  | Command   |
| ----------- | -------- | --------- |
| Runtype CLI | `2.47.1` | `runtype` |

For commands, see [Runtype CLI reference](/developer-guides/getting-started/cli-reference).

## Coding agents

Five coding-agent command-line programs are installed and configured to use Runtype's in-sandbox model endpoint. None of them needs an API key. The following table lists them:

| Software    | Version   | Command    | Notes                                                                             |
| ----------- | --------- | ---------- | --------------------------------------------------------------------------------- |
| opencode    | `2.0.21`  | `opencode` | Powers coding-agent sessions. For example, `opencode run "fix the failing test"`. |
| pi          | `1.0.0`   | `pi`       | For example, `pi -p "summarize this repository"`.                                 |
| fx          | `0.0.12`  | `fx`       | For example, `fx ask "explain main.py"`.                                          |
| Claude Code | `2.1.295` | `claude`   | Claude models. For example, `claude -p "fix the failing test"`.                   |
| Codex       | `0.162.0` | `codex`    | OpenAI models. For example, `codex exec "add a unit test for parse()"`.           |

The model endpoint is available in an Agent's Linux computer and in a Flow's `transform-data` step that sets `inference` to `true`. For more information, see [Run a coding agent in the step](/user-guide/flows/using-transform-data-steps#run-a-coding-agent-in-the-step). In custom Tools and sandbox deployments, the coding agents are installed but have no model endpoint. Each agent has its own default model:

* **opencode, pi and fx** default to the `@cf/zai-org/glm-5.2` Workers AI model. They can also use `@cf/moonshotai/kimi-k2.7-code`, `@cf/openai/gpt-oss-120b`, or any other Workers AI text model ID.
* **Claude Code** defaults to `claude-sonnet-4-5` and can use any Claude model. To choose one, pass `--model`.
* **Codex** defaults to `gpt-5.1-codex` and can use any OpenAI model. To choose one, pass `--model`.

Any program in the sandbox can call the endpoint without an API key, in one of three formats:

| Format                  | URL                                                              | Models                                                                                             |
| ----------------------- | ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| OpenAI Chat Completions | `https://inference.sandbox.runtype.internal/v1/chat/completions` | Any Workers AI model ID or any model ID from the Runtype model catalog, such as `claude-haiku-4-5` |
| Anthropic Messages      | `https://inference.sandbox.runtype.internal/v1/messages`         | Claude models                                                                                      |
| OpenAI Responses        | `https://inference.sandbox.runtype.internal/v1/responses`        | OpenAI models                                                                                      |

To point an Anthropic or OpenAI client library at the endpoint, set its base URL to `https://inference.sandbox.runtype.internal` (Anthropic) or `https://inference.sandbox.runtype.internal/v1` (OpenAI). If the library requires an API key, any placeholder value works.

* **Billing.** If your organization added its own key for the model's provider, the request uses that key and the provider bills you directly. Otherwise, it runs on Runtype platform credit and is metered as usage for your organization, like any other model call. Platform credit serves only models with catalog pricing.
* **Spend cap.** Platform-credit requests from one Linux computer are capped at \$10 for as long as it keeps running. After that, the endpoint answers `402` with the code `sandbox_spend_cap_reached` until the computer restarts. Requests that use your own provider key don't count toward the cap. Token counting (`/v1/messages/count_tokens`) is free and never counts toward the cap.
* **Options not available on platform credit.** Background responses aren't supported on any key. On platform credit, the Anthropic Messages and OpenAI Responses formats also refuse premium service tiers, fast mode, and provider-billed server tools such as code execution. Web search is supported and is billed as usage. To use the other options, add your own provider key.
* **Zero data retention.** If your organization requires zero data retention, use the OpenAI Chat Completions format. The Anthropic Messages and OpenAI Responses formats answer `400` with the code `zero_data_retention_unsupported`.

To let an Agent hand a task to opencode and follow it as a typed session, set `config.sandbox.codingAgents`. For more information, see [Coding-agent sessions](/user-guide/tools/built-in-tools#coding-agent-sessions).

## Install more software

The image doesn't include every package. To add one, follow the method for your feature:

* **Agent's Linux computer**: By default, the sandbox can reach package registries, OS mirrors, and GitHub. The Agent can run `npm install`, `pip install`, `uv pip install`, or `apt-get install` with `bash`. To install packages once when the machine starts, add the commands to `setupCommands`. For more information, see [Sandbox](/user-guide/agents/creating-and-configuring-agents#sandbox).
* **Custom Tool**: Tool code has no network access by default, so it can't install packages at run time. Use the preinstalled packages on this page, or run the code in an Agent's Linux computer.
* **Sandbox deployment**: For JavaScript and TypeScript, send `packageJson`. Runtype runs `npm install` before it starts your code. For more information, see [Deploy a sandbox preview](/developer-guides/guides/sandbox-deployments).

A package that you install lasts only as long as the sandbox's files. It isn't added to the image, so a new sandbox starts without it.

## Next steps

* [Creating custom tools](/user-guide/tools/creating-custom-tools): run JavaScript, TypeScript, or Python in Runtype Sandbox.
* [Agent Sandbox tools](/user-guide/tools/built-in-tools#agent-sandbox-tools): give an Agent a Linux computer.
* [Deploy a sandbox preview](/developer-guides/guides/sandbox-deployments): run a server in a sandbox and get a preview URL.