Why E2B
- A hardware-isolated microVM, not a shared-kernel container. Every machine runs in its own Firecracker microVM, so AI-generated code stays isolated from your infrastructure and from other tenants.
- Starts from a snapshot. A template is a saved, running machine, so each new machine starts in milliseconds with its tools installed and its processes already running.
- Agents ready to go. Public templates come with Claude Code, Codex, OpenCode, Amp, and more installed. For your own stack, build a template from a Dockerfile once.
- Runs where you need it. E2B runs in the US, EU, and Asia-Pacific, and can also run in your own cloud account or on your own machines with the same API.
Set up an E2B pool
1
Create an API key
In the E2B console, create an API key. Store the key as an org-owned secret in Omnara.
2
Choose a template
The template is the snapshot each machine starts from, and it sets each machine’s CPU and memory. Use one of E2B’s public templates, such as
code-interpreter-v1, or one your team built.To build your own, write a Dockerfile that meets the custom image requirements and run, for example, e2b template create my-agent --cpu-count 4 --memory-mb 8192 to choose its size. See E2B’s template quickstart.3
Create the pool
On the Machines page, click New pool and choose E2B. Enter the credential, template, CPU and memory maximums, and capacity limits. The maximums must be at least the template’s size.E2B ends each machine once it reaches your E2B plan’s maximum continuous runtime, so put setup in the template or startup script rather than on the machine.To use the API instead, call Create a pool with the fields under API fields. The dashboard can’t set the domain, so to use another E2B region or E2B in your own cloud, set
domain through the API.API fields
When you create a pool through the API, send these fields in the Create a pool request.provider_config applies to the whole pool, and default_machine_provider_options sets the options for each new machine, which project grants and agent configs can override. For example:
templateis a template ID, name, orteam/name, without a tag. The template sets each machine’s size, so CPU and memory defaults are optional, and the maximums must be at least the template’s size.domainis the E2B domain to use, such ase2b-juliett.devfor E2B’s EU region. Omit it to usee2b.app.- Optional:
startup_scriptindefault_machine_provider_optionsruns on each new machine before the daemon starts, andallowed_templatesinprovider_configis an allowlist.