A terminal emulator for the web.
wterm (“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.
| Package | Description |
|---|---|
@wterm/core |
Headless WASM bridge + WebSocket transport |
@wterm/dom |
DOM renderer, input handler — vanilla JS terminal |
@wterm/react |
React component + useTerminal hook (TypeScript) |
@wterm/just-bash |
In-browser Bash shell powered by just-bash |
@wterm/markdown |
Render Markdown in the terminal |
.wasm binary (release build)requestAnimationFramevim, less, htop, and similar apps work correctlyResizeObserver-based terminal resizingpnpm install
zig build
For a release build:
zig build -Doptimize=ReleaseSmall
pnpm build
Serve the web/ directory with any static file server:
cd web && python3 -m http.server 8000
All dev servers use portless to avoid hardcoded ports. Each app is served at a .localhost URL (e.g. nextjs-example.wterm.localhost).
cp web/wterm.wasm examples/nextjs/public/
pnpm --filter nextjs dev
zig build test
Apache-2.0
We use cookies
We use cookies to analyze traffic and improve your experience. You can accept or reject analytics cookies.