Skip to content

Remote Display (noVNC)

The container runs a virtual display stack (Xvfb + x11vnc + noVNC + fluxbox) so you can watch AI agents control a browser and intervene when needed — for example, to handle login or MFA prompts.

  1. Open http://localhost:6080/vnc.html in your browser and click Connect
  2. You’ll see a lightweight fluxbox desktop — this is the container’s virtual display

AI agents using @playwright/mcp in headed mode render Chromium into this display. You can click and type directly in the noVNC window to intervene at any time — no pause/resume needed.

To open a browser manually inside the container:

Terminal window
chromium --no-sandbox &

To run Playwright tests in headed mode:

Terminal window
npx playwright test --headed
VariableDefaultDescription
ENABLE_VNCtrueSet to false to disable the VNC stack
VNC_RESOLUTION1280x1024x24Virtual display resolution (WxHxDepth)
DISPLAY:99X11 display number
NOVNC_HOST_PORT6080Host-side port for noVNC (override to avoid conflicts with other containers)

Set these in your .env file or in .devcontainer/devcontainer.json under containerEnv.

For headless-only operation, set ENABLE_VNC=false in .env and restart the container:

Terminal window
docker compose down
docker compose up -d

See Troubleshooting — Remote Display for solutions to black screens, connection refused errors, and port conflicts.