Skip to content

Releases: code-yeongyu/web-terminal

v0.1.0 — mobile-first web terminal on Ghostty WASM

Choose a tag to compare

@code-yeongyu code-yeongyu released this 05 Aug 16:08

web-terminal v0.1.0

First release — a mobile-first, self-hosted web terminal powered by Ghostty's VT engine (WASM).

Highlights

  • Full-spec rendering via ghostty-web — Ghostty's real VT parser compiled to WASM: truecolor, complex graphemes, CJK widths, emoji, alt-screen TUIs.
  • Disconnect-surviving sessions — PTYs live in the server; reconnect repaints from a 4 MiB replay buffer with cumulative byte offsets (mosh-inspired, over WSS).
  • Mobile-first UX — touch key toolbar (Esc/Tab/sticky Ctrl/Alt/arrows/^C/paste), safe-area insets, 44px targets, drawer sidebar at 375px, Korean IME composition.
  • File explorer sidebar — browse / upload / download / edit / delete under a jailed root.
  • herdr integration — server keeps a local herdr server alive; sidebar shows live workspaces & agent statuses via herdr's NDJSON socket API.
  • Security — argon2id password auth, HttpOnly+SameSite session cookies, per-IP login rate limiting, origin-checked WebSocket upgrades.
  • Low-bandwidth — binary WS frames, 8ms output batching, permessage-deflate, backoff-with-jitter reconnect, 15s heartbeat + live latency.

Stack

Bun 1.4 canary (native Bun.Terminal PTY) · TypeScript strict (tsgo 7) · Biome 2.5 · ghostty-web 0.4 · zod 4.

Verified

C1 happy path · C2 truecolor/CJK/emoji rendering · C3 reconnect repaint survives reload · C4 375px mobile + touch ^C + zero overflow · C5 auth 401/429/WS-reject · C6 sha256-identical file roundtrip + traversal 403 · C7 herdr snapshot · C8 public repo + green CI · C9 cloudflared HTTPS. Evidence in qa-evidence/.

Install

bun install
WT_PASSWORD='choose-a-long-password' bun run start   # http://127.0.0.1:7777