---
title: "Deno"
description: "Run simple TypeScript code evaluators locally inside the Phoenix server."
---

<div style={{ display: 'flex', alignItems: 'center', gap: '1.5rem', marginTop: '1.5rem', marginBottom: '1.5rem' }}>
<img src="https://storage.googleapis.com/arize-phoenix-assets/assets/svgs/deno.svg" alt="Deno" className="invert-on-dark" style={{ height: '112px', flexShrink: 0 }} />
<div>

The **Deno** sandbox is a **local sandbox** for **simple TypeScript evaluators** — pure-logic checks like regex matches, JSON parsing, and scoring functions. It runs locally inside the Phoenix server, starts in milliseconds, and needs no credentials.

</div>
</div>

Configure it from [Settings → Sandboxes](/docs/phoenix/settings/sandboxes).

## Setup

The `deno` binary ships **inside the `arizephoenix/phoenix` container**, so there's nothing to install there. If you run Phoenix another way — for example `pip install arize-phoenix` — install Deno yourself so the `deno` binary is on the `PATH` of the process running Phoenix:

```bash
# macOS
brew install deno
# or, any platform:
curl -fsSL https://deno.land/install.sh | sh
```

Restart Phoenix, then open [**Settings → Sandboxes**](/docs/phoenix/settings/sandboxes). The **Deno** row should read **Available**. If it shows *"Unavailable — Deno binary isn't installed,"* the Phoenix process can't find `deno` on its `PATH`. For the full platform details, see [Sandbox Backends](/docs/phoenix/self-hosting/features/sandbox-runtimes#deno).

## What it supports

The Deno sandbox runs your TypeScript in a locked-down local process. It is intentionally limited to **self-contained code**:

| Capability | Supported? |
| :-- | :-- |
| Environment variables | ❌ Not supported — use a hosted sandbox |
| Network access | ❌ Not supported — use a hosted sandbox |
| Third-party dependencies | ❌ Not supported — use a hosted sandbox |

If your evaluator needs **any** of the above, it cannot run on Deno. Use a [hosted sandbox](/docs/phoenix/settings/sandboxes#local-vs-hosted-sandboxes) (E2B, Daytona, Vercel, or Modal) instead — those run each evaluation on an isolated remote VM with full support for environment variables, outbound network access, and installed packages.

## Running untrusted code

The Deno sandbox is tightly restricted, but it runs in the Phoenix server process, so it is **not a substitute for running untrusted code on isolated infrastructure**. The script shares CPU and memory with Phoenix, and the security boundary depends on Deno itself. If you need to evaluate code from sources you cannot verify, use a [hosted sandbox](/docs/phoenix/settings/sandboxes#local-vs-hosted-sandboxes).
