mrkeyoor.com_
Wed 16 Sept 05:23 UTC
Self-Hostedevaluationupdated 16 Sept 2026

runtime review

E2B Runtime is the backend that gives an AI agent its own Linux machine for running code, pausing it, and resuming it later. It combines Firecracker virtual machines with an API, node orchestration, network routing, template building, storage, and an agent inside each sandbox.

Verdict

Our e2b-dev/runtime run installed 49 packages in 26 seconds and passed all 49 tests, but those checks covered the Python Firecracker versioning helper rather than an end-to-end microVM deployment. E2B Runtime deserves a trial when sandbox execution is a platform responsibility and your team already operates KVM hosts. Use the hosted service or a narrower alternative if an evaluation-only self-host package, 11 exposed ports, and several stateful services exceed what you want to own.

We ran it

Lab card: what happened when we ran runtimeScreenshot of runtime (e2b.dev/?utm_source=github&utm_medium=referral&utm_campaign=repo_website&utm_content=runtime)
Install✓ · 26s49 packages · 52 MB
Build✓ · 4s
Tests✓ · 5s49 passed · 0 failed of 49 (pytest)
Known vulns0(pip-audit)
Repo2531 files~433,174 lines of source · 17.7 MB · 12 CI workflows · tests dir

Answers from our run

Does runtime build from source?

Dependencies installed in 26 seconds (49 packages), and the build succeeded in 4 seconds. We cloned commit da1ddd2 into a clean Debian container with 3 CPUs and no project-specific setup.

Do runtime's tests pass?

Yes: 49 of 49 passed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does runtime have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use runtime?

Teams that want an officially documented production self-host recipe: E2B calls its Compose, Terraform, and Kubernetes Embed shapes single-machine evaluation packages, then directs production users to its enterprise deployment.

What are the alternatives to runtime?

Daytona, Firecracker, gVisor. Our e2b-dev/runtime run installed 49 packages in 26 seconds and passed all 49 tests, but those checks covered the Python Firecracker versioning helper rather than an end-to-end microVM deployment.

Setup2/5Helper tests pass; the real stack needs KVM, root, and host changes
Docs5/5Architecture, Embed, ports, secrets, and host setup are explicit
Community4/51,501 stars, a same-day push, and active issue discussion
Maturity4/5Cloud runtime is active; self-hosting is still framed as evaluation

Who it’s for

Platform teams that need isolated machines for code-writing agents inside infrastructure they control.
Engineers prepared to operate Linux hosts with KVM, root-level networking, storage, and several databases.
E2B Cloud users who need to inspect the runtime beneath the Python and JavaScript SDKs.
Infrastructure researchers studying snapshot restore, Firecracker scheduling, or lazy memory loading.

Who it’s NOT for

Teams that want an officially documented production self-host recipe: E2B calls its Compose, Terraform, and Kubernetes Embed shapes single-machine evaluation packages, then directs production users to its enterprise deployment.
Operators who cannot dedicate and firewall the host: Embed binds 11 ports on every interface, and its documentation says port 5008 exposes an unauthenticated orchestrator control API.
Developers working without Linux, KVM, or root access: the orchestrator needs KVM, TAP interfaces, cgroups, NBD mounts, and host changes.
Organizations that require source access for every shipped VM binary: the version helper requires FIRECRACKER_REPO_TOKEN, while open issue 3612 asks for a public source path after an older fork was archived.
Small teams that only need disposable command execution: PostgreSQL, Redis, ClickHouse, object storage, routing, and node operations make this a platform commitment.

Setup reality

Our commit da1ddd2 checkout installed 49 Python packages in 26 seconds and used 52 MB. The build passed in 4 seconds, then all 49 pytest cases passed in 5 seconds. Pip-audit found 0 known vulnerabilities. That run covered the Python project in firecracker/fc-versions, inside a 2,531-file, roughly 433,174-line repository.

The full runtime needs Linux with KVM and root-level host access. Source development brings up PostgreSQL, Redis, ClickHouse, and an observability stack, then downloads kernels and Firecracker binaries. Embed generates its own team API key; E2B Cloud requires an API key.

Embed is an evaluation package, not the documented production pattern. Its current Compose guide recommends 12 GiB of RAM and 20 GiB of free disk. It also binds 11 ports on every interface, including an unauthenticated control API on port 5008, so a dedicated host and strict firewalling are part of setup.

Go 1.26 services turn each sandbox into a small machine

E2B Runtime is a Go 1.26 backend for giving an agent a Linux machine rather than a process in the main application. The API places a sandbox, an orchestrator manages its Firecracker microVM, envd handles commands and files inside the guest, and a proxy routes traffic to open ports. A sandbox can pause, resume, or fork from a snapshot. That isolation matters when an agent may execute faulty or hostile code.

Our commit da1ddd2 checkout contained 2,531 files and roughly 433,174 lines of source in 17.7 MB. The README describes PostgreSQL and Redis in the control plane, ClickHouse for events and metrics, object storage for snapshots, plus node-level networking and block devices. Adopting it means owning an execution platform. It is a poor trade if your requirement ends at one short command in an existing container.

The 49 passing tests cover a Python helper, not the runtime

