Phoenix runs code evaluators (and other LLM-driven workloads that need to execute code) inside sandboxes. This page tells you which sandbox providers are ready to use in the officialDocumentation Index
Fetch the complete documentation index at: https://arizeai-433a7140.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
arizephoenix/phoenix container, what extra setup the others need, and how to read the status badges shown on Settings → Sandboxes.
Reading the status on Settings → Sandboxes
Each provider on the Settings → Sandboxes page shows a status that tells you whether it’s ready to run code:- Available — the provider is installed, configured, and ready to use.
- Not installed — the provider’s optional Python package isn’t installed. Install the matching Phoenix extra (e.g.
pip install 'arize-phoenix[e2b]') to enable it. - Missing credentials — the provider is installed but you still need to enter its credentials (API key, token, etc.) before it can be used.
- Unavailable — something on the host is missing — for example, the Deno binary isn’t installed, or the Python WebAssembly runtime can’t be found. The text next to the status tells you exactly what’s missing.
- Disabled — an administrator has excluded this provider via the allowlist. This overrides everything else: a fully working provider will still show as disabled if it isn’t on the allowlist.
What works out of the box
If you deploy the officialarizephoenix/phoenix container, these providers are usable immediately:
- Deno (local) — runs TypeScript inside Phoenix. The Deno binary is bundled in the container.
- WebAssembly (local) — runs Python inside Phoenix using a WebAssembly Python interpreter. The interpreter is bundled in the container.
- Hosted providers (E2B, Modal, Daytona, Vercel) — the integration code ships inside the container, so you only need to add your credentials before each becomes Available.
pip install arize-phoenix on your own host, or you’re building a custom image — you’ll need to install the runtime tooling for local sandboxes and the relevant Phoenix extras for hosted ones. See Non-container deployments below.
Container-bundled backends
The officialarizephoenix/phoenix image bundles both local sandbox backends so they work without any operator action.
Deno
Thedeno binary is bundled in the container image and on the default PATH. Phoenix picks it up automatically — no environment variables or extra setup required.
WebAssembly (CPython WASM)
The container ships with the Python WebAssembly runtime already in place and thePHOENIX_WASM_BINARY_PATH environment variable pre-set to point at it. The WebAssembly sandbox works out of the box — no download on first use, no writable cache directory, and no network access required (it runs even in air-gapped deployments).
If you ever override PHOENIX_WASM_BINARY_PATH yourself, Phoenix will use only the file at that path. If the file isn’t there, the WebAssembly sandbox shows as Unavailable in Settings → Sandboxes rather than silently falling back to a download.
Non-container deployments
If you are running Phoenix outside the official container (e.g.pip install arize-phoenix on a VM, a custom Docker image, or a platform that does not use arizephoenix/phoenix), local providers need the corresponding runtimes installed on the host.
Deno
Install the Deno runtime so that thedeno binary is on PATH for the Phoenix process. See the official Deno install guide for platform-specific instructions. Any directory on the process PATH works.
WebAssembly (CPython WASM)
Install Phoenix with thewasm extra so the WebAssembly runtime is available:
PHOENIX_WASM_BINARY_PATH is set, Phoenix will only use that file. If the file is missing, the sandbox reports an error instead of falling back to the download.
Hosted providers
Each hosted provider ships as a separate Phoenix extra and has its own credentials. The officialarizephoenix/phoenix container already includes all four extras — you only need to install one of these when you’re running on a custom image or a plain pip install arize-phoenix:
E2B_API_KEY, MODAL_TOKEN_ID and MODAL_TOKEN_SECRET, or the Vercel token / project / team triple. You can either set them as environment variables on the Phoenix server or paste them directly into the provider’s row in Settings → Sandboxes. The full list of credential variables for each provider is in the compatibility matrix below.
Restricting which providers are allowed
To restrict which sandbox providers your deployment can use, set thePHOENIX_ALLOWED_SANDBOX_PROVIDERS environment variable to a comma-separated list of the providers you want to allow. The variable is case-insensitive.
- Leave it unset to allow every supported provider (the default).
- Set it to
NONEto disable every sandbox provider. - Set it to one or more provider names to allow only those. Valid names are
WASM,DENO,E2B,DAYTONA,VERCEL, andMODAL(lowercase works too — the variable is case-insensitive). An unknown name will stop Phoenix from starting so a typo can’t silently disable a provider.
Compatibility matrix
The container-ready column reflects the post-install state of thearizephoenix/phoenix image.
| Provider (kind) | Languages | Container-ready | Extra setup outside container | Credentials | Runtime location |
|---|---|---|---|---|---|
Deno (local) (DENO) | TypeScript | Yes — deno bundled in the image | Install Deno on PATH | None | On the Phoenix server |
WebAssembly (local) (WASM) | Python | Yes — Python WebAssembly runtime bundled in the image | pip install 'arize-phoenix[wasm]'; optionally set PHOENIX_WASM_BINARY_PATH | None | On the Phoenix server |
E2B (E2B) | Python | Ready with credentials — already in container | pip install 'arize-phoenix[e2b]' | E2B_API_KEY | E2B cloud |
Daytona (DAYTONA) | Python, TypeScript | Ready with credentials — already in container | pip install 'arize-phoenix[daytona]' | DAYTONA_API_KEY | Daytona cloud |
Vercel Sandbox (VERCEL) | Python, TypeScript | Ready with credentials — already in container | pip install 'arize-phoenix[vercel]' | VERCEL_TOKEN + VERCEL_PROJECT_ID + VERCEL_TEAM_ID (auth docs) | Vercel cloud |
Modal (MODAL) | Python | Ready with credentials — already in container | pip install 'arize-phoenix[modal]' | MODAL_TOKEN_ID + MODAL_TOKEN_SECRET | Modal cloud |
“Container-ready” means the necessary code or binary is already inside the official
arizephoenix/phoenix image. For hosted providers you still need to enter credentials before the status changes from Missing credentials to Available. The two local providers (Deno and WebAssembly) become Available the moment the container starts.Where to find Vercel credentials. Store the personal access token as
VERCEL_TOKEN; create it at Account Settings → Tokens. Store the project’s resource ID as VERCEL_PROJECT_ID; find it under Project Settings → General. Store the team’s resource ID as VERCEL_TEAM_ID; find it at https://vercel.com/teams/<your-team>/settings#team-id. Full provisioning steps: Vercel Sandbox authentication.Troubleshooting
Each provider on Settings → Sandboxes shows a status and, when something’s wrong, a short message explaining what’s missing. The three most common messages are below.”WebAssembly binary not found at the configured path”
You’ll see this whenPHOENIX_WASM_BINARY_PATH is set but the file at that path doesn’t exist. Phoenix uses the configured path exclusively — it won’t fall back to a download.
How to fix it:
- Check the file is where you expect it. If you’re mounting it into a container, confirm the volume mount is correct.
- If you’re using the official
arizephoenix/phoeniximage, leavePHOENIX_WASM_BINARY_PATHat its default — the binary is already in the right place. - If you’d rather let Phoenix download the binary, unset
PHOENIX_WASM_BINARY_PATHand Phoenix will fetch and cache it on first use.
”WebAssembly binary will be downloaded on first use”
You’ll see this on a non-container install before the WebAssembly sandbox has been used. The first Python evaluation will pause briefly to download the binary, after which it’s cached locally. The download requires outbound network access to GitHub. How to fix it (if you can’t allow the download):- Pre-provision the binary and set
PHOENIX_WASM_BINARY_PATHto point at it. See Non-container deployments above for the full steps.
”Deno not found”
You’ll see this when Phoenix tries to run the Deno binary but can’t find it on your system’sPATH.
How to fix it:
- Non-container hosts: install Deno (see the Deno install guide) and make sure the user running Phoenix can find it on their
PATH. - Official
arizephoenix/phoenixcontainer: Deno is pre-installed and on the defaultPATH. If you’re still seeing this error inside the container, your deployment is overridingPATHor replacing the entrypoint in a way that hides the bundled binary — restore the defaults.

