Skip to main content
Attach existing volumes when you create a sandbox.

Mount at Sandbox Creation

Use the SDK, CLI or REST API to mount volumes at sandbox creation.
const sandbox = await client.sandboxes.create({
  imageName: "node",
  mounts: {
    "/mnt/workspace": {
      id: "550e8400-e29b-41d4-a716-446655440000",
      type: "rw",
    },
    "/mnt/cache": {
      id: "660e8400-e29b-41d4-a716-446655440000",
      type: "ro",
    },
  },
});
Raw mounts payload:
{
  "imageName": "node",
  "mounts": {
    "/mnt/workspace": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "type": "rw"
    },
    "/mnt/cache": {
      "id": "660e8400-e29b-41d4-a716-446655440000",
      "type": "ro"
    }
  }
}

CLI --mount Formats

Use repeated --mount flags.
<volume-id>:/abs/path[:ro|rw]
Examples:
hx vm create node --mount <volume-id>:/mnt/workspace
hx vm create node --mount <volume-id>:/mnt/cache:ro
source=<volume-id>,target=/abs/path[,readonly|mode=ro|mode=rw]
Examples:
hx vm create node --mount source=<volume-id>,target=/mnt/workspace
hx vm create node --mount source=<volume-id>,target=/mnt/cache,readonly

Mount Object Fields

mounts.<path>.id
string
required
Volume ID (UUID).
mounts.<path>.type
string
default:"rw"
Access mode: rw or ro.

Naming Rules

  • Mount path must be absolute and below /.
  • Mount path cannot be /.
  • Mount path must already be normalized.
  • Mount path cannot target protected system locations such as /etc, /usr, /proc, /dev, /root, /run, or /sys.
  • Duplicate mount targets are rejected.
  • Volume must exist and belong to your team.

Launch Behavior

At launch, Hyperbrowser resolves each mount to a team-owned volume, then provisions runtime mount instructions with scoped access. If mount resolution fails, sandbox creation fails.
Mounts are currently configured at sandbox launch. Updating mounts on an already running sandbox is not supported

Next Step