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.
dboreham · 2026-06-29 17:18:20 UTC
Sometimes the browser is the only "computing platform" you have available (e.g. on some mobile devices, hotel kiosks).
supertroop · 2026-06-29 16:37:12 UTC
Defeats the purpose of the shell. The shell is for CLI interaction.
metalliqaz · 2026-06-29 16:47:36 UTC
command line shell vs graphical shell. My first experience with a graphical shell was dosshell[1]. For a while we called the Windows 3.1 interface "the shell". I guess the terminology has changed since that time.
No. A shell is any user interface. Windows shell is explorer.exe and it used to be possible to change that via a config line in a system INI file.
SSH protocol also isn’t just for CLI work. It supports file transport (eg SFTP), TCP/IP forwarding and even SOCKS HTTP proxying.
You also used to be able to run GUI applications over SSH via X11.
supertroop · 2026-06-29 16:51:57 UTC
You have a very loose definition of a shell that conflicts with about 40 years of history.
mrcslws · 2026-06-29 16:56:48 UTC
I wondered if this would be controversial. It all depends where you grew up.
> Cairo, like Chicago, had a new shell (Microsoft’s favorite word for the user interface for launching programs and managing files) and a new file system
When I worked at Microsoft 2010 - 2014, the word "shell" was still used in this way. I decided to say "graphical shell", to make it clearer.
hnlmorg · 2026-06-29 16:58:40 UTC
Not really no. I’ve been using shells and authoring new ones for around 40 years across a variety of platforms. The term has always been pretty loosely defined because as technology evolved the term “shell” was borrowed. So like I said, a shell can refer to a graphical core just as much as a text-based one. You can get web shells too.
The original intent was that a shell is a thin wrapper on top of the OS to expose the hosts capabilities. But that hasn’t been an apt description for most of those 40 years.
b40d-48b2-979e · 2026-06-29 18:09:50 UTC
Appeal to authority.
nativeit · 2026-06-29 17:01:38 UTC
I don't have a dog in this fight, and anyway dogfighting is bad, but the intro to the Wikipedia article[0] reads:
> An operating system shell is a computer program that provides relatively broad and direct access to the system on which it runs. The term shell refers to how it is a relatively thin layer around an operating system.
> Most shells are command-line interface (CLI) programs. Some graphical user interfaces (GUI) also include shells.
The last line I think supports the notion that the term "shell" at least implies a CLI, but I can understand both positions.
Both usages (graphical and CLI) of the term are correct. Saying "shell" doesn't by itself imply one or the other, even if the technology that is more commonly discussed when we say "shell" is those CLI things in UNIX-like OSs.
A bit like how cars are typically small vehicles with internal combustion engines, but that doesn't mean EVs are not a classification of cars too.
thaumaturgy · 2026-06-29 17:15:22 UTC
The earliest versions of MacOS, all the way up through 9, had a ROM call at 0xA9F4 which was labeled `_exitToShell`. In the days before pre-emptive multitasking, this instruction's job was to force the current application to close and return the user to the MacOS desktop (the Finder). The "shell" in this context being the desktop user interface.
Just FYI.
steve1977 · 2026-06-29 20:48:46 UTC
Why do you think GNOME Shell is called GNOME Shell?
This is cool.
Though I don't see why someone would want to do more work/design for the custom GUI rendering for a custom/renderer (your viewer app) ?
arnefm · 2026-06-29 16:49:12 UTC
Heresy!
torm · 2026-06-29 16:51:29 UTC
I can’t make up my mind if I love it or hate it. On one hand this is like SSHapi on the other there’s no structure, no contract… i had similar doubts with Cockpit.
tom1337890 · 2026-06-29 16:56:06 UTC
Lovely video and ingenious implementation. Kudos!
As someone managing various servers, both at home and at work, I see how this can be really useful. I see it not in the production space yet but rather in the experimenting, using a Linux machine as a second compute device!
So regarding your last point, I'm convinced. I think it is useful!
The one fact that is bugging me is that now it requires a client specific app, with GUI, on my PC and I wonder if using ssh port forwarding could reduce the surface. I mean I wonder if either having a rich client that executes commands via ssh or a rich server (including Web Server) with ssh port wouldn't suffice, so that I can avoid installing stuff on the server AND on my computer.
myaccountonhn · 2026-06-29 16:56:59 UTC
I am not sure I'd use this over exposing websites with wireguard as those will automatically work across platforms. But it looks like you could create some really cool experiences with it, and I'm happy people are exploring this space.
purplehat_ · 2026-06-29 17:01:09 UTC
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:
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?
_def · 2026-06-29 17:23:02 UTC
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"
KomoD · 2026-06-29 17:41:23 UTC
Ever since I started using Caddy, doing that has been soooo easy.
does this work with multiple caddy servers? ie can you bind multiple caddy servers to port 80/443?
tcoff91 · 2026-06-29 18:17:22 UTC
You set up multiple services behind a single caddy reverse proxy
KomoD · 2026-06-29 18:17:27 UTC
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
gizzlon · 2026-06-29 19:16:10 UTC
Caddy can also proxy to unix sockets !
qudat · 2026-06-29 22:44:11 UTC
I just use https://tuns.sh which has a handy bash script to make the ssh tunnel simple
mrcslws · 2026-06-29 18:07:30 UTC
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.
queenkjuul · 2026-06-29 23:08:31 UTC
I still don't get it. Isn't this what X11 forwarding is for?
mrcslws · 2026-06-29 23:18:54 UTC
It's too slow. I mention this in the video at 1:20 - 1:50.
procaryote · 2026-06-29 18:54:07 UTC
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)
shakna · 2026-06-30 03:19:19 UTC
HTTP basic auth is not secure.
apt-get · 2026-06-30 09:00:07 UTC
basic auth is secure, if used in combination with TLS.
protocolture · 2026-06-30 05:54:42 UTC
My typical use case for SSH port forwarding is to rescue a network from some kind of configuration failure.
flying_sheep · 2026-06-29 17:03:12 UTC
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
ori_b · 2026-06-29 17:07:33 UTC
So, uh... X11? VNC? RDP?
flying_sheep · 2026-06-29 17:21:53 UTC
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, ...
ori_b · 2026-06-29 23:20:54 UTC
Web technologies are significantly larger and more complex than framebuffers, and they don't even let you start arbitrary programs like Chrome under them.
jerf · 2026-06-29 19:28:10 UTC
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.
CamperBob2 · 2026-06-29 17:03:26 UTC
Edit: withdrawing this objection, had no idea that right-clicking allowed the speed to be adjusted.
pelzatessa · 2026-06-29 17:20:59 UTC
but its just standard <video> element, in firefox I can even right-click to change the speed to 2x. It's certainly better privacy-wise.
(The one on the website is the standard browser video player, not custom.)
CamperBob2 · 2026-06-29 17:24:14 UTC
Thanks (and to pelzatessa as well), TIL about the right-click menu on these. That'll come in handy.
saltamimi · 2026-06-29 17:09:46 UTC
One of the more interesting pieces of Microsoft software is the Windows Admin Center where it's a web app to configure a Windows Server. Ideally, it was made for core installs where there's no GUI but it's there as a viable web management panel.
The tool from OP and WAC are pretty similar in terms of functionality and usecase. Why would you want this? Well, imagine your team needing to be able to do server functions but you have less technical team members to do it for you, which is very often the case in big places, most people are familiar with the web browser and having a website to do these sorts of actions makes it easier to have things done in one place without a lot of tools like Remote Desktop, SSH, WinRM, etc. configured.
jon-wood · 2026-06-29 22:25:07 UTC
At the risk of being considered a snob I don’t want someone who can’t deal with SSH or RDP configuring servers within my company. If you can’t work out how to SSH into the server you sure as hell aren’t going to work out how to safely expose network services on it.
saltamimi · 2026-06-29 23:37:12 UTC
Within your company, sure. But there's some engineers (think medical) who know standards like DICOM and PACS imaging but aren't familiar at all with OS internals or systems administration.
skydhash · 2026-06-30 03:21:52 UTC
If you’re not a sysadmin, there’s no reason to wrestle around with OS internals and system tools. We have moved away from mainframes and now everyone is root on one’s computer, but honestly anything in /etc, /sbin and /usr/sbin should be irrelevant for daily workflows.
tonyedgecombe · 2026-06-30 07:26:05 UTC
I can ssh into a server yet would still prefer a GUI for a lot of work.
nativeit · 2026-06-29 17:12:05 UTC
I thought this looks interesting, but was a little confused with what appears to be MacOS-only support at https://outerloop.sh/? I'm running Ubuntu 24.04, I kind of assumed from context that it'd be something I could spin up in a few minutes just to give it a go?
nativeit · 2026-06-29 17:26:48 UTC
Also worth noting, my decision to give it a go relied mostly on the fact that I couldn't quite work out what the product is. Having "Outer Shell" and "Outer Loop" described as distinct-but-connected entities is a little confusing, IMO, which do I need to install, on what, and in what order?
Cool idea anyway, no shade here.
al_borland · 2026-06-29 21:21:32 UTC
I have also been having trouble grasping the difference between Outer Loop and Outer Shell. I thought maybe one was the desktop browser app for macOS and the other was something running locally on the Pi to create the socket. However, after bouncing between the links for the two, I don't think that assumption was correct.
PunchyHamster · 2026-06-29 17:14:26 UTC
> Isn’t it weird that this doesn’t already exist?
It does. MobaXterm have a bunch of it already, file manager on the side and ability to pass X11
trashb · 2026-06-29 17:20:04 UTC
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.
mrcslws · 2026-06-29 17:30:18 UTC
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.
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.
dwb · 2026-06-29 17:23:53 UTC
Just had a quick look but I like the look so far. I’ve been thinking along similar lines for ages but never quite got around to making something. I very much support any effort to make remoting less dependent on the archaic character grid.
setheron · 2026-06-29 17:29:28 UTC
I'm confused -- does this compile it live when the server ships code?
How do we resolve dependencies, toolset etc..
Is the idea to just pick an old enough platform toolchain you expect to be present?
mrcslws · 2026-06-29 17:56:06 UTC
In all cases, the code is pre-compiled. A user never waits for anything to compile. When Outer Loop installs Outer Shell, it downloads pre-compiled binaries to the server. For Linux these are compiled against a manylinux ABI. Ditto for when Outer Shell installs one of the bundled apps. When a backend serves a native "web" app over HTTP it sends already-compiled ARM (or x86) code to the client.
Dependencies are less of a concern for the frontend binaries. For backends, I use a dependency-light approach, static-linking anything that's needed. Of course, people are welcome to do backends however they want, and just tell Outer Shell about the systemd/launchd units via the API. I used this no-dependency approach to keep everything lightweight and to keep install steps trivial, but admittedly it pushes me in certain directions (for example, using custom binary formats rather than sqlite).
tjohnell · 2026-06-29 17:52:00 UTC
I’m good with just tailscale and self-hosted web-apps. Seems the main selling point is either native UX or reduced barriers to entry security-wise. I like barriers to entry.
Panzerschrek · 2026-06-29 17:54:09 UTC
> every app is a small HTTP server
This adds unnecessary overhead for communication. using web and web-like approaches on desktop system is a terrible idea.
abnercoimbre · 2026-06-29 17:55:15 UTC
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.)
I prefer hytelnet and MUDs but I don’t count, I’m just too old.
bobajeff · 2026-06-29 18:01:43 UTC
I don't really know what outerframe frame is. I tried to understand from the video and the blog but I'm still not sure what it is. Is it like a web browser but instead of DOM, HTML and JS you have Swift and SwiftUI running in a sandbox?
If so how would that work on non Apple devices? Also how much will that sandbox protect you?
runjake · 2026-06-29 18:08:21 UTC
It's purportedly cross-platform. The documentation leaves a lot to be desired, but it is described more here:
It's a fun heretical idea, moving away from a "cross-platform" web to a "multi-platform" web. It's a cross-platform protocol that hands off to platform-specific frontend code. I think it's a natural direction for the web, in a world where LLMs can translate to other platforms.
abtinf · 2026-06-29 18:02:20 UTC
I wrote an early version of the Cylance AV desktop client. The UI side was a web app that talked to its windows service backend using HTTP over windows pipes. This was surprisingly easy to do using WCF.
xuhu · 2026-06-29 18:08:55 UTC
Being able to initiate a shell app from a regular remote ssh CLI prompt (like "ApacheConfig myhost.com" or "Editor ~/myrepo") might improve integration with people's existing CLI workflows.
It does need an agent that starts with every X or Wayland session and waits for requests from remote SSH sessions to start an app.
hatradiowigwam · 2026-06-29 18:31:01 UTC
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
forgot_old_user · 2026-06-29 19:48:43 UTC
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).
shakna · 2026-06-30 02:10:07 UTC
That is exactly what X was designed to do. And part of why X is considered insecure today.
advael · 2026-06-30 02:34:34 UTC
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?
Modified3019 · 2026-06-29 20:14:51 UTC
> "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.
XorNot · 2026-06-29 22:09:47 UTC
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.
red-iron-pine · 2026-06-30 14:15:45 UTC
as someone with a fancy IoT thermostat... yeah.
I want to set the temp. Maybe set a schedule and a timer. Once I have to start navigating multiple, deep menues with a thermostat I stop giving a shit.
I miss old VCRs that had 8 buttons and only those 8 functions
hedgehog · 2026-06-29 20:31:54 UTC
This resembles Plan9 more than UNIX. I wouldn't put UNIX up on a pedestal.
projektfu · 2026-06-29 21:20:07 UTC
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.
hedgehog · 2026-06-29 21:51:59 UTC
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).
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.
fulafel · 2026-06-30 04:54:46 UTC
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.
red-iron-pine · 2026-06-30 14:13:49 UTC
i mean they did understand unix, both in that they created it, and created plan9 to be closer to their original vision.
but unix got widely adopted and you go with what sells not blue-sky woulda-coulda
projektfu · 2026-06-30 14:58:37 UTC
Yes and no. Defining network devices in a different namespace, for example, was an early break from what might be called the UNIX tradition.
whatever1 · 2026-06-29 20:32:31 UTC
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 ?
john01dav · 2026-06-29 23:59:30 UTC
> 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
fragmede · 2026-06-30 10:56:29 UTC
It's not 4k, but ssh to funky.nondeterministic.computer if you're using a modern* terminal emulator program. (aka ghostty)
1bpp · 2026-06-30 02:11:35 UTC
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.
PalmPilotProMax · 2026-06-30 03:04:16 UTC
>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.
walrus01 · 2026-06-30 03:18:27 UTC
> 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" ?
silon42 · 2026-06-30 06:35:43 UTC
No, but I wouldn't mind if keyboard worked properly.
Comments
[1] https://en.wikipedia.org/wiki/DOS_Shell
SSH protocol also isn’t just for CLI work. It supports file transport (eg SFTP), TCP/IP forwarding and even SOCKS HTTP proxying.
You also used to be able to run GUI applications over SSH via X11.
> Cairo, like Chicago, had a new shell (Microsoft’s favorite word for the user interface for launching programs and managing files) and a new file system
https://hardcoresoftware.learningbyshipping.com/p/020-innova...
When I worked at Microsoft 2010 - 2014, the word "shell" was still used in this way. I decided to say "graphical shell", to make it clearer.
The original intent was that a shell is a thin wrapper on top of the OS to expose the hosts capabilities. But that hasn’t been an apt description for most of those 40 years.
> An operating system shell is a computer program that provides relatively broad and direct access to the system on which it runs. The term shell refers to how it is a relatively thin layer around an operating system.
> Most shells are command-line interface (CLI) programs. Some graphical user interfaces (GUI) also include shells.
The last line I think supports the notion that the term "shell" at least implies a CLI, but I can understand both positions.
---
0. https://en.wikipedia.org/wiki/Shell_(computing)
Edit: I'm shite at formatting on HN
Both usages (graphical and CLI) of the term are correct. Saying "shell" doesn't by itself imply one or the other, even if the technology that is more commonly discussed when we say "shell" is those CLI things in UNIX-like OSs.
A bit like how cars are typically small vehicles with internal combustion engines, but that doesn't mean EVs are not a classification of cars too.
Just FYI.
https://gitlab.gnome.org/GNOME/gnome-shell
(just as one example)
As someone managing various servers, both at home and at work, I see how this can be really useful. I see it not in the production space yet but rather in the experimenting, using a Linux machine as a second compute device!
So regarding your last point, I'm convinced. I think it is useful! The one fact that is bugging me is that now it requires a client specific app, with GUI, on my PC and I wonder if using ssh port forwarding could reduce the surface. I mean I wonder if either having a rich client that executes commands via ssh or a rich server (including Web Server) with ssh port wouldn't suffice, so that I can avoid installing stuff on the server AND on my computer.
> 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?
Download the binary, make a Caddyfile
And then just "./caddy start"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
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.
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)
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, ...
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.
(The one on the website is the standard browser video player, not custom.)
The tool from OP and WAC are pretty similar in terms of functionality and usecase. Why would you want this? Well, imagine your team needing to be able to do server functions but you have less technical team members to do it for you, which is very often the case in big places, most people are familiar with the web browser and having a website to do these sorts of actions makes it easier to have things done in one place without a lot of tools like Remote Desktop, SSH, WinRM, etc. configured.
Cool idea anyway, no shade here.
It does. MobaXterm have a bunch of it already, file manager on the side and ability to pass X11
I take it you don't know about "X11Forwarding yes" or "html5 web app"
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.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/)
Dependencies are less of a concern for the frontend binaries. For backends, I use a dependency-light approach, static-linking anything that's needed. Of course, people are welcome to do backends however they want, and just tell Outer Shell about the systemd/launchd units via the API. I used this no-dependency approach to keep everything lightweight and to keep install steps trivial, but admittedly it pushes me in certain directions (for example, using custom binary formats rather than sqlite).
This adds unnecessary overhead for communication. using web and web-like approaches on desktop system is a terrible idea.
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=...
If so how would that work on non Apple devices? Also how much will that sandbox protect you?
https://outerframe.org/ and https://outerloop.sh/native-apps/
It's a fun heretical idea, moving away from a "cross-platform" web to a "multi-platform" web. It's a cross-platform protocol that hands off to platform-specific frontend code. I think it's a natural direction for the web, in a world where LLMs can translate to other platforms.
It does need an agent that starts with every X or Wayland session and waits for requests from remote SSH sessions to start an app.
"Those who do not understand Unix are condemned to reinvent it, poorly." ~Henry Spencer
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).
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.
The poster child of this is the Microsoft Office ribbon.
I want to set the temp. Maybe set a schedule and a timer. Once I have to start navigating multiple, deep menues with a thermostat I stop giving a shit.
I miss old VCRs that had 8 buttons and only those 8 functions
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.
but unix got widely adopted and you go with what sells not blue-sky woulda-coulda
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 ?
`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
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.
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.
We should re-implement it with Comic Sans and happy shiny buttons to click everywhere? Click here for "ls -alh" ?
you want your GUI then set up VNC