A template is the image a sandbox boots from, plus its default size. Every template runs Ubuntu 24.04 with E2B’s envd 0.5.13 on port 49983, the user user (uid 1000) and tini, and starts nothing else at boot unless it says so. That keeps idle sandboxes small, which is what keeps them cheap. Pick one by name:

code-interpreter

The code-interpreter template runs E2B’s own code-interpreter server (a Python kernel behind Jupyter) on port 49999, the server the e2b-code-interpreter SDK talks to. Create it with Sandbox.create(template="code-interpreter") from that SDK. Running the e2b-code-interpreter SDK end to end against Anona is not part of the published compatibility checks yet.

coding-agent

Each agent CLI in coding-agent has the anona-computer-use MCP server registered in its own config, and an anona skill installed. The computer-use server is a placeholder today: its screenshot, mouse_move, click, type_text and key tools call scrot and xdotool and need a running X display. The agents need their own provider credentials; pass them as environment variables at create time.

Build your own

Build a template from a Dockerfile with the CLI, or from the E2B SDK’s Template.build. The gateway builds the image with BuildKit in an isolated builder, adds the Anona runtime layer (envd, the entrypoint and the guest agent), pushes it and registers it; sandboxes then start from it by name.
What the builder enforces:
  • Every FROM is pinned by digest at build time, so a rebuild gets the same base.
  • EXPOSE 49983 (envd) is refused; the Anona runtime owns that port.
  • The build runs with no credentials, no privileges and its own CPU, memory, PID and time limits, on a network whose only way out is a proxy that applies the same platform floor as a sandbox.
  • The image’s CMD/ENTRYPOINT runs at sandbox start only when the last stage declares one, or with --start-cmd.
  • .dockerignore in the build context is honoured.
Defaults and limits: 2 vCPU and 2 GiB per sandbox unless --cpu/--memory say otherwise (at most 8 vCPU and 16 GiB), 20 templates per organization, 2 builds at a time, and a build context up to 1 GiB. Deleting a template leaves sandboxes that already run from it alone; new creates stop resolving the name. The dashboard’s Templates page lists templates, build status and build logs, and deletes them.
Template builds have been exercised end to end against a real gateway, BuildKit and a local registry (tests/templates/run_e2e.sh), with sandbox creation through the fake engine. Registration against CubeSandbox on AWS has not been run yet.
Template sizes are the preview defaults and may change. The create request has no CPU or memory fields, in E2B as here; a sandbox gets its template’s size.