Vibeleaderboard
Index / tool
Visit wterm.dev
Category
Developer Tools
Rank
Pricing
Open Source
Type
TOOL
Latest release
v0.5.0
Date

About

Vercel Labs's web terminal emulator — a polished xterm-compatible terminal you can embed in any web app.

What it does

wterm combines a browser terminal engine with DOM rendering, framework adapters, and optional shell and Markdown packages. Its Zig core compiles to WebAssembly, parses terminal escape sequences, and updates only changed rows during animation frames.

Why it's ranked here

The package split is thoughtful: applications can choose a small built-in core or a larger Ghostty backend, then add React, Vue, Bash, or Markdown support. Native DOM output also preserves ordinary browser selection, search, clipboard behavior, and screen reader access.

What's good

It covers demanding terminal behavior, including alternate screens, scrollback, 24-bit color, wide Unicode cells, mouse reporting, focus events, synchronized output, and automatic resizing. WebSocket transport includes binary framing and reconnection, while CSS custom properties make themes straightforward to customize.

Tradeoffs

Full VT compliance requires the roughly 400 KB Ghostty backend instead of the roughly 12 KB built-in core. The Markdown renderer intentionally delegates wrapping to the terminal rather than calculating ANSI-aware line widths. End-to-end coverage targets Chromium only in the supplied configuration.

How to use it well

Choose it for browser IDEs, remote shell clients, interactive documentation, or product demos that need genuine terminal behavior. Start with the lightweight core, add Ghostty when compatibility matters, and use the framework adapter matching your application. It does not provide the remote PTY server itself.

Technical notes+

README.md describes a Zig-to-WASM core, dirty-row rendering through requestAnimationFrame, mode 2026 synchronized output, ResizeObserver sizing, and a pluggable Ghostty backend. package.json defines a private pnpm and Turbo monorepo requiring Node.js 24 or newer and pnpm 11 or newer. vitest.workspace.ts covers six packages, while e2e/playwright.config.ts runs fully parallel Playwright tests against a Vite preview using Desktop Chrome. scripts/sync-versions.mjs treats the core package version as canonical, and scripts/gen-unicode-width.mjs generates merged East Asian Width ranges from Unicode data. web/js/input.js and web/js/renderer.js re-export built DOM artifacts for the vanilla demo.

Observed

License
Apache-2.0
Primary implementation
Zig core compiled to WebAssembly, with TypeScript and JavaScript packages around it
Package surface
Separate core, DOM, React, Vue, Ghostty, just-bash, and Markdown packages
Interfaces
Headless terminal core, vanilla DOM renderer, React component and hook, Vue component, and WebSocket transport
Browser support tested
Playwright end-to-end configuration includes Desktop Chrome on Chromium
Package management
Private pnpm monorepo orchestrated with Turbo
Test structure
Vitest workspace covers core, DOM, Ghostty, React, just-bash, and Markdown packages

Read from README.md, package.json, packages/@wterm/dom/src/index.ts, packages/@wterm/vue/src/index.ts, packages/@wterm/core/src/index.ts, packages/@wterm/react/src/index.ts, packages/@wterm/ghostty/src/index.ts, packages/@wterm/markdown/src/index.ts, packages/@wterm/just-bash/src/index.ts, vitest.workspace.ts, e2e/playwright.config.ts, scripts/sync-versions.mjs, scripts/gen-unicode-width.mjs, web/js/input.js, web/js/renderer.js.

What it can do

  • Execute terminal commands in a web browser

    Command line instructionsTerminal command results and output

  • Embed interactive terminal in web applications

    Web application codeFunctional terminal interface within the web app

  • Process xterm-compatible terminal sequences

    Terminal escape sequences and control codesRendered terminal display with proper formatting

  • Provide cross-platform terminal access

    Web browser on any operating systemConsistent terminal interface regardless of platform

  • Handle terminal text input and output

    Keyboard input and system responsesInteractive terminal session with real-time feedback

Tags

terminalwebvercelxtermemulator

Tech Stack

Node.js

Media

wterm

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.