Repository navigation
Releases: code-yeongyu/web-terminal
Releases · code-yeongyu/web-terminal
Release list
v0.1.0 — mobile-first web terminal on Ghostty WASM
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