A terminal emulator for the web

wterm (pronounced "dub-term") renders to the DOM — native text selection, copy/paste, find, and accessibility come for free. The core is written in Zig and compiled to WASM for near-native performance.

Example uses just-bash. See also: SSH, local.

Features

  • Zig + WASM core — VT100/VT220/xterm escape sequence parser compiled to a ~12 KB .wasm binary
  • DOM rendering — native text selection, clipboard, browser find, screen reader support
  • Dirty-row tracking — only touched rows are re-rendered each frame via requestAnimationFrame
  • Themes — CSS custom properties with built-in Default, Solarized Dark, Monokai, and Light themes
  • Alternate screen buffervim, less, htop work correctly
  • Scrollback history — configurable ring buffer
  • 24-bit color — full RGB SGR support
  • Auto-resizeResizeObserver-based terminal resizing
  • WebSocket transport — connect to a PTY backend with reconnection