HelixML

Sandbox runtimes

Desktop environment options, container images, and resource requirements for Helix agent sandboxes.

Desktop environments

Each agent sandbox runs one of three desktop configurations:

EnvironmentDisplay serverBase imageBest for
SwayNative WaylandUbuntu 22.04 + SwayLightweight, fast startup, lowest resource usage
UbuntuGNOME (Xwayland)Ubuntu 22.04 + GNOMEFull desktop experience, broader app compatibility
ZorinGNOME (Xwayland)Zorin OSUser-friendly interface

All three include:

  • Zed IDE (connected to the code agent via ACP)
  • Firefox browser
  • Docker CLI
  • Git
  • Standard developer tooling (curl, jq, make, etc.)

The default desktop is Sway. This can be changed per-deployment in the sandbox configuration.

Resource requirements per session

ResourceMinimumRecommended
CPU2 vCPU4 vCPU
RAM4 GB8 GB
GPUNot required1 GPU for hardware H.264 encoding
Disk20 GB50 GB (for larger repo clones and Docker images)

On NVIDIA hardware, one GPU is typically shared across multiple sessions. The sandbox streams video via H.264; without a GPU, software encoding still works but uses more CPU.

Per-task sandbox size

An individual spec task can run in a larger or smaller sandbox than the default. Three sizes are accepted, and only these three:

SizevCPURAM
1 CPU12 GB
4 CPU48 GB
8 CPU816 GB

4 CPU / 8 GB is the default. Set it per task from the task's execution controls — see Change how one task runs.

Video streaming

The agent desktop is streamed as H.264 video over WebSocket (HTTPS). The streaming pipeline:

  1. Desktop renders to Wayland compositor
  2. PipeWire captures the frame
  3. GStreamer encodes to H.264 (hardware or software)
  4. WebSocket delivers the stream to your browser

Encode modes (set via HELIX_VIDEO_MODE):

  • zerocopy — DMA-BUF → CUDA → NVENC. Fastest; requires NVIDIA GPU
  • native — DMA-BUF via GStreamer 1.24+. Works on Intel/AMD
  • shm — Shared memory. Most compatible; higher CPU usage

Encoders (set via HELIX_ENCODER):

  • nvenc — NVIDIA (default on NVIDIA hardware)
  • vaapi — Intel/AMD (default on AMD hardware where supported)
  • openh264 / x264 — Software fallback

Session lifecycle

EventWhat happens
Session startContainer created, repo cloned, agent process started
Session runningVideo streamed, agent makes commits to working branch
Session end (normal)Container destroyed, commits preserved on branch
Session end (crash)Container destroyed, commits preserved on branch; new session can resume
Idle timeoutSession ends if nobody interacts with it for the configured timeout (default: 1 hour, HELIX_DESKTOP_IDLE_TIMEOUT), checked every 5 minutes
Keep Alive is onThe session is exempt from the idle timeout, and is left running when its task reaches Done. Its workspace is also never garbage-collected, with no time limit.

Concurrency limits

DeploymentConcurrent sessions
Helix CloudScales automatically with your plan
Mac App (16 GB)~2–3
Mac App (32 GB)~6–8
Mac App (64 GB+)12–15
Linux / K8sLimited by available GPU memory and CPU

On Kubernetes, the sandbox chart's sandbox.maxSessions value caps concurrent sessions.