6 ms·
I've always been a bit mystified by the popularity of TUIs. To me, the power of the terminal is the streaming model. Composible utilities is something that is m
by acjohnson55 5mo ago
I've always been a bit mystified by the popularity of TUIs. To me, the power of the terminal is the streaming model. Composible utilities is something that is much less common in GUIs.
I get it that maybe the constraints of terminals force design of TUIs to be more focused on the purpose of the tool than polish, but it's not that compelling of a point to me.
- SchemaLoad 5mo agoFor some basic stuff like vim it works fine. But for almost everything else I'd rather a regular CLI tool or a web interface. I suspect a lot of the popularity comes from people who want to feel like a hacker using 10 terminal windows, but actually want a GUI like experience.
- zbentley 5mo agoThis. A lot of folks picked it up for that reason when they were young and now are terminal-all-the-things out of sheer inertia.
- xboxnolifes 5mo agoObviously people want GUIs. That's why TUIs should be compared to GUIs, not to CLIs. TUIs are nice since you get a lot of the benefits of a GUI, without having to leave the context of the terminal.
- yellowapple 5mo agoI feel like the better solution here (than trying to shoehorn a GUI into an interface meant for text) is to make terminal windows graphically-aware, like how things work in Plan 9.
- SchemaLoad 5mo agoAt that point what you want is just a tiling window manager rather than a terminal that supports GUIs.
- yellowapple 5mo agoI already do use tiling window managers and they don't really accomplish the “if you launch a graphical app in a terminal window it takes over that terminal window” flow. Closest I've found is Niri's support for tabbed windows, but even that's just sticking the graphical app window on top of the terminal window instead of the terminal window itself becoming the app window.
- calgoo 5mo agoDepends, I'm building a markdown down editor that just previews in the web ui. However, I can use the web ui to do tasks like uploading files, view git commits etc. Different interfaces for different purposes. The CLI gives me focused mode, and then visual stuff that steal my time goes in the web
- bee_rider 5mo agoVim is special because 99% of what we do is editing text, and it is the text editor—the importance of that task overcomes the poor discoverability of a TUI. Most other programs should be CLI, so they can fit in the conventional command line toolbox.
- ulrikrasmussen 5mo agoFor me, TUIs compensate for the fact that I can't get good remote GUI rendering on Linux. Yes, X11 tunneling exists, but the experience has always been abysmal for me for anything not hosted on a machine that sits on the same LAN as the client. For Wayland I don't even know if such a thing is possible since I don't think the architecture supports it. But the terminal is just fundamentally the wrong basic abstraction on which to build a structured GUI, it just happens to require few enough bits to be sent over the wire that it actually works reasonably well over SSH as opposed to pushing graphics.
- bitwize 5mo ago[flagged]
- ulrikrasmussen 5mo agoDid you just invent a non-existent core Wayland developer and attack them for things they didn't say? I am all up for shitting on modern software stacks and praise the Unix philosophy, but I am really turned off by posts trying to make this a question about gender identity and generation, as if that has anything to do with it. Old cis-dudes come up with bad software architectures too.
- bitwize 5mo agoSorry, but it is kind of a generational thing. If you grew up in an environment where one set of assumptions always held, you are more likely to think that these assumptions are universals and just not even bother with the possibility that they might not be the case. This goes double if you're young; even bright young devs often have not had the breadth or depth of experience to consider that that crusty old protocol they're trying to get rid of due to "legacy cruft" is the way it is for a reason, one which is still reflected in the use cases of real users working today. This has direct bearing on the Wayland situation: one of the reasons why Wayland is having trouble getting traction against X11 is because the Wayland devs have lost sight of the fact that Wayland is designed to solve one set of problems and X11 another. And real Wayland developers have made the exact argument I attributed to my fictional one, just with fewer anime emoticons (and "watch this talk by Daniel Stone" as a final mic drop).
- helterskelter 5mo agoI dunno, pre-LLM TUI's at least tended to be okay, and keyboard navigation was a first class citizen. Besides, if you were using a TUI instead of a GUI then you basically always ended up saving memory/battery life, and TUI programs are generally more portable than trying to run some ancient GUI program. I typically prefer CLI myself but having a TUI to manage torrents for instance was much more ergonomic.
- SchemaLoad 5mo agoFor almost every tui, a webui works better imo. Most torrent clients offer a web management ui and it's always going to be easier and more feature filled using a platform that was actually designed for it rather than hacking a gui in to the terminal.
- sublinear 5mo agoAccessibility can also be much better in a web UI because the markup is more rigorously defined. https://developer.mozilla.org/en-US/docs/Glossary/Accessibility_tree https://developer.mozilla.org/en-US/docs/Glossary/Accessibil...
- lynx97 5mo agoWell, "better" is relative. Web UIs definitely have the advantage you are mentioning. However, they are also much slower to use, so it is a tradeoff. I am blind and do rely on accessiblity. But I would choose a TUI over a Web UI every day simply because the web is slow as hell. Feels like running away from a "monster" in a dream. You have rich details, but you are being drowned in unnecessary verbosity and an inherently slow stack of tools working together. The web might be accessible, but it is barely useable in practice.
- sublinear 5mo agoThat's interesting. Thanks for sharing. I'm curious which screen reader you're using and what can be configured to fix that experience.
- rgoulter 5mo agoThe command line shell has that benefit of piping text between programs. TUIs are runnable from the command line shell. -- So you can get many of the benefits of a GUI (e.g. discoverability) while sticking close to the terminal where you're doing things. If you're going to "run command, edit command, run command", performing the edits from the terminal you're running the commands in seems reasonable/intuitive. (In contrast, for tools like VSCode, I think it's more common for terminals to take up a fraction of the screen space rather than switching it to full screen. And then developers will say they need a huge monitor). It also seems to be that keyboard-driven programs are more commonly TUI than GUI. e.g. magit or lazygit. Or lazydocker. Or k9s.
- sudosysgen 5mo agoThey are very useful when working on remote servers, VMs and containers. Much much more convenient and robust than, say, X forwarding.
- christophilus 5mo agoI like them because they’re easy to run in a container / sandbox.
- chamomeal 5mo agoFor me it’s mostly - the convenience of being in the terminal, where I live - you can use em over ssh - they’re typically made with keyboard usage in mind, which is often an afterthought in a typical browser based UI - other GUI options are browser (sandboxes, obvi, not good for lil personal tools), native (not dead simple, compared to TUI/browser/electron), or something like electron (no way lmao) I don’t seek out TUI’s instead of other solutions. But it’s so dang easy to pop open a new pane and run lazygit. And it makes you look really cool when people walk behind you
- baq 5mo ago1) TUIs work over ssh without any extra steps. 2) Constraints imposed by the terminal make all the apps look and work approximately the same - in the outside world the standards developed for UX are ignored as a matter of routine just because they can be. TUIs are in an optimum of least surprise, so to speak.
- reissbaker 5mo agoFor the Claude Code / OpenCode / Crush / etc new wave TUIs, it's not about composability or text streaming. It's basically a combination of a few tailwinds: 1. There's already a large-ish community of engineers who live in the terminal e.g. Vim/Neovim/tmux/zellij/etc users. Lots of engineering tasks are accomplished by running scripts in a terminal, so it makes sense for some people to just move as much of their work there as possible. This means there's a set of users you can address with dev tools that run in a terminal. 2. Cross-platform distribution among the platforms most of those people care about — macOS and Linux — is largely a solved problem via package managers. Distributing cross-platform native apps is fragmented at best. 3. Building modern TUIs has become a lot easier thanks to the demand+distribution wins above: there's a lot of appetite for building blocks, and so lots of good options have flourished like Ink for React, Bubble Tea for Go, etc. 4. General developer distaste for the most straightforward analogue to all of this for desktop GUIs: Electron. Deservedly or not it's associated with slow, bloated applications. And if you don't use Electron, doing cross-platform anything is going to be a much harder problem than just pushing out a quick TUI app. Eventually successful products seem to eventually jump the gap, like Claude Code eventually spawning Claude Cowork and OpenCode adding OpenCode Web. But it's easier and faster to test product market fit for dev tools with a TUI. And plenty of your users will stay there, even after you launch something else.
- anthk 5mo agoThese were using 66GB compared to what, few KB/MB In NCurses? I can run Nethack/Slashem under a 30 yeard of computer. React it's a joke, and there are ports of Ncurses to any OS.
- graemep 5mo agoYou can have more lightweight Web UIs if you just open a browser window instead of bundling the browser with your app as Electron does.
- TremendousJudge 5mo agoWhile I agree in principle (slack works just fine as a firefox tab, thank you very much), if the application needs filesystem access, it's not going to be viable.
- ximm 5mo agoMy experience as a developer (with a preference for simplicity): - CLI by default - if I need a GUI, but no access to the local system: web - if I need a (restricted) GUI with access to the local system: TUI - else: either start a local web server, or, if nothing else works, go for a GUI toolkit
- clan 5mo agoTotally out of fashion today but think of TN3270. Rather than "streaming" they were forms based and heavily keyboard driven. This could easily be mimicked by a GUI but keyboard shortcuts has become an afterthought. I still today meet users missing those old workflows. But they express it as "old text interface" aka TUI. If you listen to them you realize they mean blazing fast and shortcut driven. When you work with data entry you care about speed - not animations. Any beginner likes eye candy. The veteran has stopped caring.
- coldtea 5mo ago>I've always been a bit mystified by the popularity of TUIs. To me, the power of the terminal is the streaming model. Ever used Emacs? Or Vim? Or Mutt? Or Borland's old IDEs? The power of the terminal is also in ubiquitness, trivial connection to a remote system, and lack of mountains of GUI cruft, that a TUI app can as well have.
- acjohnson55 5mo agoI've used Vim plenty for the past 30 years. I don't prefer it to GUI text editors.
- coldtea 5mo agoMany of us however do.
- troyvit 5mo agoTo me, the power of TUIs lies in a few places: * Lower resource load * Less reliance on a mouse * Related: key bindings for more activities that fit my vi muscle memory * Deeper organization. Thanks to TUI tools I've been able to roll my own IDE that's invisible when I need it to be (thanks guake & yakuake) and organized by project and tab (thanks zellij). For the mixed role I'm in that works perfectly. I don't think anybody would look at what I have and call it polished though.