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
Thecode-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 incoding-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’sTemplate.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.
- Every
FROMis 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/ENTRYPOINTruns at sandbox start only when the last stage declares one, or with--start-cmd. .dockerignorein the build context is honoured.
--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 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.