Terminal & 3D Phase

MultiTerminals

Windowed xterm.js terminals with full Claude Code functionality. Multiple real terminal sessions, draggable and resizable, running in the browser.

TypeScript Created Jul 26, 2025 15.3 MB
terminal-1 ~/projects
terminal-2 ~/logs
claude-code
window manager simulation

MultiTerminals is a browser-based window manager for terminal sessions. Each terminal is a real xterm.js instance backed by a WebSocket-connected PTY process on the server. You can spawn, drag, resize, stack, and close terminal windows exactly like a desktop environment -- but everything runs in a single browser tab.

This was the biggest project in the Terminal/3D phase. The 15.3 MB codebase reflects the ambition: full window management, full terminal emulation, and Claude Code integration so you could run AI-assisted development across multiple terminals simultaneously.

Window Management

Drag, resize, minimize, maximize, z-order stacking. Full desktop-like window management built from scratch in the browser.

xterm.js Terminals

Real terminal emulation with full ANSI support, Unicode, 256 colors, mouse events, and scrollback. Not a simulation.

WebSocket PTY Backend

Each terminal connects to a server-side PTY via WebSocket. Low latency, full interactivity, real shell processes.

Claude Code Integration

Dedicated Claude Code terminal mode. Run AI-assisted coding sessions alongside regular shells. The multi-agent dream.

TypeScript xterm.js WebSocket Node.js node-pty Custom WM Engine HTML/CSS Claude Code API
Browser Server +--------------------------+ +---------------------+ | WindowManager | | PTY Manager | | ├── Window (drag/resize) | WS | ├── pty.spawn() | | │ └── XTermAdapter | <------> | │ └── /bin/bash | | ├── Window | WS | ├── pty.spawn() | | │ └── XTermAdapter | <------> | │ └── /bin/zsh | | └── Window | WS | └── pty.spawn() | | └── ClaudeAdapter | <------> | └── claude-code | +--------------------------+ +---------------------+
15.3
MB Codebase
TS
Primary Language
N
Terminals Limit
<5ms
WS Latency Goal