It is pretty annoying to see all of the dismissive comments on this idea, in that it seems that the majority of HN audience are still stuck on the TUI-superiority mindset and they do not care about GUIs at all.
Two arguments:
- TUIs are not inherently superior to GUIs
- SSH, as a transport layer, should support not just forwarding a pty (as a TUI display layer), but a GUI display layer as well
In fact, these two arguments were already realized by UNIX 30 years ago, and we already have one solution: the X protocol and ssh -X.
Unfortunately, X did not win out. We did not get the promised future where one can ssh -X into a remote machine, run gnome-control-center, and a settings window pops up and I can configure my remote computer. (If you believe that this works, try it out yourself. It is an abysmal experience.)
However the above needs still needed to be satisfied by so much people, and apps that needed it started to be developed as web servers, stuff like jupyter notebooks. It turns out that the web’s document format coupled with a styling solution and a client-side scripting language, with all of its warts and drawbacks, became a viable solution as a display layer for interactive apps. In fact, since it started from remote documents, network transparency is built-in.
It would be dumb to not realize that the HTML/CSS/JS stack did win a dominant position for desktop apps, with all of the Electron apps, and utilize the web as a display layer for the above. I see the project in a similar vein, i.e. utilizing HTML/CSS/JS to provide a display layer for remote apps via SSH.
Also note that Electron apps has the same split with X, where the display server and the client are separated: it's called the "renderer process" and the "main process", and the two processes talk via IPC (where the display server would be the renderer process running embedded Chromium, the display client would be the Electron main process, and the stuff that the client sends to the server would be the contents of the renderer JS bundle). I think, theoretically, it would be possible to run the main process separated from the renderer process on a different machine, with an appropriate IPC transport. I think this would be not far from the above idea?
NOnok22kon1 小时前
people still want to believe that Electron apps won because "web developers are cheaper than real native developers"
they still dont understand Electron is vastly superior technology, and the fact that it might be cheaper is a side-bonus, not the main reason for its usage
BTW, what even is the "native GUI" of Windows that you are supposed to use if "you care about your users"? It seems not even Microsoft knows the answer to this question.
DIdivan1 小时前
> still dont understand Electron is vastly superior technology
in what sense crossplatoform desktop-wrapper around typesetting engine is a 'vastly superior technology' to native UI frameworks?
OTotabdeveloper425 分钟前
In the sense that typesetting and text is the rabbit hole that is 90% of UI effort. Native UI frameworks don't bother fixing the real hard problems, they focus on "widgets" instead.
(Not that the web stack is a good solution to this, but at least they're making an effort and they understand the difficult issues.)
CLclumsysmurf1 小时前
> theoretically, it would be possible to run the main process separated from the renderer process on a different machine, with an appropriate IPC transport.
Is this really possible? If Electron apps could do this, and we could run them on a Linux SBC like RPI with the renderer on the user's laptop, that would be interesting ...
VAValodim1 小时前
> Unfortunately, X did not win out. We did not get the promised future where one can ssh -X into a remote machine, run gnome-control-center, and a settings window pops up and I can configure my remote computer.
Personally I'm glad that's the case. Configuring servers via gui is an abomination, and I hope it stays in the windows world.
WAwalrus011 小时前
I for one am glad that 'webmin' is effectively dead, and the 'Cockpit' thing that ships with a default Fedora install is much less offensive in terms of how it mangles system configuration files you might want to otherwise edit by hand.
HAhatradiowigwam13 小时前
This appears to me like a solution in search of a problem, like many others before it...the quote below seems relevant to this effort.
"Those who do not understand Unix are condemned to reinvent it, poorly." ~Henry Spencer
HUhughw11 小时前
I hired a programmer and after giving him his Linux laptop let him set up a few things. A couple hours later he asked me where he could get PuTTY for it, and I recognized a huge gap in my interview coverage.
SYsyntheticnature11 小时前
Indeed, a new hire should be able to use Google to find https://puttygen.com/download-putty#Download_PuTTY_on_Linux_... in short order
evil grin
PEpetee7 小时前
https://www.chiark.greenend.org.uk/~sgtatham/putty/
puttygen.com looks super fishy, the disclaimer:
> Puttygen software is not created, nor supported by Puttygen.com. The program has been tested and is believed to be safe. [...] The use of Puttygen through Puttygen.com is done at your own discretion and risk
Edit: or is that the evil grin?
GAGarlef59 分钟前
or just ask an llm
HUhughw11 小时前
multiple issues right
GLglitchc6 小时前
apt install putty seems... useful? Don't get it.
WAwalrus015 小时前
Ever hired someone who, when you ask them to send you an ssh key for access to something, sends you their private key? Yeah, that's happened more than once.
FRfrollogaston8 小时前
Gotta auto-reject anyone listing Windows experience on resume
EMem-bee7 小时前
works for me. are you hiring? :-)
PDpdntspa4 小时前
wow, what a way to prejudice against people fluent in multiple paradigms
MAmacrocosmos8 小时前
I dislike this story and it’s because I can believe it.
ANanalog_daddy6 小时前
Any experience with ‘programmers’ not knowing git?
COconnicpu3 小时前
When I went to college (early 2010s) professors were still encouraging students to use SVN, so I probably have a fair number of peers who didn't learn git until they got out into the real world
AUAussieWog934 小时前
Honestly, I suspect you'd find a lot of self-taught people have random gaps in their knowledge that someone with a mentor/degree won't.
PVpvdebbe2 小时前
I had a linguist attend a CS class and he didn't know how to copy and paste.
WHwhatever111 小时前
No. It’s just that now more people are using Linux the more the ux decisions that were made 40 years ago will be questioned.
Almost all dev facing machines have ssh server installed and accessible.
Why ssh terminal has to look like character-only trash from 1960s? Why a TUI is the best thing we pipe through ssh? Why I cannot watch a 4k movie in the terminal or browse the web using pinch to zoom ?
1B1bpp6 小时前
A terminal UI is the best thing we pipe through SSH because it's the tool we built specifically for piping a terminal UI. Abandoning Xorg has admittedly made streaming a GUI over SSH less simple, but still not impossible, and you can forward whatever data you want (a VLC stream of a 4k movie) with tunneling.
I do agree that new Linux users who have different needs from their computers might cause some incentive to change some of these 40 year old UX decisions. We don't really have a modern, capable remote desktop solution at least on par with RDP.
JOjohn01dav8 小时前
> Why a TUI is the best thing we pipe through ssh?
`ssh -XC` (look up SSH X forwarding). You can also easily tunnel remote desktop over ssh.
> Why I cannot watch a 4k movie in the terminal or browse the web using pinch to zoom ?
Kitty, sixel, and iterm2
PAPalmPilotProMax5 小时前
>character-only trash from 1960s
You take that back!
>Why a TUI is the best thing we pipe through ssh? Why I cannot watch a 4k movie in the terminal or browse the web using pinch to zoom?
The old magick speak of X forwarding. The newer wizards now use waypipe.
PDpdntspa4 小时前
because it is TEXT
you want your GUI then set up VNC
WAwalrus015 小时前
> Why ssh terminal has to look like character-only trash from 1960s?
We should re-implement it with Comic Sans and happy shiny buttons to click everywhere? Click here for "ls -alh" ?
SIsilon421 小时前
No, but I wouldn't mind if keyboard worked properly.
FOforgot_old_user12 小时前
that seems a little harsh. I think there is a real usability gap which this takes a crack at.
Some ideas like using viewing a linux dir over _ssh_ using native UI components.. seem cool.
I do agree, some of these do seem like they have already been solved in other ways (like an sshfs mount).
SHshakna6 小时前
That is exactly what X was designed to do. And part of why X is considered insecure today.
ADadvael5 小时前
I mean, I do this all the time via sshfs. I don't think these tools or ideas are bad, they just mostly aren't new, the innovation is maybe a particular ux or a particular bundle of toys?
HEhedgehog11 小时前
This resembles Plan9 more than UNIX. I wouldn't put UNIX up on a pedestal.
PRprojektfu11 小时前
Plan9 is funny because it's what UNIX might look like if the people working on UNIX understood UNIX, i.e. everything is a file and simple primitives are composed into complex systems.
HEhedgehog10 小时前
They had the benefit of hindsight and bigger hardware, but UNIX got too popular and now we're struggling to move past it. It would have been interesting to see what the fourth try would be like (though looking at Go I would probably not completely like it).
LSlstodd9 小时前
yea, as sibling said. p9 was not possible on pdp11. what was possible there was .. v7 and 2bsd. see https://github.com/felipenlunkes/run-ancient-unix
p9 was done when "current state of unix" was already fixed in form of aix, sysv and bsds, it suffered the same fate as say beos.
FUfulafel3 小时前
BeOS was marketed, there was an attempt. But it was a harder sell. Plan 9 on the other hand was was kept as a research project only and was restrictively licensed in the 90s when it was actively developed.
MOModified301912 小时前
> "Those who do not understand Unix
Funny enough, that right there is the actual fundamental problem here.
I am reminded of a post or blog long ago that talked about programmable thermostats and how awful they are for most people to use despite how powerfully in the weeds one can get with them. Basically summarizing the issue as something like “People do not want to learn your arcane system, they just want the benefit it’s advertising”. A good UI knows how to minimize that gap.
XOXorNot10 小时前
I mean that's true but the number of UIs which simply don't add access to necessary features in the name of "simplicity" is enormous.
The poster child of this is the Microsoft Office ribbon.
VIvirajk_311 小时前
UNIX/GNU/LINUX is not TUI. Period.
TWtway2356 小时前
this kind of dismissive comments is why many apps have an awful usability. If someone thinks a web interface would be easier than a text terminal, there's at least one customer in need for a product (which either doesn't exist or they could not "googlify") - it's also why I welcome AI generating apps on the fly, "replacing" engineers who "know better" ;)
JCjcelerier5 小时前
> there's at least one customer in need for a product
just because whales exist does not mean feeding them is a goal to aim for as a society. 99.9% of technology could disappear tomorrow and life would become better.
TWtway2354 小时前
hyperbole: a lot of tech we give for granted today, started as niche products for "whales" like government agencies, so I suppose computers and Internet shouldn't exist and life would be better
KJkjkjadksj6 小时前
Why learn to do anything?
TWtway2354 小时前
compilers, IDE, syntax highlighting too, everyone should learn assembly, ed, and stick to b&w
WAwalrus015 小时前
It's like they decided to reinvent webmin
PRprotocolture2 小时前
>"Those who do not understand Unix are condemned to reinvent it, poorly." ~Henry Spencer
I need something like this for network management tools.
ASaslihana11 小时前
I think this is a `There’s no such thing as bad publicity`
TRtrashb15 小时前
I like the idea of separating the frontend and backend of a graphical app. But I feel like this is hardly a novel idea, maybe I'm missing something.
I take it you don't know about "X11Forwarding yes" or "html5 web app"
For browsers, capabilities like connecting to Unix sockets have been dismissed as extremely niche
That is a security concern, that's why it isn't implemented. At least raw unix socks. You can have WebSockets and other ports only limited to http.
MRmrcslws14 小时前
Quick response regarding security:
On various Mozilla forums that I saw, the discussion was basically:
1. We can't just allow the browser to connect to any socket, since many either explicitly don't want browsers connecting to them, or are oblivious to browsers.
2. ...so we need to also add some sort of allow list
3. ...this is getting too complicated for such a niche feature.
So I think the nicheness was the high-order bit here.
(FYI, Outer Loop does add an allow-list: https://outerloop.sh/unix-domain-sockets/)
WAwang_li5 小时前
JavaScript and wasm should not be able to open generalized networks sockets because no one wants an asshole to be able to buy an ad on a shitty ad network and send malicious code to people’s browsers which attacks all the internal devices on the user’s network simply because the user wanted to read a movie review.
UNunknown13 小时前
[deleted]
PUpurplehat_15 小时前
i'm trying to understand how outer shell works here. on the website you give the following as your motivation:
> Apps like Jupyter and Tensorboard are not typically visible to standard web browsers if they’re running on remote servers, because it would be terribly unsafe to let the whole internet touch this app. Instead, they run on a local port on the server, which your computer can’t access directly.
> Classically, to get access to these, you had to open a new terminal and run:
> ssh -L 24601:localhost:8889 mrcslws@lambda4.mycompany.com &
> ssh -L 24602:localhost:6006 mrcslws@lambda4.mycompany.com &
is this true? isn't the normal thing just to do this ssh forwarding for prototyping, then for deployment, you set up a website like myjupyternotebook.com, and then set up auth so that others can't access it. HTTP basic auth is not too much work.
if you want SSH, not HTTP, to be what's publicly exposed, there's other options too, like putting it behind a VPN or tunnel.
all this to say, outer loop is super cool, but I don't get it. I must be missing something about why you built it, so could you help me understand?
MRmrcslws14 小时前
I think there are different clusters of people who use servers, SSH, etc.
I'm closer to the cluster that uses them for deep learning experiments, GPU kernel optimization, robot development (a robot is just a server that moves!)... use cases where you are explicitly using a remote computer.
For this cluster of people, I think this tool feels more intuitive than the flow you suggest. But maybe I'm projecting!
And, to me, this just feels like one of the fundamental things that could exist; it's like a graphical operating system, but remote-first.
QUqueenkjuul9 小时前
I still don't get it. Isn't this what X11 forwarding is for?
MRmrcslws9 小时前
It's too slow. I mention this in the video at 1:20 - 1:50.
_D_def14 小时前
I guess it saves you the hassle of dealing with reverse proxies and TLS certs if your use case is "userbase is 1 person and it is me, and i only access services from a desktop os"
KOKomoD14 小时前
Ever since I started using Caddy, doing that has been soooo easy.
Download the binary, make a Caddyfile
myservice.example.com {
basic_auth {
admin some_password_hash_here
}
reverse_proxy :3000
}
And then just "./caddy start"
QUqudat9 小时前
I just use https://tuns.sh which has a handy bash script to make the ssh tunnel simple
GIgizzlon13 小时前
Caddy can also proxy to unix sockets !
NANatfan14 小时前
does this work with multiple caddy servers? ie can you bind multiple caddy servers to port 80/443?
KOKomoD14 小时前
You can have multiple configs in a single Caddyfile and reload when you make changes, and it'll just route them as you wish, e.g.
domain1.com -> service on port 1234
domain2.com -> service on port 5678
domain3.com -> serving a file directory.
And then you still access domain1.com, domain2.com, domain3.com on port 80/443
TCtcoff9114 小时前
You set up multiple services behind a single caddy reverse proxy
SHshakna5 小时前
HTTP basic auth is not secure.
PRprocaryote13 小时前
Btw, if you find yourself sending a lot of ports over ssh, you can also consider the option of having ssh start a socks5 proxy
ssh -D 4711 -q -C -N user@host
sets localhost:4711 up as a socks5 proxy you can tell your browser to use
...
A wireguard VPN is better of course; among other things because ssh is multiplexing over a single TCP connection and will encounter head of line blocking (where one dropped packet blocks all forwarded traffic until resent)
PRprotocolture2 小时前
My typical use case for SSH port forwarding is to rescue a network from some kind of configuration failure.
UTutopiah3 小时前
Ok few resources people interested in the topic might like on the "Web can do so much more front" :
- WebDAV to serve files, very quick to setup using e.g. CopyParty. It's important this way your Web applications can then pass content to each other.
- WebSSH to get a terminal via the Web and thus potentially backend maintenance, e.g. start/stop CopyParty (also useful to bypass corporate firewalls and connect to your machine)
- WebTop container based on Selkies to get a full containerized environment, including a graphical interface. You can run pretty much any of your native application in there, even video games. Can be local or remote at 60fps.
- WebContainers to run containers directly from the browser
- QEMU-wasm to run a different architecture on yours, again from the browser
ACachille6 小时前
This is amazing! Most definitely headed in the right direction.
The separation layer between front and back must be cut at the smallest possible 'slice'.
Lots of people here snarking would understand if they 'felt' the latency and additional overhead. Not enough thought has been put in carfully slicing the data for individual use cases.
I'd go even further, in his demo of 'generating load by moving the config often' -- I think that 'top' app should have 'jit-ed' more of the rendering on the client such that the only information traversing pi<>client is compresed delta's of the ps hose.
PApaweladamczuk2 小时前
That's similar to the direction I went with my PC. It's a server that sits in a datacenter. It is wireguard protected and has SSH access for general stuff, copyparty for file access, webtop in a container for graphical tasks like audio editing, software like Navidrome for music and Immich for photos.
I could just call it a "home" lab server. But I actually use it as a general purpose computer, not just a server.
ABabnercoimbre14 小时前
Lovely writeup! I'll bookmark this for my own research.
My terminal's "clickity clackity" features [0] are local to the machine so I lose graphical-ness as soon as we remote in somewhere.
That's starting to change a bit with offline replay [1] where the native GUI and TUI work in tandem to unlock some rewind. But there's quite a road ahead and I love seeing others experiment properly. (Terminals are massively underserved.)
[0] https://terminal.click
[1] https://terminal.click/posts/2026/06/tui-stability/#:~:text=...
RErebooot52 分钟前
wow i really dig this concept, worked on something similar recently, a ssh browser as transport layer on top of ladybird with id profiles based on ssh pubkeys https://github.com/ricardo-reboot/sshttpd. also i think the web should head in this direction and give browsers an alternate transport layer other than http for browsing.
GUguhcampos12 小时前
Author apparently has never heard about Cockpit.
Everything they mention as "missing", or "novel" has been part of Cockpit for over a decade, from socket-based web server connection, backend-frontend separation for server apps and the whole idea of a server console with shell access itself.
To answer them: "Isn’t it weird that this doesn’t already exist?" - No, it's not, because it has existed for ages.
GUgurjeet11 小时前
> Be kind. Don't be snarky. Converse curiously; don't cross-examine. Edit out swipes.
Sincerely,
HN Guidelines Police :-)
https://news.ycombinator.com/newsguidelines.html
GUguhcampos10 小时前
I get it, but if the author of the article uses a biased and loaded language, I think it's fair game to do the same in the comments.
GUgurjeet10 小时前
I don't believe in that kind of response. Anything that one can say in rage or anger can be communicated in a calm and measured response.
ZAzamadatix8 小时前
I don't think I've met many pairs of people I could ask "on a scale of 1 to 10, how biased/loaded do you think ${example} is" and get told the same exact number by both for the majority of the examples given.
Now apply that to the n people reading a given post or comment! If those commenters try to communicate on what they think is "fair game" for the given conversation, then two comments deep in and you might already be at a 7 when the author thought they were at a 3. In more extreme cases, two people could misunderstand each other through text and simply go from a 1 to a 7 in a single comment, spending the rest of the time shooting back loaded replies at each other instead of thinking about the topic together.
It's a very human reaction we all tend towards, even when we set out our intents to do the "always reply with..." mindset instead of a tit-for-tat one. That's why I always start with the ideal approach - I can count on myself to help foul it up :D.
JNjng11 小时前
If I'm not mistaken cockpit is web UI and doesn't run native code, important differences.
MRmrcslws10 小时前
Thanks for pointing this out. I'm not hating on Cockpit, but Outer Loop (with Outer Shell) has solved a lot more of the stack. Cockpit accepts the constraints of living in existing browsers, so it requires exposing a port to the internet or using some SSH port forwarding tool. Whereas I built a dedicated browser to push capabilities so that users can get a "Just point me to a server" flow.
This thread has been useful -- I think Cockpit will also work great in Outer Loop. And it will be easy to add it as an app in Outer Shell.
WAwasmperson9 小时前
> it requires exposing a port to the internet or using some SSH port forwarding tool
This sentence is bizarre to me. Your SSH-based solution also requires exposing a port to the internet and installing a special tool (on both server and client!). What's so special about SSH that using HTTPS is a problem but using SSH isn't?
The industry also tried the whole "use the web browser to run native binaries" thing with ActiveX (and the unity web player I guess). The idea was thrown out along with flash and java applets for what I presume were security and portability reasons.
MRmrcslws9 小时前
If you can SSH to a machine, you can use Outer Loop and Outer Shell, without having to do any sudo commands or expose anything new to the network. The browser + SSH client combined into a single app leads to nice user experiences like this. The final section of the post was saying that it's strange such a thing doesn't exist already.
FYI I made the same ActiveX connection here in the closing of the FAQ in the previous blog post about this native platform:
https://probablymarcus.com/blocks/2026/05/10/like-a-web-view...
I'm particularly proud of that paragraph.
MAmakiniq0z9 小时前
Cockpit has a "remote" host connection feature solving this exact pain-point - "Just point me to a server":
You install the Cockpit web service on one host (along with its backend and extensions), and on other hosts you may have - install only the backend of the stack (4-7 packages available via deb backports & other dist repos). The web front host is then able to access any other machine via ssh (if keys and policies permit that) and display info or manage that host. All ports aside from the web front and ssh between your hosts remain as is. It is a decentralized design.
GUguhcampos10 小时前
It's a very, very thin web layer on top of native code:
https://cockpit-project.org/guide/latest/features.html
To the author's defense: Cockpit is Linux only, and they seem to intend on making this also available on Windows and Mac.
Still, I don't see the appeal they seem to do, especially since it relies so much on SSH. The biggest use case I can think for something like this in the real world is something like first-time setup or MDM, and on both situations setting up SSH to begin with has the same level of friction they're trying to remove.
XOXorNot10 小时前
Windows has quite a lot of remote admin tools that work pretty transparently over the network though.
The issue is that they're historically never turned on or heavily restricted.
Where the user is involved though RDP is a world class remote desktop never exceeded by Linux anywhere.
If someone wants to impress me, point Claude at Wayland and get it so I can seamlessly open remote RDP from somewhere else, lock the local user session and resume it on the remote desktop, then walk back to the original terminal and continue working in that same user session. This worked perfectly over 20 years ago.
NONooneAtAll312 小时前
I never heard of cockpit either
what is it?
SKskydhash12 小时前
https://cockpit-project.org/
CAcalmbonsai13 小时前
Do not do this. There are many, many excellent long-standing security and "web control plane isolation" reasons browsers are not permitted generic socket permissions.
The closest mechanical analog that comes to mind is why 3-wheeled ATVs are a bad idea.
MRmrcslws12 小时前
I think it's okay as long as:
- sockets are blocked by default, until they are added to an allow-list explicitly on the server side
- True sudo awareness ensures root sockets aren't reachable without the sudo password. (This capability is important, because otherwise you create an incentive for people to run root backends with user-accessible sockets.)
More here: https://outerloop.sh/security/
WAwang_li4 小时前
There’s no such thing as a root socket. Stop using that phrase.
RCrcarmo1 小时前
I like the idea, but without a cross-platform OSS browser it’s hard to consider adopting it (and I am primarily a Mac/iOS user…)
TAtammer10 小时前
I think the approach here where interfacing with a device is considered from first principles is one that is rarely taken on, and this is a thought provoking implementation. Kudos.
BOBobbyTables24 小时前
Reminds me of “WebRSH” back in the day.
There was also a standalone Java based SSH client that worked from browsers. (Of course now with WebSockets and modern JavaScript capabilities, no need to have the a “real” SSH client on the user’s actual system…)
Unfortunately, not sure there is enough drive for mainstream applications to be developed in for this proposed “web native” interface. Practically speaking, there would probably have to be a way to run them as native GUI apps without the browser or for a text terminal.
Unfortunately, the three environments have relatively little in common aside from the trivial parts… Operating efficiently in all quickly becomes nontrivial…
AZaziis989 小时前
Love it!
I also did some experiments some time ago. The thing this is missing for me is the ability to also run arbitrary commands other that just using a few premade apps. In fact I think this stuff becomes really interesting when you put a real "shell" on top of this.
And I don't mean a classical posix shell, something that can be used to leverage the full power of the custom ui and frontend. Also a must have is "nestable connections".
The experiment I was doing was with a web interface and a statically compiled Go backend (for easy deployment via ssh). Maybe some day I will finish it xD
FLflying_sheep15 小时前
That's interesting idea. If we put into CLI with some ANSI escape code, that may become something real. Imagine a normal terminal app just render part of the UI in web and communicating in UNIX socket. While doing the fancy UI, everything is still controllable with keyboard, and optionally with mouse. The UI will fallback to text UI for older terminal
JEjerf12 小时前
If your UI is not fully controllable with a keyboard, the same forces that made that happen will eventually make a mouse mandatory for this hypothetical tech stack too.
The terminal has no Platonic quality of being keyboard only. It is an accident of history and the limitations it has had. Remove the limitations and remove the accident of history and you will just end up drawn into the strange attractor of GUIs, warts and all.
There could be a brief honeymoon where the tech stack looks like some of you are imagining in your heads, but it would only last as long as it wasn't used by very many people. Google "gemini protocol" for a similar situation. That protocol has basically a cap on how popular it could possibly get before it just turned into HTTP B as the rest of the world forcibly upgraded it regardless of what the core project thinks. They exist in the shadow of HTTP, as the terminal exists in the shadow of GUIs. This is not a bad thing. It is what lets them be what they are. The shadows of GUIs or HTTP is large and there is plenty of space to be. Trying to give the terminal more GUI capabilities is like trying to give Gemini more web capabilities; you'll just end up in the same place, only with less refinement.
ORori_b15 小时前
So, uh... X11? VNC? RDP?
FLflying_sheep14 小时前
No no not something on top of the UI stack. They also need framebuffer support so they are big headache to setup on headless server.
What I mean is that we can bring some web tech to terminal natively. We don't even need a separated shell. Security and bi-directional communication is built by default because of UNIX socket. But we still need to think how to handle stuff like cookie, local storage, external CSS / JS, ...
ORori_b9 小时前
Web technologies are significantly larger and more complex than framebuffers, and they don't even let you start arbitrary programs like Chrome under them.
VIvim-guru1 小时前
Looks good. I'll stick to Emacs and tramp though.
CLcloudfudge12 小时前
This reminds me of an idea that I build a PoC of many years ago (maybe 2013 if I recall) that I always felt was the nugget of a useful idea. You would SSH into a server and processes on the other end would emit data which was then displayed in a webapp that was served from a localhost port, with a local backend that consumed the data. So for example a short-lived web-based remote 'top'. I did it as part of a company-internal hackathon and thought it was really cool, but nobody else was impressed with it. It was a very half-baked idea, and this looks like a fully-baked version of it. I'll check it out.
VIvirajk_311 小时前
coool, its very basic idea and neatly built.
TUI is allows all the customization however GUI good for quick & less complex tasks.
TOtoenail15 小时前
Interesting, kind of like a more fancy web shell. Haven't really ever seen the need for those, mostly because terminals work better than browsers.
DBdboreham15 小时前
Sometimes the browser is the only "computing platform" you have available (e.g. on some mobile devices, hotel kiosks).
评论
20 条顶层评论请先登录 h4cker 账号,然后连接 Hacker News 后发表评论。
It is pretty annoying to see all of the dismissive comments on this idea, in that it seems that the majority of HN audience are still stuck on the TUI-superiority mindset and they do not care about GUIs at all. Two arguments: - TUIs are not inherently superior to GUIs - SSH, as a transport layer, should support not just forwarding a pty (as a TUI display layer), but a GUI display layer as well In fact, these two arguments were already realized by UNIX 30 years ago, and we already have one solution: the X protocol and ssh -X. Unfortunately, X did not win out. We did not get the promised future where one can ssh -X into a remote machine, run gnome-control-center, and a settings window pops up and I can configure my remote computer. (If you believe that this works, try it out yourself. It is an abysmal experience.) However the above needs still needed to be satisfied by so much people, and apps that needed it started to be developed as web servers, stuff like jupyter notebooks. It turns out that the web’s document format coupled with a styling solution and a client-side scripting language, with all of its warts and drawbacks, became a viable solution as a display layer for interactive apps. In fact, since it started from remote documents, network transparency is built-in. It would be dumb to not realize that the HTML/CSS/JS stack did win a dominant position for desktop apps, with all of the Electron apps, and utilize the web as a display layer for the above. I see the project in a similar vein, i.e. utilizing HTML/CSS/JS to provide a display layer for remote apps via SSH. Also note that Electron apps has the same split with X, where the display server and the client are separated: it's called the "renderer process" and the "main process", and the two processes talk via IPC (where the display server would be the renderer process running embedded Chromium, the display client would be the Electron main process, and the stuff that the client sends to the server would be the contents of the renderer JS bundle). I think, theoretically, it would be possible to run the main process separated from the renderer process on a different machine, with an appropriate IPC transport. I think this would be not far from the above idea?
people still want to believe that Electron apps won because "web developers are cheaper than real native developers" they still dont understand Electron is vastly superior technology, and the fact that it might be cheaper is a side-bonus, not the main reason for its usage BTW, what even is the "native GUI" of Windows that you are supposed to use if "you care about your users"? It seems not even Microsoft knows the answer to this question.
> still dont understand Electron is vastly superior technology in what sense crossplatoform desktop-wrapper around typesetting engine is a 'vastly superior technology' to native UI frameworks?
In the sense that typesetting and text is the rabbit hole that is 90% of UI effort. Native UI frameworks don't bother fixing the real hard problems, they focus on "widgets" instead. (Not that the web stack is a good solution to this, but at least they're making an effort and they understand the difficult issues.)
> theoretically, it would be possible to run the main process separated from the renderer process on a different machine, with an appropriate IPC transport. Is this really possible? If Electron apps could do this, and we could run them on a Linux SBC like RPI with the renderer on the user's laptop, that would be interesting ...
> Unfortunately, X did not win out. We did not get the promised future where one can ssh -X into a remote machine, run gnome-control-center, and a settings window pops up and I can configure my remote computer. Personally I'm glad that's the case. Configuring servers via gui is an abomination, and I hope it stays in the windows world.
I for one am glad that 'webmin' is effectively dead, and the 'Cockpit' thing that ships with a default Fedora install is much less offensive in terms of how it mangles system configuration files you might want to otherwise edit by hand.
This appears to me like a solution in search of a problem, like many others before it...the quote below seems relevant to this effort. "Those who do not understand Unix are condemned to reinvent it, poorly." ~Henry Spencer
I hired a programmer and after giving him his Linux laptop let him set up a few things. A couple hours later he asked me where he could get PuTTY for it, and I recognized a huge gap in my interview coverage.
Indeed, a new hire should be able to use Google to find https://puttygen.com/download-putty#Download_PuTTY_on_Linux_... in short order evil grin
https://www.chiark.greenend.org.uk/~sgtatham/putty/ puttygen.com looks super fishy, the disclaimer: > Puttygen software is not created, nor supported by Puttygen.com. The program has been tested and is believed to be safe. [...] The use of Puttygen through Puttygen.com is done at your own discretion and risk Edit: or is that the evil grin?
or just ask an llm
multiple issues right
apt install putty seems... useful? Don't get it.
Ever hired someone who, when you ask them to send you an ssh key for access to something, sends you their private key? Yeah, that's happened more than once.
Gotta auto-reject anyone listing Windows experience on resume
works for me. are you hiring? :-)
wow, what a way to prejudice against people fluent in multiple paradigms
I dislike this story and it’s because I can believe it.
Any experience with ‘programmers’ not knowing git?
When I went to college (early 2010s) professors were still encouraging students to use SVN, so I probably have a fair number of peers who didn't learn git until they got out into the real world
Honestly, I suspect you'd find a lot of self-taught people have random gaps in their knowledge that someone with a mentor/degree won't.
I had a linguist attend a CS class and he didn't know how to copy and paste.
No. It’s just that now more people are using Linux the more the ux decisions that were made 40 years ago will be questioned. Almost all dev facing machines have ssh server installed and accessible. Why ssh terminal has to look like character-only trash from 1960s? Why a TUI is the best thing we pipe through ssh? Why I cannot watch a 4k movie in the terminal or browse the web using pinch to zoom ?
A terminal UI is the best thing we pipe through SSH because it's the tool we built specifically for piping a terminal UI. Abandoning Xorg has admittedly made streaming a GUI over SSH less simple, but still not impossible, and you can forward whatever data you want (a VLC stream of a 4k movie) with tunneling. I do agree that new Linux users who have different needs from their computers might cause some incentive to change some of these 40 year old UX decisions. We don't really have a modern, capable remote desktop solution at least on par with RDP.
> Why a TUI is the best thing we pipe through ssh? `ssh -XC` (look up SSH X forwarding). You can also easily tunnel remote desktop over ssh. > Why I cannot watch a 4k movie in the terminal or browse the web using pinch to zoom ? Kitty, sixel, and iterm2
>character-only trash from 1960s You take that back! >Why a TUI is the best thing we pipe through ssh? Why I cannot watch a 4k movie in the terminal or browse the web using pinch to zoom? The old magick speak of X forwarding. The newer wizards now use waypipe.
because it is TEXT you want your GUI then set up VNC
> Why ssh terminal has to look like character-only trash from 1960s? We should re-implement it with Comic Sans and happy shiny buttons to click everywhere? Click here for "ls -alh" ?
No, but I wouldn't mind if keyboard worked properly.
that seems a little harsh. I think there is a real usability gap which this takes a crack at. Some ideas like using viewing a linux dir over _ssh_ using native UI components.. seem cool. I do agree, some of these do seem like they have already been solved in other ways (like an sshfs mount).
That is exactly what X was designed to do. And part of why X is considered insecure today.
I mean, I do this all the time via sshfs. I don't think these tools or ideas are bad, they just mostly aren't new, the innovation is maybe a particular ux or a particular bundle of toys?
This resembles Plan9 more than UNIX. I wouldn't put UNIX up on a pedestal.
Plan9 is funny because it's what UNIX might look like if the people working on UNIX understood UNIX, i.e. everything is a file and simple primitives are composed into complex systems.
They had the benefit of hindsight and bigger hardware, but UNIX got too popular and now we're struggling to move past it. It would have been interesting to see what the fourth try would be like (though looking at Go I would probably not completely like it).
yea, as sibling said. p9 was not possible on pdp11. what was possible there was .. v7 and 2bsd. see https://github.com/felipenlunkes/run-ancient-unix p9 was done when "current state of unix" was already fixed in form of aix, sysv and bsds, it suffered the same fate as say beos.
BeOS was marketed, there was an attempt. But it was a harder sell. Plan 9 on the other hand was was kept as a research project only and was restrictively licensed in the 90s when it was actively developed.
> "Those who do not understand Unix Funny enough, that right there is the actual fundamental problem here. I am reminded of a post or blog long ago that talked about programmable thermostats and how awful they are for most people to use despite how powerfully in the weeds one can get with them. Basically summarizing the issue as something like “People do not want to learn your arcane system, they just want the benefit it’s advertising”. A good UI knows how to minimize that gap.
I mean that's true but the number of UIs which simply don't add access to necessary features in the name of "simplicity" is enormous. The poster child of this is the Microsoft Office ribbon.
UNIX/GNU/LINUX is not TUI. Period.
this kind of dismissive comments is why many apps have an awful usability. If someone thinks a web interface would be easier than a text terminal, there's at least one customer in need for a product (which either doesn't exist or they could not "googlify") - it's also why I welcome AI generating apps on the fly, "replacing" engineers who "know better" ;)
> there's at least one customer in need for a product just because whales exist does not mean feeding them is a goal to aim for as a society. 99.9% of technology could disappear tomorrow and life would become better.
hyperbole: a lot of tech we give for granted today, started as niche products for "whales" like government agencies, so I suppose computers and Internet shouldn't exist and life would be better
Why learn to do anything?
compilers, IDE, syntax highlighting too, everyone should learn assembly, ed, and stick to b&w
It's like they decided to reinvent webmin
>"Those who do not understand Unix are condemned to reinvent it, poorly." ~Henry Spencer I need something like this for network management tools.
I think this is a `There’s no such thing as bad publicity`
I like the idea of separating the frontend and backend of a graphical app. But I feel like this is hardly a novel idea, maybe I'm missing something. I take it you don't know about "X11Forwarding yes" or "html5 web app" For browsers, capabilities like connecting to Unix sockets have been dismissed as extremely niche That is a security concern, that's why it isn't implemented. At least raw unix socks. You can have WebSockets and other ports only limited to http.
Quick response regarding security: On various Mozilla forums that I saw, the discussion was basically: 1. We can't just allow the browser to connect to any socket, since many either explicitly don't want browsers connecting to them, or are oblivious to browsers. 2. ...so we need to also add some sort of allow list 3. ...this is getting too complicated for such a niche feature. So I think the nicheness was the high-order bit here. (FYI, Outer Loop does add an allow-list: https://outerloop.sh/unix-domain-sockets/)
JavaScript and wasm should not be able to open generalized networks sockets because no one wants an asshole to be able to buy an ad on a shitty ad network and send malicious code to people’s browsers which attacks all the internal devices on the user’s network simply because the user wanted to read a movie review.
[deleted]
i'm trying to understand how outer shell works here. on the website you give the following as your motivation: > Apps like Jupyter and Tensorboard are not typically visible to standard web browsers if they’re running on remote servers, because it would be terribly unsafe to let the whole internet touch this app. Instead, they run on a local port on the server, which your computer can’t access directly. > Classically, to get access to these, you had to open a new terminal and run: > ssh -L 24601:localhost:8889 mrcslws@lambda4.mycompany.com & > ssh -L 24602:localhost:6006 mrcslws@lambda4.mycompany.com & is this true? isn't the normal thing just to do this ssh forwarding for prototyping, then for deployment, you set up a website like myjupyternotebook.com, and then set up auth so that others can't access it. HTTP basic auth is not too much work. if you want SSH, not HTTP, to be what's publicly exposed, there's other options too, like putting it behind a VPN or tunnel. all this to say, outer loop is super cool, but I don't get it. I must be missing something about why you built it, so could you help me understand?
I think there are different clusters of people who use servers, SSH, etc. I'm closer to the cluster that uses them for deep learning experiments, GPU kernel optimization, robot development (a robot is just a server that moves!)... use cases where you are explicitly using a remote computer. For this cluster of people, I think this tool feels more intuitive than the flow you suggest. But maybe I'm projecting! And, to me, this just feels like one of the fundamental things that could exist; it's like a graphical operating system, but remote-first.
I still don't get it. Isn't this what X11 forwarding is for?
It's too slow. I mention this in the video at 1:20 - 1:50.
I guess it saves you the hassle of dealing with reverse proxies and TLS certs if your use case is "userbase is 1 person and it is me, and i only access services from a desktop os"
Ever since I started using Caddy, doing that has been soooo easy. Download the binary, make a Caddyfile myservice.example.com { basic_auth { admin some_password_hash_here } reverse_proxy :3000 } And then just "./caddy start"
I just use https://tuns.sh which has a handy bash script to make the ssh tunnel simple
Caddy can also proxy to unix sockets !
does this work with multiple caddy servers? ie can you bind multiple caddy servers to port 80/443?
You can have multiple configs in a single Caddyfile and reload when you make changes, and it'll just route them as you wish, e.g. domain1.com -> service on port 1234 domain2.com -> service on port 5678 domain3.com -> serving a file directory. And then you still access domain1.com, domain2.com, domain3.com on port 80/443
You set up multiple services behind a single caddy reverse proxy
HTTP basic auth is not secure.
Btw, if you find yourself sending a lot of ports over ssh, you can also consider the option of having ssh start a socks5 proxy ssh -D 4711 -q -C -N user@host sets localhost:4711 up as a socks5 proxy you can tell your browser to use ... A wireguard VPN is better of course; among other things because ssh is multiplexing over a single TCP connection and will encounter head of line blocking (where one dropped packet blocks all forwarded traffic until resent)
My typical use case for SSH port forwarding is to rescue a network from some kind of configuration failure.
Ok few resources people interested in the topic might like on the "Web can do so much more front" : - WebDAV to serve files, very quick to setup using e.g. CopyParty. It's important this way your Web applications can then pass content to each other. - WebSSH to get a terminal via the Web and thus potentially backend maintenance, e.g. start/stop CopyParty (also useful to bypass corporate firewalls and connect to your machine) - WebTop container based on Selkies to get a full containerized environment, including a graphical interface. You can run pretty much any of your native application in there, even video games. Can be local or remote at 60fps. - WebContainers to run containers directly from the browser - QEMU-wasm to run a different architecture on yours, again from the browser
This is amazing! Most definitely headed in the right direction. The separation layer between front and back must be cut at the smallest possible 'slice'. Lots of people here snarking would understand if they 'felt' the latency and additional overhead. Not enough thought has been put in carfully slicing the data for individual use cases. I'd go even further, in his demo of 'generating load by moving the config often' -- I think that 'top' app should have 'jit-ed' more of the rendering on the client such that the only information traversing pi<>client is compresed delta's of the ps hose.
That's similar to the direction I went with my PC. It's a server that sits in a datacenter. It is wireguard protected and has SSH access for general stuff, copyparty for file access, webtop in a container for graphical tasks like audio editing, software like Navidrome for music and Immich for photos. I could just call it a "home" lab server. But I actually use it as a general purpose computer, not just a server.
Lovely writeup! I'll bookmark this for my own research. My terminal's "clickity clackity" features [0] are local to the machine so I lose graphical-ness as soon as we remote in somewhere. That's starting to change a bit with offline replay [1] where the native GUI and TUI work in tandem to unlock some rewind. But there's quite a road ahead and I love seeing others experiment properly. (Terminals are massively underserved.) [0] https://terminal.click [1] https://terminal.click/posts/2026/06/tui-stability/#:~:text=...
wow i really dig this concept, worked on something similar recently, a ssh browser as transport layer on top of ladybird with id profiles based on ssh pubkeys https://github.com/ricardo-reboot/sshttpd. also i think the web should head in this direction and give browsers an alternate transport layer other than http for browsing.
Author apparently has never heard about Cockpit. Everything they mention as "missing", or "novel" has been part of Cockpit for over a decade, from socket-based web server connection, backend-frontend separation for server apps and the whole idea of a server console with shell access itself. To answer them: "Isn’t it weird that this doesn’t already exist?" - No, it's not, because it has existed for ages.
> Be kind. Don't be snarky. Converse curiously; don't cross-examine. Edit out swipes. Sincerely, HN Guidelines Police :-) https://news.ycombinator.com/newsguidelines.html
I get it, but if the author of the article uses a biased and loaded language, I think it's fair game to do the same in the comments.
I don't believe in that kind of response. Anything that one can say in rage or anger can be communicated in a calm and measured response.
I don't think I've met many pairs of people I could ask "on a scale of 1 to 10, how biased/loaded do you think ${example} is" and get told the same exact number by both for the majority of the examples given. Now apply that to the n people reading a given post or comment! If those commenters try to communicate on what they think is "fair game" for the given conversation, then two comments deep in and you might already be at a 7 when the author thought they were at a 3. In more extreme cases, two people could misunderstand each other through text and simply go from a 1 to a 7 in a single comment, spending the rest of the time shooting back loaded replies at each other instead of thinking about the topic together. It's a very human reaction we all tend towards, even when we set out our intents to do the "always reply with..." mindset instead of a tit-for-tat one. That's why I always start with the ideal approach - I can count on myself to help foul it up :D.
If I'm not mistaken cockpit is web UI and doesn't run native code, important differences.
Thanks for pointing this out. I'm not hating on Cockpit, but Outer Loop (with Outer Shell) has solved a lot more of the stack. Cockpit accepts the constraints of living in existing browsers, so it requires exposing a port to the internet or using some SSH port forwarding tool. Whereas I built a dedicated browser to push capabilities so that users can get a "Just point me to a server" flow. This thread has been useful -- I think Cockpit will also work great in Outer Loop. And it will be easy to add it as an app in Outer Shell.
> it requires exposing a port to the internet or using some SSH port forwarding tool This sentence is bizarre to me. Your SSH-based solution also requires exposing a port to the internet and installing a special tool (on both server and client!). What's so special about SSH that using HTTPS is a problem but using SSH isn't? The industry also tried the whole "use the web browser to run native binaries" thing with ActiveX (and the unity web player I guess). The idea was thrown out along with flash and java applets for what I presume were security and portability reasons.
If you can SSH to a machine, you can use Outer Loop and Outer Shell, without having to do any sudo commands or expose anything new to the network. The browser + SSH client combined into a single app leads to nice user experiences like this. The final section of the post was saying that it's strange such a thing doesn't exist already. FYI I made the same ActiveX connection here in the closing of the FAQ in the previous blog post about this native platform: https://probablymarcus.com/blocks/2026/05/10/like-a-web-view... I'm particularly proud of that paragraph.
Cockpit has a "remote" host connection feature solving this exact pain-point - "Just point me to a server": You install the Cockpit web service on one host (along with its backend and extensions), and on other hosts you may have - install only the backend of the stack (4-7 packages available via deb backports & other dist repos). The web front host is then able to access any other machine via ssh (if keys and policies permit that) and display info or manage that host. All ports aside from the web front and ssh between your hosts remain as is. It is a decentralized design.
It's a very, very thin web layer on top of native code: https://cockpit-project.org/guide/latest/features.html To the author's defense: Cockpit is Linux only, and they seem to intend on making this also available on Windows and Mac. Still, I don't see the appeal they seem to do, especially since it relies so much on SSH. The biggest use case I can think for something like this in the real world is something like first-time setup or MDM, and on both situations setting up SSH to begin with has the same level of friction they're trying to remove.
Windows has quite a lot of remote admin tools that work pretty transparently over the network though. The issue is that they're historically never turned on or heavily restricted. Where the user is involved though RDP is a world class remote desktop never exceeded by Linux anywhere. If someone wants to impress me, point Claude at Wayland and get it so I can seamlessly open remote RDP from somewhere else, lock the local user session and resume it on the remote desktop, then walk back to the original terminal and continue working in that same user session. This worked perfectly over 20 years ago.
I never heard of cockpit either what is it?
https://cockpit-project.org/
Do not do this. There are many, many excellent long-standing security and "web control plane isolation" reasons browsers are not permitted generic socket permissions. The closest mechanical analog that comes to mind is why 3-wheeled ATVs are a bad idea.
I think it's okay as long as: - sockets are blocked by default, until they are added to an allow-list explicitly on the server side - True sudo awareness ensures root sockets aren't reachable without the sudo password. (This capability is important, because otherwise you create an incentive for people to run root backends with user-accessible sockets.) More here: https://outerloop.sh/security/
There’s no such thing as a root socket. Stop using that phrase.
I like the idea, but without a cross-platform OSS browser it’s hard to consider adopting it (and I am primarily a Mac/iOS user…)
I think the approach here where interfacing with a device is considered from first principles is one that is rarely taken on, and this is a thought provoking implementation. Kudos.
Reminds me of “WebRSH” back in the day. There was also a standalone Java based SSH client that worked from browsers. (Of course now with WebSockets and modern JavaScript capabilities, no need to have the a “real” SSH client on the user’s actual system…) Unfortunately, not sure there is enough drive for mainstream applications to be developed in for this proposed “web native” interface. Practically speaking, there would probably have to be a way to run them as native GUI apps without the browser or for a text terminal. Unfortunately, the three environments have relatively little in common aside from the trivial parts… Operating efficiently in all quickly becomes nontrivial…
Love it! I also did some experiments some time ago. The thing this is missing for me is the ability to also run arbitrary commands other that just using a few premade apps. In fact I think this stuff becomes really interesting when you put a real "shell" on top of this. And I don't mean a classical posix shell, something that can be used to leverage the full power of the custom ui and frontend. Also a must have is "nestable connections". The experiment I was doing was with a web interface and a statically compiled Go backend (for easy deployment via ssh). Maybe some day I will finish it xD
That's interesting idea. If we put into CLI with some ANSI escape code, that may become something real. Imagine a normal terminal app just render part of the UI in web and communicating in UNIX socket. While doing the fancy UI, everything is still controllable with keyboard, and optionally with mouse. The UI will fallback to text UI for older terminal
If your UI is not fully controllable with a keyboard, the same forces that made that happen will eventually make a mouse mandatory for this hypothetical tech stack too. The terminal has no Platonic quality of being keyboard only. It is an accident of history and the limitations it has had. Remove the limitations and remove the accident of history and you will just end up drawn into the strange attractor of GUIs, warts and all. There could be a brief honeymoon where the tech stack looks like some of you are imagining in your heads, but it would only last as long as it wasn't used by very many people. Google "gemini protocol" for a similar situation. That protocol has basically a cap on how popular it could possibly get before it just turned into HTTP B as the rest of the world forcibly upgraded it regardless of what the core project thinks. They exist in the shadow of HTTP, as the terminal exists in the shadow of GUIs. This is not a bad thing. It is what lets them be what they are. The shadows of GUIs or HTTP is large and there is plenty of space to be. Trying to give the terminal more GUI capabilities is like trying to give Gemini more web capabilities; you'll just end up in the same place, only with less refinement.
So, uh... X11? VNC? RDP?
No no not something on top of the UI stack. They also need framebuffer support so they are big headache to setup on headless server. What I mean is that we can bring some web tech to terminal natively. We don't even need a separated shell. Security and bi-directional communication is built by default because of UNIX socket. But we still need to think how to handle stuff like cookie, local storage, external CSS / JS, ...
Web technologies are significantly larger and more complex than framebuffers, and they don't even let you start arbitrary programs like Chrome under them.
Looks good. I'll stick to Emacs and tramp though.
This reminds me of an idea that I build a PoC of many years ago (maybe 2013 if I recall) that I always felt was the nugget of a useful idea. You would SSH into a server and processes on the other end would emit data which was then displayed in a webapp that was served from a localhost port, with a local backend that consumed the data. So for example a short-lived web-based remote 'top'. I did it as part of a company-internal hackathon and thought it was really cool, but nobody else was impressed with it. It was a very half-baked idea, and this looks like a fully-baked version of it. I'll check it out.
coool, its very basic idea and neatly built. TUI is allows all the customization however GUI good for quick & less complex tasks.
Interesting, kind of like a more fancy web shell. Haven't really ever seen the need for those, mostly because terminals work better than browsers.
Sometimes the browser is the only "computing platform" you have available (e.g. on some mobile devices, hotel kiosks).