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

# VM sandbox

> What's inside Capy's task VMs — Ubuntu, preinstalled language runtimes and tools, and full Docker Engine and Compose support for containerized testing.

Each run executes in an isolated Ubuntu VM with Python, Node.js, TypeScript, Rust, Go, Java, Docker, and common developer tools preinstalled. The agent has full access: it edits files, runs commands, installs packages, and commits code without touching your machine.

How the VM is prepared — compute size, setup scripts, environment variables, and snapshots — is configured per project in [Dev environment](/configs/dev-environment).

## Docker in sandboxes

Capy VMs include Docker Engine and Docker Compose, so tasks can build images, run service dependencies, and test containerized apps directly inside the sandbox.

Use the standard Docker commands:

```bash theme={null}
docker info
docker run --rm hello-world
docker compose up -d
```

Nested containers support the networking patterns most app test flows need:

* Pulling images and reaching the public internet from containers
* User-defined bridge networks with container/service-name DNS
* Docker Compose default networks
* Published ports that are reachable from the Capy VM, such as `curl http://127.0.0.1:3000`

For example, a Compose stack can expose a web service to the VM and let another service reach it by name:

```yaml theme={null}
services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
  probe:
    image: busybox:1.37
    command: sh -lc "wget -qO- http://web && sleep 600"
```

```bash theme={null}
docker compose up -d
curl http://127.0.0.1:8080
```

Sandbox image changes apply to new VMs. If an existing task was created before a capability rolled out, start a new run to pick up the updated image.
