Ghostty for the web with xterm.js API compatibility — giving you a proper VT100 implementation in the browser, not a JavaScript approximation of one.
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
npx @ghostty-web/demo@next
This starts a local HTTP server with a real shell on http://localhost:8080 . Works best on Linux and macOS.
Comparison with xterm.js
xterm.js is everywhere—VS Code, Hyper, countless web terminals. But it has fundamental issues:
... continue reading