xterm.js
A fast, self-contained TypeScript library for embedding fully-featured terminals in the browser.
Repository Health
Technical Analysis
xterm.js is a frontend component that lets web applications deliver complete, interactive terminal experiences directly in the browser. It emulates a real terminal — handling curses-based apps, mouse events, rich Unicode, and VT sequences — while shipping with zero runtime dependencies in its core.
Battle-tested inside VS Code, Hyper, and Tabby, xterm.js pairs an ergonomic Terminal API with an optional GPU-accelerated WebGL renderer and a modular addon system, making it the de-facto standard for browser-based terminals, SSH clients, and cloud IDEs.
What You Get
- A dependency-free core
Terminalclass that renders and emulates a VT100-compatible terminal in any modern browser - An optional GPU-accelerated WebGL renderer addon for high-performance drawing
- A modular addon ecosystem (fit, search, web-links, attach, serialize, clipboard, unicode, ligatures, and more)
- A headless build (@xterm/headless) that runs terminal state tracking in Node.js without a DOM
- A fully typed public API via bundled TypeScript declarations, shipped as both CommonJS and ES modules
Common Use Cases
- Building browser-based SSH and shell clients that stream a remote pty to the user
- Embedding an integrated terminal inside a cloud IDE, code playground, or developer tool
- Providing container and VM management consoles in web dashboards
- Rendering live command output and interactive REPLs in web apps
Under The Hood
Architecture
The codebase is layered into three cleanly separated units under src/: common/ holds the environment-agnostic terminal core (the VT parser in common/parser, InputHandler.ts, buffer management in common/buffer, and a service layer via CoreTerminal.ts), browser/ adds DOM-facing concerns (CoreBrowserTerminal.ts, renderers, selection, links, accessibility) and headless/ provides a DOM-free build. A service-oriented design with dependency injection wires these layers, and functionality is extended through a public addon interface (Terminal.loadAddon) with each addon isolated as its own npm workspace under addons/.
Tech Stack Written almost entirely in TypeScript (~96%), the core library ships with zero runtime dependencies. It builds with the TypeScript compiler plus esbuild and webpack for bundling, publishes dual CommonJS/ESM outputs, and is linted with oxlint and ESLint. Rendering uses the browser DOM with an optional WebGL2 canvas path provided by the webgl addon.
Code Quality
Quality is high: unit tests (*.test.ts) sit alongside source across common/ and browser/, and a Playwright-driven integration suite runs against Chromium, Firefox, and WebKit. Type-aware linting is enforced with --max-warnings 0, naming conventions are checked by a dedicated ESLint config, and a benchmark harness guards performance regressions.
API Design
The public API is deliberately small and ergonomic — new Terminal(), open(element), write(data), onData(), and loadAddon() cover most needs, letting developers get a working terminal in a handful of lines. The full surface is documented in a well-maintained TypeScript declaration file (typings/xterm.d.ts), with experimental APIs clearly flagged, and a demo app plus extensive README examples ease onboarding.
Used by 41 apps in this directory
1Panel
Devops · Hosting Control Panel · Monitoring
The only open-source VPS control panel with native AI agent runtime — deploy websites, Docker stacks, and local LLMs from one web interface.
Cate
AI Code Assistants
A desktop IDE built on an infinite canvas — spread code editors, terminals, browsers, docs, and AI agents across freeform space instead of stacking windows and tabs, with layouts restored automatically.
clawless
AI Agents · Developer Tools
Run Claw AI agents entirely in the browser — no server required — with WebContainers WASM sandboxing, policy enforcement, and complete audit logging.
cmux
Developer Tools · AI Development
A native, Ghostty-based macOS terminal with vertical tabs, agent-aware notifications, and a scriptable browser built for running many parallel AI coding agent sessions instead of juggling tmux panes.
Coder
Devops · Developer Tools · Code Editors
Self-hosted cloud development environments and AI coding agents — defined in Terraform, connected via WireGuard, automatically shut down when idle.
Coolify
Devops · Hosting Control Panel
Open-source self-hosted PaaS — deploy apps, databases and 280+ services on your own servers with no vendor lock-in
Cosmos-Server
Security · Authentication
All-in-one self-hosted home server with SmartShield anti-DDoS, Nebula mesh VPN, automatic HTTPS, and a 250-app marketplace — all secured behind a unified auth layer.
DenchClaw
CRM · AI Agents
An AI-native CRM you self-host on your own machine, built on the OpenClaw agent framework, with a DuckDB backend and pre-built agent skills for managing contacts, deals, reports, and 500+ outreach integrations from natural-language chat.
Dokploy
Devops · Hosting Control Panel · Security
Self-hosted PaaS that deploys apps and databases on your own VPS using Docker, Traefik, and multi-build-system orchestration