SimpleBox, so exec() / copy_in() / copy_out() remain available whichever you choose, and all six are async context managers that create and start the microVM on entry.
Which type do you need?
Selection summary: chooseSimpleBoxto run commands;CodeBoxto run Python;BrowserBoxfor a browser;ComputerBoxfor a desktop;InteractiveBoxfor a manual terminal;SkillBoxfor an AI agent. The high-level wrappers forComputerBoxandInteractiveBoxare provided only in Python and Node; the other language SDKs (C / Go / Rust) currently expose only the lower-levelexec(tty=...). Node uses the same six names withnewand camelCase options, andawait usingin place ofasync with—await using box = new CodeBox(). Per-type Node signatures are in the Node.js SDK reference.
SimpleBox — the general-purpose base class
Use it to run any command, use your own image, or get fine-grained control over resources, volumes, ports, and networking. It is also the parent class of the other five types.SimpleBox constructor arguments: image / rootfs_path (at least one required), memory_mib, cpus, name, auto_remove (default True), reuse_existing (default False). Other advanced options (volumes / ports / network / secrets / advanced, etc.) are forwarded through **kwargs to the underlying BoxOptions.
CodeBox — Python code execution
Use it to execute untrusted or AI-generated Python code, or to run computation or scripting tasks.Note: thetimeoutofCodeBox.run(code, timeout=...)is anintand is not enforced. For reliable timeout control, useexec(..., timeout=<float>)inherited fromSimpleBoxinstead.run()returns only stdout; if you also need stderr, useexec().
BrowserBox — browser automation
Use it to run Playwright in an isolated environment or connect over CDP for browser automation. BrowserBox exposes a browser endpoint to the host, and the host-side Playwright connects to it.playwright_endpoint()(Playwright Server mode) supports chromium / firefox / webkit;endpoint()(direct CDP/BiDi) does not support WebKit. The two modes are mutually exclusive — pick one as needed.
ComputerBox — desktop automation
Use it for a computer-use agent that drives a real Linux desktop (XFCE) through mouse, keyboard, and screenshots. You can watch it live in a browser via noVNC.ComputerBox allocates higher resources by default (cpu=2, memory=2048), and its GUI ports default to HTTP 3000 / HTTPS 3001.
InteractiveBox — interactive terminal
Use it to manually enter a sandbox shell to debug, likedocker exec -it. On async with entry it automatically starts a shell and forwards stdin/stdout in both directions; type exit to leave.
When run in a non-TTY environment (a redirected pipe, some CI),ttyis auto-detected asFalseand interactive input is not forwarded. To force interactivity, passtty=Trueexplicitly.
SkillBox — run Claude Code inside a sandbox
Use it to host an AI agent so the Claude Code CLI works in an isolated environment; you can install skills, hold multi-turn conversations, and watch live through the built-in noVNC desktop.SkillBoxis purpose-built for the Claude Code CLI: its image installsclaudeand starts it with a computer-use MCP config. To run a different agent CLI, install it into aSimpleBoxyourself — see Run Codex, Run Pi, or Run OpenCode.
SkillBox allocates higher resources by default (memory_mib=4096, disk_size_gb=10); its noVNC GUI ports default to 0 at construction time (randomly assigned), and auto_remove=True.
Parameters and Returns
Key constructor arguments per type (Python)
Resource defaults: whencpus/memory_mibare left unset, the runtime applies 1 vCPU / 1024 MiB (vm_defaultsinsrc/boxlite/src/runtime/constants.rs), not any SDK-level constant.BrowserBoxandComputerBoxoverride with their own higher defaults (cpu=2,memory=2048). Setcpus/memory_mibexplicitly for predictable capacity planning. See Compute resources.

