{"repo":"coder/ghostty-web","free":true,"listed":false,"github":"https://github.com/coder/ghostty-web","clone":"git clone https://github.com/coder/ghostty-web.git","description":"Ghostty for the web with xterm.js API compatibility","language":"TypeScript","stars":2725,"topics":["browser","ghostty","library","terminal"],"license":"MIT","category":"cli-tools","readme_excerpt":"ghostty-web Ghostty for the web with xterm.js API compatibility — giving you a proper VT100 implementation in the browser. - Migrate from xterm by changing your import: @xterm/xterm → ghostty-web - WASM-compiled parser from Ghostty—the same code that runs the native app - Zero runtime dependencies, 400KB WASM bundle Originally created for Mux (a desktop app for isolated, parallel agentic development), but designed to be used anywhere. Try It - Live Demo on an ephemeral VM (thank you to Greg from disco.cloud for hosting). - On your computer: This starts a loopback-only HTTP server with a real shell on http://127.0.0.1:8080 . The demo protects /ws with a per-run same-origin token and rejects cross-origin WebSocket handshakes. Works best on Linux and macOS. To intentionally bind somewhere else, set HOST= . If you serve the demo through extra hostnames or a wildcard bind such as HOST=0.0.0.0 , also set GHOSTTY ALLOWED HOSTS=host1,host2 . Avoid remote exposure unless you understand the risk: the demo starts a real local shell. Comparison with xterm.js xterm.js is everywhere—VS Code, Hyper, countless web terminals. But it has fundamental issues: Issue xterm.js ghostty-web ---------------------------------------- ---------------------------------------------------------------- -------------------------- Complex scripts (Devanagari, Arabic) Rendering issues ✓ Proper grapheme handling XTPUSHSGR/XTPOPSGR Not supported ✓ Full support xterm.js reimplements terminal emulation in JavaScrip","default_branch":null,"files":null,"tree":[],"storefront":"/r/coder","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/coder/ghostty-web/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."}