wterm

wterm is a Vercel Labs terminal emulator for the web, with a Zig/WASM core and React, Vue, DOM, Ghostty, Bash, and Markdown packages.

Routing Summary

Use wterm as the Vercel Labs web-terminal primitive when a React or browser-agent console needs DOM text selection, copy/paste, accessibility, WASM parsing, and PTY WebSocket transport. Route full product-console decisions through Browser Agent Console because auth, PTY lifecycle, reconnect behavior, and permissions are outside the component.

What It Does

wterm renders terminals into the DOM, so native browser text selection, copy/paste, find, and accessibility are available without canvas extraction tricks. Its README describes a lightweight Zig/WASM terminal parser, dirty-row rendering through requestAnimationFrame, CSS-variable themes, alternate screen support, scrollback, 24-bit color, auto-resize, and WebSocket transport for PTY backends. Source: vercel-labs/wterm README, 2026-07-03

The React package is the bookmark's concrete artifact. The local image shows the intended minimal integration: import Terminal from @wterm/react, import its CSS, and render <Terminal />. Treat that as launch-marketing shorthand, not the full integration story: serious browser consoles still need auth, PTY lifecycle, resize handling, scrollback limits, and transport cleanup. Source: X/@ctatedev and local image review, 2026-07-03

Stack Fit

Route through Browser Agent Console when the product goal is operating a real remote CLI from a browser. wterm is the frontend terminal primitive; the larger console still needs worker-side tmux or PTY ownership, stateless control-plane streaming, reconnect behavior, input batching, and permission boundaries.

wterm also sits beside Terminal Aesthetics: it is an implementation primitive, while terminal aesthetics is a visual style. Do not confuse the two.

Version Snapshot

Checked 2026-07-03:

Surface Snapshot
npm packages @wterm/react@0.3.0 and @wterm/core@0.3.0, both published 2026-04-30.
GitHub vercel-labs/wterm, Apache-2.0, 3,286 stars / 145 forks at review.
Source revision main HEAD 641ae91a08a23b2a4259eb0c567cbe77083dcdf3; public tags stop at v0.2.1, so npm 0.3.0 has no matching public tag found.
Package caveat The unscoped wterm npm package is unrelated test metadata; use scoped @wterm/* packages.

Version check source: npm registry, GitHub API, and git ls-remote, 2026-07-03.


Timeline