{"repo":"code-yeongyu/web-terminal","free":true,"listed":false,"github":"https://github.com/code-yeongyu/web-terminal","clone":"git clone https://github.com/code-yeongyu/web-terminal.git","description":"Mobile-first self-hosted web terminal powered by Ghostty WASM — disconnect-surviving sessions, file explorer, herdr integration","language":"TypeScript","stars":19,"topics":["bun","ghostty","mobile","mosh","pty","self-hosted","terminal","typescript","wasm","websocket"],"license":"MIT","category":"self-hosted-apps","readme_excerpt":"web-terminal A mobile-first, self-hosted web terminal powered by Ghostty's VT engine compiled to WebAssembly — with sessions that survive network drops, a built-in file explorer, and herdr integration. Why Most web terminals die with the WebSocket. This one is built around the part of mosh that actually matters over TCP: the server owns the terminal, not the connection. - Full-spec rendering — the client renders through ghostty-web , Ghostty's real VT parser compiled to a 400 KB WASM module: truecolor, complex grapheme clusters, CJK widths, emoji, alt-screen TUIs. - Disconnect-surviving sessions — PTYs live in the server. Lose the network, close the tab, switch from Wi-Fi to LTE: reconnect and the session is exactly where you left it, repainted from a bounded replay buffer with cumulative byte offsets. - Low-bandwidth friendly — binary WebSocket frames, 8 ms output batching, permessage-deflate, exponential-backoff reconnect with jitter, 15 s heartbeat with live latency readout. - Mobile-first UX — a touch key toolbar (Esc / Tab / sticky Ctrl / arrows / ^C / paste), safe-area insets, 44 px touch targets, drawer-mode sidebar, clean at 375 px, Korean IME composition support. - Files sidebar — browse, upload, download, edit, and delete files under a jailed root directory. - herdr integration — the server keeps a local herdr server alive (auto-start on boot and on demand) and the sidebar shows its live workspaces and agent statuses over herdr's NDJSON socket API. Quick start Requi","default_branch":null,"files":null,"tree":[],"storefront":"/r/code-yeongyu","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/code-yeongyu/web-terminal/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}