{"slug": "ghostty-web", "name": "ghostty-web", "category": "terminal", "category_name": "Terminal and shell", "description": "", "recommenders": 9, "commenters": 13, "warners": 2, "score": 5.913, "rising": -2.95, "first": "2025-11-26", "latest": "2026-05-29", "why": "I built this with the fantastic ghostty-web project", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 10, "neutral": 3, "compare": 0, "warn": 2}, "spark": [1, 3, 0, 2, 2, 0, 2, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I built this with the fantastic ghostty-web project", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/coder/ghostty-web", "official_url": "https://github.com/coder/ghostty-web", "pricing": "", "aliases": ["ghostty-web", "Ghostty-Web", "Ghostty Web"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 773175024, "item_id": 48323439, "url": "https://news.ycombinator.com/item?id=48323439", "by": "nacs", "date": "2026-05-29", "version": null, "stance": "recommend", "quote": "Ghostty-web exists and is even API compatible with xterm.js", "excerpt": "Ghostty-web exists and is even API compatible with xterm.js (same engine that powers Ghostty): https://github.com/coder/ghostty-web/ In fact, it looks like wterm's 12KB plugin doesnt offer full term emulation and uses ghostty to support everything else: https://wterm.dev/ghostty", "context": "", "use_case": "", "switched_from": "", "story": "Wterm \u2013 Terminal Emulator for the Web"}, {"id": 772674576, "item_id": 48292161, "url": "https://news.ycombinator.com/item?id=48292161", "by": "jon-wood", "date": "2026-05-27", "version": null, "stance": "recommend", "quote": "If you haven't already it may be worth looking at https://github.com/coder/ghostty-web", "excerpt": "If you haven't already it may be worth looking at https://github.com/coder/ghostty-web which wraps libghostty in an xterm.js compatible wrapper, the focus for Ghostty has very much been the sort of things you're mentioning so it'll hopefully make a solid foundation.", "context": "", "use_case": "Web terminal", "switched_from": "", "story": null}, {"id": 760873184, "item_id": 47554574, "url": "https://news.ycombinator.com/item?id=47554574", "by": "theturtletalks", "date": "2026-03-28", "version": null, "stance": "recommend", "quote": "Check out ghostty-web[0], which is the Ghostty WASM and can be swapped with xterm.", "excerpt": "I checked your package.json and I see you\u2019re using xterm. Check out ghostty-web[0], which is the Ghostty WASM and can be swapped with xterm. 0. https://github.com/coder/ghostty-web", "context": "", "use_case": "terminal emulator in web app", "switched_from": "", "story": "Show HN: Open Source 'Conductor + Ghostty'"}, {"id": 760173312, "item_id": 47510832, "url": "https://news.ycombinator.com/item?id=47510832", "by": "rothific", "date": "2026-03-24", "version": null, "stance": "recommend", "quote": "I think Ghostty Web is also has tons of potential.", "excerpt": "Nice! I made a proof-of-concept of using Ink + Ghostty Web a few months back - we didn't end up merging it, but it's still an interesting thing that's possible. I think Ghostty Web is also has tons of potential. https://github.com/cjroth/ink-web/pull/1", "context": "", "use_case": "Terminal in browser", "switched_from": "", "story": "Show HN: Gridland: make terminal apps that also run in the browser"}, {"id": 753365664, "item_id": 47085354, "url": "https://news.ycombinator.com/item?id=47085354", "by": "rcarmo", "date": "2026-02-20", "version": null, "stance": "recommend", "quote": "I use it every day multiple hours a day", "excerpt": "I use it every day multiple hours a day and I forget it\u2019s a web terminal until I hit Ctrl+W on Firefox :)", "context": "", "use_case": "daily terminal use", "switched_from": "", "story": "Show HN: Ghostty-based terminal with vertical tabs and notifications"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 760922160, "item_id": 47557635, "url": "https://news.ycombinator.com/item?id=47557635", "by": "nwparker", "date": "2026-03-28", "version": null, "stance": "warn", "quote": "was worried by number of issues and the last release being in Dec", "excerpt": "Thanks! I actually did check it out but was worried by number of issues and the last release being in Dec (ref: https://github.com/coder/ghostty-web/issues/137 ) Crossing my fingers for a more official libghostty soon for the web! I know Hashimoto is working on it.", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Open Source 'Conductor + Ghostty'"}, {"id": 737869200, "item_id": 46116825, "url": "https://news.ycombinator.com/item?id=46116825", "by": "svat", "date": "2025-12-01", "version": null, "stance": "warn", "quote": "it failed pretty miserably (and in different ways in the two demos)", "excerpt": "The comparison has two points one of which says that for \"Complex scripts (Devanagari, Arabic)\", ghostty-web has \" Proper grapheme handling\". But when I tried something extremely simple at the https://ghostty-web.wasmer.app/ or https://ghostty.ondis.co/ demos (just `echo \"\u0915\u0935\u093f\"`), it failed pretty miserably (and in different ways in the two demos). So I'm not sure what to make of it. (Seems slightly better in the actu", "context": "", "use_case": "", "switched_from": "", "story": "Ghostty compiled to WASM with xterm.js API compatibility"}]}], "who": [], "tags": [], "use_cases": ["web terminal", "terminal emulator in web app", "terminal in browser", "daily terminal use", "terminal ui in browser", "web terminal rendering"], "compared": [{"slug": "ghostty", "name": "Ghostty", "co": 4, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 800579601, "item_id": 50036225, "url": "https://news.ycombinator.com/item?id=50036225", "by": "neomantra", "date": "2026-10-10", "version": null, "stance": "neutral", "quote": "we sync'd our ghostty-web fork [1] to sync with that", "excerpt": "Since BubbleTea v2.1 and libghostty both adopted OSC 7501, we sync'd our ghostty-web fork [1] to sync with that and smuggled the UX through the `msg`. Here's demo of it enabled in booba, which is our Golang TUI remoting tool: https://nimblemarkets.github.io/go-booba/demos/actions/ The browser UX comes as a JSON spec over OSC 7501, that spec generated from the BubbleTea Help model. [1] an overhaul of the original whic", "context": "", "use_case": "", "switched_from": "", "story": "A Terminal Protocol for Program Status (OSC 7501)"}, {"id": 769618177, "item_id": 48101136, "url": "https://news.ycombinator.com/item?id=48101136", "by": "tikimcfee", "date": "2026-05-11", "version": null, "stance": "neutral", "quote": "", "excerpt": "Your wish is my project. Glyph rendering in three.js, fully instanced and addressable and positionable instances. Handles tens of millions. Sample app loads up full GitHub repositories in the web in a few seconds. https://github.com/tikimcfee/glyph3d-js https://ivanlugo.dev/ide", "context": "", "use_case": "", "switched_from": "", "story": "Ratty \u2013 A terminal emulator with inline 3D graphics"}, {"id": 769497920, "item_id": 48093620, "url": "https://news.ycombinator.com/item?id=48093620", "by": "neomantra", "date": "2026-05-11", "version": null, "stance": "neutral", "quote": "implementing Kitty Graphics and Clipboard protocols in ghostty-web", "excerpt": "Dude, I spent the last week implementing Kitty Graphics and Clipboard protocols in ghostty-web in the Canvas render. Then I added WebGL and WebGPU renderers [1], including support for Kitty. Then I see this this project on a Monday morning... so now I have to implement Ratty Graphics Protocol?!?! [2]. Really fun project! [1] https://github.com/NimbleMarkets/ghostty-web/tree/nm-webgpu [2] https://github.com/orhun/ratt", "context": "", "use_case": "", "switched_from": "", "story": "Ratty \u2013 A terminal emulator with inline 3D graphics"}, {"id": 737884304, "item_id": 46117769, "url": "https://news.ycombinator.com/item?id=46117769", "by": "gregsadetsky", "date": "2025-12-01", "version": null, "stance": "recommend", "quote": "Here's v86 running in your browser with ghostty-web", "excerpt": "Here's v86 running in your browser with ghostty-web: https://bow-wrinkle-13326.ondis.co/ You can also play around with a real shared containerized machine here: https://ghostty.ondis.co/", "context": "", "use_case": "", "switched_from": "", "story": "Ghostty compiled to WASM with xterm.js API compatibility"}, {"id": 737819041, "item_id": 46113690, "url": "https://news.ycombinator.com/item?id=46113690", "by": "kylecarbs", "date": "2025-12-01", "version": null, "stance": "neutral", "quote": "It should have much better performance as well once we optimize.", "excerpt": "See the comparison: https://github.com/coder/ghostty-web?tab=readme-ov-file#comparison-with-xtermjs Ghostty has much better VT100 compatibility. It should have much better performance as well once we optimize.", "context": "", "use_case": "", "switched_from": "", "story": "Ghostty compiled to WASM with xterm.js API compatibility"}], "threads": [{"url": "https://news.ycombinator.com/item?id=46110842", "title": "Ghostty compiled to WASM with xterm.js API compatibility", "mentions": 6}, {"url": "https://news.ycombinator.com/item?id=48320667", "title": "Wterm \u2013 Terminal Emulator for the Web", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48093100", "title": "Ratty \u2013 A terminal emulator with inline 3D graphics", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=47549197", "title": "Show HN: Open Source 'Conductor + Ghostty'", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=46368739", "title": "Show HN: Superset \u2013 Terminal to run 10 parallel coding agents", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49984159", "title": "A Terminal Protocol for Program Status (OSC 7501)", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 1, "recommend": 1}, "2025-12": {"recommend": 3, "warn": 1}, "2026-01": {}, "2026-02": {"recommend": 2}, "2026-03": {"neutral": 1, "recommend": 2, "warn": 1}, "2026-04": {}, "2026-05": {"recommend": 2, "neutral": 1}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 773208481, "item_id": 48325530, "url": "https://news.ycombinator.com/item?id=48325530", "by": "theturtletalks", "date": "2026-05-29", "version": null, "stance": "neutral", "quote": "I use Ghostty-Web", "excerpt": "Have you looked into VibeTunnel? I got the terminal working in my browser and it runs on my computer. I can access it on my phone since we\u2019re on the same Tailscale network. I use Ghostty-Web and tried to switch to Wterm but it didn\u2019t work. I think it\u2019s because Ghostty-Web renders a canvas and wterm normal div tags.", "context": "", "use_case": "", "switched_from": "", "story": "Wterm \u2013 Terminal Emulator for the Web"}, {"id": 773175024, "item_id": 48323439, "url": "https://news.ycombinator.com/item?id=48323439", "by": "nacs", "date": "2026-05-29", "version": null, "stance": "recommend", "quote": "Ghostty-web exists and is even API compatible with xterm.js", "excerpt": "Ghostty-web exists and is even API compatible with xterm.js (same engine that powers Ghostty): https://github.com/coder/ghostty-web/ In fact, it looks like wterm's 12KB plugin doesnt offer full term emulation and uses ghostty to support everything else: https://wterm.dev/ghostty", "context": "", "use_case": "", "switched_from": "", "story": "Wterm \u2013 Terminal Emulator for the Web"}, {"id": 772674576, "item_id": 48292161, "url": "https://news.ycombinator.com/item?id=48292161", "by": "jon-wood", "date": "2026-05-27", "version": null, "stance": "recommend", "quote": "If you haven't already it may be worth looking at https://github.com/coder/ghostty-web", "excerpt": "If you haven't already it may be worth looking at https://github.com/coder/ghostty-web which wraps libghostty in an xterm.js compatible wrapper, the focus for Ghostty has very much been the sort of things you're mentioning so it'll hopefully make a solid foundation.", "context": "", "use_case": "Web terminal", "switched_from": "", "story": null}, {"id": 760922160, "item_id": 47557635, "url": "https://news.ycombinator.com/item?id=47557635", "by": "nwparker", "date": "2026-03-28", "version": null, "stance": "warn", "quote": "was worried by number of issues and the last release being in Dec", "excerpt": "Thanks! I actually did check it out but was worried by number of issues and the last release being in Dec (ref: https://github.com/coder/ghostty-web/issues/137 ) Crossing my fingers for a more official libghostty soon for the web! I know Hashimoto is working on it.", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Open Source 'Conductor + Ghostty'"}, {"id": 760873184, "item_id": 47554574, "url": "https://news.ycombinator.com/item?id=47554574", "by": "theturtletalks", "date": "2026-03-28", "version": null, "stance": "recommend", "quote": "Check out ghostty-web[0], which is the Ghostty WASM and can be swapped with xterm.", "excerpt": "I checked your package.json and I see you\u2019re using xterm. Check out ghostty-web[0], which is the Ghostty WASM and can be swapped with xterm. 0. https://github.com/coder/ghostty-web", "context": "", "use_case": "terminal emulator in web app", "switched_from": "", "story": "Show HN: Open Source 'Conductor + Ghostty'"}, {"id": 760173312, "item_id": 47510832, "url": "https://news.ycombinator.com/item?id=47510832", "by": "rothific", "date": "2026-03-24", "version": null, "stance": "recommend", "quote": "I think Ghostty Web is also has tons of potential.", "excerpt": "Nice! I made a proof-of-concept of using Ink + Ghostty Web a few months back - we didn't end up merging it, but it's still an interesting thing that's possible. I think Ghostty Web is also has tons of potential. https://github.com/cjroth/ink-web/pull/1", "context": "", "use_case": "Terminal in browser", "switched_from": "", "story": "Show HN: Gridland: make terminal apps that also run in the browser"}, {"id": 755353186, "item_id": 47209574, "url": "https://news.ycombinator.com/item?id=47209574", "by": "thoughtfulchris", "date": "2026-03-01", "version": null, "stance": "neutral", "quote": "I'm considering Ghostty web", "excerpt": "Feature request: renaming tabs! Helps keep tabs organized instead of 20 tabs with similar names. (See Zed for example) Also! I'm considering Ghostty web (https://github.com/coder/ghostty-web) for my project Ink Web. It's awesome that Ghostty can work in the browser to replace xterm.js. https://github.com/cjroth/ink-web/pull/1 Project: https://www.ink-web.dev/", "context": "", "use_case": "", "switched_from": "", "story": "Ghostty \u2013 Terminal Emulator"}, {"id": 753365664, "item_id": 47085354, "url": "https://news.ycombinator.com/item?id=47085354", "by": "rcarmo", "date": "2026-02-20", "version": null, "stance": "recommend", "quote": "I use it every day multiple hours a day", "excerpt": "I use it every day multiple hours a day and I forget it\u2019s a web terminal until I hit Ctrl+W on Firefox :)", "context": "", "use_case": "daily terminal use", "switched_from": "", "story": "Show HN: Ghostty-based terminal with vertical tabs and notifications"}, {"id": 752162672, "item_id": 47010167, "url": "https://news.ycombinator.com/item?id=47010167", "by": "abelanger", "date": "2026-02-13", "version": null, "stance": "recommend", "quote": "I built this with the fantastic ghostty-web project", "excerpt": "Hi everyone, I enjoyed building this TUI for myself and wanted to write down how I did it. I appreciate all the thoughts and feedback! The web app is our main investment, but I think there's a slice of developers who really like to interact with TUIs, so I'm going to keep working on it. For the demo at https://tui.hatchet.run, to answer some messages asking about it: I built this with the fantastic ghostty-web projec", "context": "", "use_case": "terminal UI in browser", "switched_from": "", "story": "Building a TUI is easy now"}, {"id": 742838176, "item_id": 46427386, "url": "https://news.ycombinator.com/item?id=46427386", "by": "hoakiet98", "date": "2025-12-29", "version": null, "stance": "recommend", "quote": "ghostty-web looks interesting. full xterm compatibility as well. will give it a try!", "excerpt": "ghostty-web looks interesting. full xterm compatibility as well. will give it a try!", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Superset \u2013 Terminal to run 10 parallel coding agents"}, {"id": 742793888, "item_id": 46424618, "url": "https://news.ycombinator.com/item?id=46424618", "by": "theturtletalks", "date": "2025-12-29", "version": null, "stance": "recommend", "quote": "uses ghostty-web[0] instead of xterm", "excerpt": "Same my friend, I'm building a custom frontend for Vibetunnel that uses ghostty-web[0] instead of xterm! 0. https://github.com/coder/ghostty-web", "context": "", "use_case": "Web terminal rendering", "switched_from": "xterm", "story": "Show HN: Superset \u2013 Terminal to run 10 parallel coding agents"}, {"id": 737871200, "item_id": 46116950, "url": "https://news.ycombinator.com/item?id=46116950", "by": "gregsadetsky", "date": "2025-12-01", "version": null, "stance": "recommend", "quote": "Made it work on my iPhone and opened a PR", "excerpt": "Thanks for confirming! Made it work on my iPhone and opened a PR :-) https://github.com/coder/ghostty-web/pull/76", "context": "", "use_case": "terminal in browser on iPhone", "switched_from": "", "story": "Ghostty compiled to WASM with xterm.js API compatibility"}, {"id": 737869200, "item_id": 46116825, "url": "https://news.ycombinator.com/item?id=46116825", "by": "svat", "date": "2025-12-01", "version": null, "stance": "warn", "quote": "it failed pretty miserably (and in different ways in the two demos)", "excerpt": "The comparison has two points one of which says that for \"Complex scripts (Devanagari, Arabic)\", ghostty-web has \" Proper grapheme handling\". But when I tried something extremely simple at the https://ghostty-web.wasmer.app/ or https://ghostty.ondis.co/ demos (just `echo \"\u0915\u0935\u093f\"`), it failed pretty miserably (and in different ways in the two demos). So I'm not sure what to make of it. (Seems slightly better in the actu", "context": "", "use_case": "", "switched_from": "", "story": "Ghostty compiled to WASM with xterm.js API compatibility"}, {"id": 737850336, "item_id": 46115646, "url": "https://news.ycombinator.com/item?id=46115646", "by": "gregsadetsky", "date": "2025-12-01", "version": null, "stance": "recommend", "quote": "Stellar work, Kyle! Cheers", "excerpt": "Hey all, you can try ghostty-web here: https://ghostty.ondis.co/ Stellar work, Kyle! Cheers", "context": "", "use_case": "Ghostty terminal in browser", "switched_from": "", "story": "Ghostty compiled to WASM with xterm.js API compatibility"}, {"id": 737831776, "item_id": 46114486, "url": "https://news.ycombinator.com/item?id=46114486", "by": "syrusakbary", "date": "2025-12-01", "version": null, "stance": "recommend", "quote": "updated from xterm into ghostty-web without any issue!", "excerpt": "I've set up an online demo using Wasmer for local execution, so everyone can try easily! (try typing `cowsay hello`): https://ghostty-web.wasmer.app/ How to try it locally: npx @ghostty-web/demo@next # The preferred way # OR wasmer run wasmer/ghostty-web -> Go to http://localhost:8080/ Source code: https://github.com/wasmerio/webassembly.sh (updated from xterm into ghostty-web without any issue!)", "context": "", "use_case": "", "switched_from": "xterm.js", "story": "Ghostty compiled to WASM with xterm.js API compatibility"}, {"id": 737090304, "item_id": 46068144, "url": "https://news.ycombinator.com/item?id=46068144", "by": "xmorse", "date": "2025-11-27", "version": null, "stance": "recommend", "quote": "Super cool.", "excerpt": "Super cool. I just created a similar project that runs Ghostty in the terminal. Meaning you can create something like tmux from scratch. I will use it to add support for colored bash tool output in opencode. https://github.com/remorses/opentui-ansi-vt.git", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Ghostty-Web \u2013 Ghostty in the Browser"}, {"id": 737045872, "item_id": 46065367, "url": "https://news.ycombinator.com/item?id=46065367", "by": "jauntywundrkind", "date": "2025-11-26", "version": null, "stance": "neutral", "quote": "ghostty-web has a wasm build", "excerpt": "Nearby, ghostty-web has a wasm build. Probably not inconceivable to spin a more general wasm build too. https://github.com/coder/ghostty-web https://news.ycombinator.com/item?id=46060087", "context": "", "use_case": "", "switched_from": "", "story": "Bonsai_term: A library for building dynamic terminal apps by Jane Street"}]}