---
title: Interactive browser terminals in Sandboxes
description: The Sandbox SDK now supports proxying WebSocket connections to container PTY sessions, enabling browser-based terminal UIs with output buffering, reconnection, and multiple isolated terminals per sandbox.
image: https://developers.cloudflare.com/changelog-preview.png
---

> Documentation Index  
> Fetch the complete documentation index at: https://developers.cloudflare.com/changelog/llms.txt  
> Use this file to discover all available pages before exploring further. 

[Skip to content](#%5Ftop) 

# Changelog

New updates and improvements at Cloudflare.

[ Subscribe to RSS ](https://developers.cloudflare.com/changelog/rss/index.xml) [ View RSS feeds ](https://developers.cloudflare.com/fundamentals/new-features/available-rss-feeds/) 

![hero image](https://developers.cloudflare.com/_astro/hero.CVYJHPAd_26AMqX.svg) 

[ ← Back to all posts ](https://developers.cloudflare.com/changelog/) 

## Interactive browser terminals in Sandboxes

Feb 09, 2026 

[ Agents ](https://developers.cloudflare.com/agents/) 

The [Sandbox SDK ↗](https://github.com/cloudflare/sandbox-sdk) now supports PTY (pseudo-terminal) passthrough, enabling browser-based terminal UIs to connect to sandbox shells via WebSocket.

#### `sandbox.terminal(request)`

The new `terminal()` method proxies a WebSocket upgrade to the container's PTY endpoint, with output buffering for replay on reconnect.

* [  JavaScript ](#tab-panel-2697)
* [  TypeScript ](#tab-panel-2698)

JavaScript

```
// Worker: proxy WebSocket to container terminalreturn sandbox.terminal(request, { cols: 80, rows: 24 });
```

TypeScript

```
// Worker: proxy WebSocket to container terminalreturn sandbox.terminal(request, { cols: 80, rows: 24 });
```

#### Multiple terminals per sandbox

Each session can have its own terminal with an isolated working directory and environment, so users can run separate shells side-by-side in the same container.

* [  JavaScript ](#tab-panel-2699)
* [  TypeScript ](#tab-panel-2700)

JavaScript

```
// Multiple isolated terminals in the same sandboxconst dev = await sandbox.getSession("dev");return dev.terminal(request);
```

TypeScript

```
// Multiple isolated terminals in the same sandboxconst dev = await sandbox.getSession("dev");return dev.terminal(request);
```

#### xterm.js addon

The new `@cloudflare/sandbox/xterm` export provides a `SandboxAddon` for [xterm.js ↗](https://xtermjs.org/) with automatic reconnection (exponential backoff + jitter), buffered output replay, and resize forwarding.

* [  JavaScript ](#tab-panel-2701)
* [  TypeScript ](#tab-panel-2702)

JavaScript

```
import { SandboxAddon } from "@cloudflare/sandbox/xterm";
const addon = new SandboxAddon({  getWebSocketUrl: ({ sandboxId, origin }) =>    `${origin}/ws/terminal?id=${sandboxId}`,  onStateChange: (state, error) => updateUI(state),});terminal.loadAddon(addon);addon.connect({ sandboxId: "my-sandbox" });
```

TypeScript

```
import { SandboxAddon } from "@cloudflare/sandbox/xterm";
const addon = new SandboxAddon({  getWebSocketUrl: ({ sandboxId, origin }) =>    `${origin}/ws/terminal?id=${sandboxId}`,  onStateChange: (state, error) => updateUI(state),});terminal.loadAddon(addon);addon.connect({ sandboxId: "my-sandbox" });
```

#### Upgrade

To update to the latest version:

Terminal window

```
npm i @cloudflare/sandbox@latest
```

```json
{"@context":"https://schema.org","@type":"BlogPosting","@id":"https://developers.cloudflare.com/changelog/post/2026-02-09-pty-terminal-support/#page","headline":"Interactive browser terminals in Sandboxes · Changelog","description":"The Sandbox SDK now supports proxying WebSocket connections to container PTY sessions, enabling browser-based terminal UIs with output buffering, reconnection, and multiple isolated terminals per sandbox.","url":"https://developers.cloudflare.com/changelog/post/2026-02-09-pty-terminal-support/","inLanguage":"en","image":"https://developers.cloudflare.com/changelog-preview.png","dateModified":"2026-02-09","datePublished":"2026-02-09","publisher":{"@type":"Organization","name":"Cloudflare","url":"https://www.cloudflare.com/"},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"}}
```
