Repository navigation
feat(e2b): add the E2B provider - #2930
Open
sam-goodwin wants to merge 11 commits into
Open
sam-goodwin wants to merge 11 commits into
sam-goodwin wants to merge 11 commits into
Conversation
Contributor
|
Install the packages built from this commit: alchemypnpm install https://pkg.alchemy.run/alchemy/pr:2930:81847c4@alchemy.run (29)pnpm install https://pkg.alchemy.run/@alchemy.run/better-auth/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/git/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/drizzle/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/acme/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/axiom/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/doppler/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/infisical/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/turso/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/e2b/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/planetscale/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/neon/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/prisma/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/hetzner/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/railway/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/fly/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/github/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/stripe/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/cloudflare/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/gcp/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/aws/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/domain/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/kubernetes/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/docker/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/redis/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/sql/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/cloudflare-runtime/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/frontend-frameworks/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/node-utils/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@alchemy.run/pkg/pr:2930:81847c4Transitive Dependencies (21)pnpm install https://pkg.alchemy.run/@distilled.cloud/aws/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/acme/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/axiom/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/core/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/doppler/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/infisical/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/turso/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/e2b/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/planetscale/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/neon/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/s3/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/prisma/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/hetzner/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/railway/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/fly-io/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/github/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/stripe/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/aws4signer/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/cloudflare/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/iceberg/pr:2930:81847c4pnpm install https://pkg.alchemy.run/@distilled.cloud/gcp/pr:2930:81847c4Published |
… install, baked args, secrets, push - alchemy/Mount (from the Archil branch) with ECS Task, Cloudflare Container and ImageSource wiring - alchemy/Sandbox: the handle vocabulary sandbox providers extend - alchemy/RuntimeObjects: the ownership stamp and destroy-time sweep for runtime-created objects - BuildPlan: install lines, buildArgs/secrets capabilities, FROM --platform checks, checkContent, push, registry renamed to pull
Contributor
Website Preview DeployedURL: https://pr-2930-alchemy-website-preview.testing-2b2.workers.dev Built from commit This comment updates automatically with each push. |
sam-goodwin
force-pushed
the
feat/e2b-provider
branch
from
November 6, 2026 05:00
bac556a to
1af2de2
Compare
sam-goodwin
marked this pull request as ready for review
November 6, 2026 05:04
sam-goodwin
force-pushed
the
feat/e2b-provider
branch
from
November 6, 2026 19:05
2bcec3f to
0ac6dff
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
@alchemy.run/e2b: E2B templates, warm snapshots, volumes, secrets and webhooks as resources, and sandboxes created from any Worker or Function. Depends on alchemy-run/distilled#1032 and #2928 (merged in).Template,Sandbox,Snapshot,Volume,Secret,Webhook,ApiKey), 13 bindings, 1 event source; every resource takeslookupe2b-agent-sandbox,e2b-program,e2b-program-async), a 16-page docs hubTemplates
E2B builds remotely, so deploys need no Docker. The source is planned with
@alchemy.run/docker/BuildPlanunder E2B'sCapabilitiesand lowered to E2B's build steps.COPYsources are uploaded once per content hash, and a Dockerfile E2B can't build fails at plan.Sandboxes from a Worker
createtakes E2B's own parameters. The handle hasexec(a shell line or an argv; non-zero exits are returned),start(a scopedProcesswithoutput,write,kill,wait),files,pty.open,fetchto a port, and E2B's ownpause,resume,fork,snapshotand network updates. A call into a paused sandbox fails withSandboxNotRunning. Sandboxes a host creates carry its stage in their metadata and are killed when the host is destroyed.A program in every sandbox
E2B snapshots the template once the program answers, so every sandbox boots with it serving. A plain Node
mainworks too (E2B.InferEnv).A sandbox the stack owns
The sandbox pauses when idle with its memory and files, and the next request resumes it.
ConnectSandboxreturns the same handle ascreate. Give it a template program and it serves that program at a stable URL.Warm snapshots
Volumes
In a template program,
MountVolumeputs the mount on the template, so every sandbox from it mounts the volume.Secrets at egress
Lifecycle events
Also
E2B.Template.lookup({ name })(and the same on every resource),E2B.Webhook,E2B.ApiKey,CreateTemplate,CreateSnapshot,WriteSecret,ReadTeamandReadWebhook; see the generated reference.