Agent skill · software engineering · aradotso

wterm-web-terminal

Web terminal emulator with Zig/WASM core, DOM rendering, and React/vanilla JS bindings

Why this skill is useful

Provides specific commands and integration patterns for embedding a web terminal in React applications that the AI wouldn't reliably generate on its own.

What it needs

Requires @wterm/core, @wterm/dom, @wterm/just-bash, @wterm/react installed locally. About 5k tokens when loaded. Last updated 2026-07-09. 70 stars on the source repository.

What this skill does

wterm Web Terminal Emulator Skill by ara.so — Daily 2026 Skills collection. wterm ("dub-term") is a web terminal emulator with a Zig/WASM core (~12 KB binary) for near-native VT100/VT220/xterm parsing. It renders to the DOM — giving you native text selection, copy/paste, browser find, and accessibility for free. Supports WebSocket PTY backends, alternate screen buffers, 24-bit color, scrollback, and themes. Packages Package Purpose --- --- @wterm/core Headless WASM bridge + WebSocket transport @wterm/dom DOM renderer + input handler (vanilla JS) @wterm/react React component + useTerminal hook @wterm/just-bash In-browser Bash shell @wterm/markdown Render Markdown in the terminal Installation Copy the WASM binary to your public directory: React Usage Basic Terminal Component useTerminal Hook Programmatic Input/Output Vanilla JS Usage In-Browser Bash (No Backend) Themes Built-in themes: default, solarized-dark, monokai, light Custom Theme via CSS Custom Properties WebSocket PTY Backend (Node.js) Next.js Integration Markdown in Terminal Configuration Reference createTerminal / useTerminal Options Option Type Default Description --- --- --- --- wasmUrl string '/wterm.wasm' Path to WASM binary wsUrl string — WebSocket PTY endpoint transport Transport — Custom transport (overrides wsUrl) theme string 'default' Built-in theme name scrollback number 1000 Scrollback buffer rows cols number auto Initial column count rows number auto Initial row count onData (data: string) => void — Raw output callback onConnect () => void — Connection established onDisconnect () => void — Connection closed onResize (cols, rows) => void — Resize event callback Development Setup Troubleshooting WASM file not found (404) Terminal not rendering / blank screen Container must have explicit width and height (not auto) Wrap in dynamic(..., { ssr: false }) in Next.js — WASM requires browser APIs Check browser console for WASM instantiation errors WebSocket connection refused Verify PTY backend is runni …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills aradotso/wterm-web-terminal

View the source on GitHub

Browse the @skills marketplace