All 49 pytest cases passed in our sandbox, but the measured project lives under firecracker/fc-versions. Its pyproject.toml identifies a Python 3.12 tool for Firecracker build and release work, with Anthropic as its sole runtime dependency and pytest in the development group. The main product is a Go control plane and node runtime. A green helper suite cannot tell you whether KVM, snapshot storage, network routing, or sandbox lifecycle operations work on your host.

The 4-second build confirms that the targeted helper built in a fresh Debian container. It does not prove that a Firecracker guest started, because our container was unprivileged and carried no secrets. E2B's development guide requires /dev/kvm, NBD devices, huge pages, downloaded kernels, custom Firecracker binaries, and root access for the orchestrator. Those steps sit outside the result we measured.

What happened when we ran it

Our sandbox installed 49 Python packages in 26 seconds and occupied 52 MB on disk. The build completed in 4 seconds. We ran commit da1ddd2 on 3 CPUs with 8 GB of RAM in an unprivileged Debian container, using the Python project in firecracker/fc-versions. The repository scan found 12 CI workflow files and a tests directory, but no Dockerfile.

Pytest finished in 5 seconds with 49 passed and 0 failed. Pip-audit reported 0 known vulnerabilities in the installed Python packages. Those are clean results for the versioning helper. Our test method did not run a sandbox VM, test pause or resume, expose a sandbox URL, or exercise the Go services. Claims about guest startup, isolation, or throughput need a privileged deployment.

Embed is an evaluation package with 11 listening ports

E2B Embed offers Compose, GCP Terraform, and Kubernetes routes for a single machine, but its guide calls all of them evaluation packages. The Compose path requires Linux with KVM, Docker Engine 27 or newer, Compose 2.24 or newer, and a host the installer may modify. Current guidance recommends 12 GiB of RAM and 20 GiB of free disk. E2B directs production deployments to its enterprise offering.

Security depends on the host boundary. Embed binds 11 ports on every interface and says only ports 3000 and 3002 should be reachable by trusted clients. Port 5008 is an unauthenticated gRPC control API that can create and kill sandboxes or start template builds. Four other ports accept redirected sandbox egress traffic without their own client authentication. If your network policy cannot keep those 9 internal ports unreachable, the two-file quick start is unsafe.

Full development needs root, KVM, and three core stores

The source guide sets an 8 GB minimum and recommends 16 GB of RAM, with about 4 GB reserved as huge pages. PostgreSQL, Redis, and ClickHouse provide core state, while the local setup can also start Grafana, Loki, Tempo, Mimir, Memcached, an OpenTelemetry collector, and Vector. The orchestrator runs with sudo because it creates TAP devices, manages cgroups, mounts NBD devices, and opens /dev/kvm. WSL2 is explicitly unsupported for that path.

The fc-versions README requires Python 3.12 and FIRECRACKER_REPO_TOKEN to clone the customized source used for builds. Open issue 3612 asks what public source self-hosters should use after the older Firecracker fork was archived, and it had no reply when checked. Embed instead downloads public prebuilt binaries and verifies checksums. That may be acceptable, but it does not satisfy a policy that requires rebuilding every VM component from public source.

A September 2026 release is active, while lifecycle races remain open

GitHub showed 1,501 stars, 197 combined open issues and pull requests, and 106 open issues when fetched. The last push was September 16, 2026, one day after several lifecycle reports were updated. Release 2026.30 arrived on September 10 with changes across authentication, orchestration, observability, and sandbox resume behavior. This is current work rather than a dormant code dump, and the busy queue matches the size of the system.

Issue 3636 documents a race where DELETE returns HTTP 204 while an in-flight resume later returns 201 and leaves the sandbox running. Issue 3637 reports that a cancelled create can leave an unregistered VM on the node until reconciliation removes it after roughly 1 minute. Both reports include reproduction detail, but neither our 49-test helper run nor repository activity closes those risks. Test kill, timeout, and reconciliation behavior against the exact release you plan to operate.

The 52 MB helper result should start evaluation, not end it

The 52 MB installed footprint and 49 passing tests make the Firecracker release helper easy to inspect, but they say little about the surrounding runtime. A serious trial needs a dedicated KVM host, 9 unreachable internal ports, concurrent create and delete checks, and proof that failed requests leave no guest behind. If you need that control, E2B documents the machinery clearly. Otherwise, E2B Cloud avoids owning it.

Alternatives

ProjectWhat it isPick it when
Daytona gh↗Infrastructure for creating isolated sandboxes that run AI-generated code.pick this instead when you want another agent-sandbox platform to evaluate before accepting E2B's runtime and deployment model.
Firecracker gh↗The microVM monitor beneath systems such as E2B, without E2B's control plane.pick this instead when you need the virtualization primitive and plan to build scheduling, APIs, storage, and routing yourself.
gVisor gh↗A userspace application kernel that adds isolation to containers.pick this instead when container compatibility matters more than giving every job a Firecracker microVM.

What people are saying

  1. [github-trending] e2b-dev/runtime
  2. [lobsters] Hunting Down a Go Runtime Bug on 32-bit Embedded Systems
  3. [hackernews] Autolith: A programming agent with a live runtime

Sources

  1. E2B Runtime repository and README
  2. E2B Embed deployment guide
  3. E2B local development requirements
  4. E2B Runtime release 2026.30
  5. Public Firecracker source-build question
  6. Concurrent delete and resume race report
  7. Cancelled create orphan report

More self-hosted reviews

newsnow · forem · octo-server · openfang · SparkyFitness · sonic · the whole board →