7 ms·
This is nonsensical, there is nothing textual about the UIs being shown here. It doesn't stop being a GUI if you have a 1:1 representation of the concept within
by eterps 6mo ago
This is nonsensical, there is nothing textual about the UIs being shown here. It doesn't stop being a GUI if you have a 1:1 representation of the concept within character cells.
The UX actually matters, and TUIs are generally built for effectiveness and power (lazygit being an excellent example). But once you start adding mouse clickable tabs, buttons, checkboxes etc. you left the UX for TUIs behind and applied the UX expected for GUIs, it has become a GUI larping as a TUI.
- banach 6mo agoOne justification for TUIs is remote access over SSH.
- eterps 6mo agoSure, but my point was that UX matters for TUIs. A TUI with a UX that fits its paradigm , again like lazygit, works great over SSH.
- deleted 6mo ago[deleted]
- theowaway213456 6mo agoYou can tunnel a port over SSH and get a web UI locally, though it's not commonly done. I feel like more people would actually do this if tunneling a port was just ever so slightly easier (like, you're already SSH'd into a box, then you run a command, then you somehow automatically get a tunnel for that command's UI port plus a local browser window open to the page)
- roywiggins 6mo agoEven easier is just using an X server, if you have it set up properly you just need to run the remote app and the window pops up on your machine. (I think terminal-based GUIs are neat just for fluidity of use- you can pop one open during a terminal session and close it without switching to mouse or shifting your attention away from the terminal. They can also be a nice addon to a primarily CLI utility without introducing big dependencies)
- wolvoleo 6mo agoYeah I love that about X. I remember in the 90s when I first figured that out. I was logged in from a university workstation into my home computer with SSH and I launched my mail client or something and I thought doh, stupid that will only popup locally. Then colour my suprise when it popped up on my screen right there. Slow as molasses but still. Wow. Magic. It's a shame Wayland dropped this. Yes I know there's waypipe but it's not the same.
- coldpie 6mo ago> It's a shame Wayland dropped this. It... really isn't. Like you said, remote X was barely usable even over an entirely local network. Most applications these days are also not designed for it, using loads of bitmap graphics instead of efficient, low-level primitives. So you end up being just one tiny step away from simply streaming a video of your windows. We have better tools for doing things remotely these days, there's a reason approximately no one has used remote X after the mid-90s. It's a neat party trick, but I don't blame the Wayland authors for not wanting to support it.
- duskdozer 6mo agoLike what? X forwarding has pretty much always been the thing most likely to work for me and I haven't been able to find any equivalent.
- coldpie 6mo agoThe big obvious one is web-based tooling. Your information & settings are stored on a server and you use a web browser to view it via whatever device you're on. For more locally based workflows, we have networked filesystem protocols, automatic syncing between systems, that kind of thing. It's not a 1-1 equivalent of running a remote program and viewing it locally obviously, but it gets the same job done, in a much more useful & flexible manner than X forwarding did. For example, the remote mail client usecase I was replying to is simply done with a webmail client today.
- jasongill 6mo agoWhile in an SSH session, press enter, then type tilde and capital C (enter ~C) and you can add command line options to the current session. To add a port forward from your local 8080 to the remote port 80 without closing the connection, do: enter ~C -L 8080:localhost:80
- zimpenfish 6mo agoThat is a neat trick. Added to the list. (Ultimately unhelpful though because I use mosh everywhere these days and that doesn't appear to have anything fancy like this.)
- dylan604 6mo agoMaybe it's just still too early in the morning yet, but what is the significance of hitting enter first?
- jasongill 6mo agoSSH expects the escape sequence (tilde) to be the first character on a new line; since backspace is sent as a character, you can't just backspace over something you've started typing and then press tilde to have it recognized. Technically, you don't have to press enter if you've not typed anything (try it in a new SSH session - as soon as you are logged in, type ~? to get the SSH help output), but since the comment was about doing this during an active session without ending it, I figured noting that pressing enter first to be sure you're on a new line wouldn't hurt
- Tepix 6mo agoThanks. This could really benefit from a TUI!
- wolvoleo 6mo agoI do this a lot but I'd still prefer TUI where possible. With too much visual content it isn't of course, but for many cases a TUI is much more responsive and much lower resource.
- surajrmal 6mo agoI largely agree with you, but there are limits to what a tui can do well. If analyzing a flame graph or performance trace, web UI is a better fit. However, most things are not that.
- yoz-y 6mo agoI like TUIs because I run everything in tmux and I can just pick up work from wherever I was on any computer, phone or tablet.
- DesiLurker 6mo agoshare some good (easy on remembering keyboard & mouse) tmux configs. I usually struggle with copy pasting many scrollback lines from/to tmux. would love for my claude to be natively tmux aware.
- yoz-y 6mo agoI usually copy with mouse and paste with ctrl+b ], or use the iterm selection to copy to macOS clipboard. For navigation between windows I have this: bind -n S-Left select-pane -L bind -n S-Right select-pane -R bind -n S-Up select-pane -U bind -n S-Down select-pane -D # Control shift arrow to resize panes bind -n S-C-Left resize-pane -L 5 bind -n S-C-Down resize-pane -D 5 bind -n S-C-Up resize-pane -U 5 bind -n S-C-Right resize-pane -R 5 # Shift arrow to switch windows bind -n M-S-Left previous-window bind -n M-S-Right next-window bind -n S-Home previous-window bind -n S-End next-window # No delay for escape key press set -sg escape-time 0 set-option -g repeat-time 0
- marxisttemp 6mo agoI'd rather use a TUI than a web UI.
- papageek 6mo agoAnother justification could be simply some people like using them better.
- mikkupikku 6mo ago[flagged]
- eterps 6mo agoIf you think the 'mouse-clickable' aspect is bothering me, you missed my point entirely.
- deleted 6mo ago[deleted]
- bonoboTP 6mo agoThat's the only concrete thing you mentioned. By that criterion, htop isn't TUI.
- mikkupikku 6mo agoThe only thing you actually managed to complain about was clickable tabs, buttons and checkboxes. Besides that, what it exactly do you object to, the design vibes? The only reason to be making a TUI in 2026 is as form of personal expression, so your preferred design vibes are no more valid than the OP's.
- clickety_clack 6mo agoDrawing a “nonsense” line between TUIs and GUIs is pretty arbitrary, it’s all pixels on a screen at the end of the day. People like the TUI vibe, and that’s a good enough reason to make and use them.
- eterps 6mo agoI actually agree with that. And I enjoy the fact that TUIs are becoming popular. But there is more to it than just the 'vibe'.
- clickety_clack 6mo agoThe vibe might not be a necessary reason, but it is a sufficient one.
- tartoran 6mo agoI love TUIs but one main reason for that is that they're keyboard centric. If I have to use the mouse it kills it for me, if both work then it's fine. I hope that modern TUI makers keep this in mind. What's great about the keyboard centric is that with a few keystrokes/shortcuts it's very easy to do repeatable work and takes less energy than hunting boxes to click on with the mouse.
- mikkupikku 6mo agoTUIs aren't more inherently keyboard driven than well constructed GUIs. You can easily make a keyboard driven GUI that has all the shortcuts you'd add to a TUI. (Just don't let the "UX design experts" near it.)
- tartoran 6mo agoThe problem is that UX experts are attracted to the TUI space and may ruin it for us all with all kind of things that don’t make sense. TUIs are more likely to be keyboard centric our of necessity when mouse isn’t available or used sparsely.
- sumnole 6mo agoThe UIs are text only, so they are textual. Modern TUIs may support mouse events. That this tool can export to several TUI frameworks is evidence that these UIs are indeed TUIs, even if not the most traditional.
- jmmv 6mo ago“Modern TUIs may support mouse events” hah! They already did in the 80s…
- rob74 6mo agoYeah, remember good old Norton Commander (https://en.wikipedia.org/wiki/Norton_Commander https://en.wikipedia.org/wiki/Norton_Commander) - not that newfangled clone Midnight Commander, the original? Or the Borland text mode IDEs (https://ilyabirman.net/meanwhile/all/ui-museum-turbo-pascal-7-1/ https://ilyabirman.net/meanwhile/all/ui-museum-turbo-pascal-...), complete with windows, menus, buttons, scroll bars, file dialogs etc. etc.?
- jgilias 6mo agoOh boy, that sent me down the memory lane hard. I also had to Google “Volkov Commander”, as that name sprung to mind immediately too.
- jvanderbot 6mo agoNo, a text-based UI is not sufficient. It must also work in a text-only session e.g., on the CLI over SSH.
- 627467 6mo agoDo UIs exported from this tool not worknon CLI over SSH?
- elxr 6mo ago> That this tool can export to several TUI frameworks It clearly cannot. Have you even tested it?
- dec0dedab0de 6mo agoIt's a TUI if it uses text to build those elements. You can be effective and powerful in any kind of interface, Just like you can be ineffective and weak in any kind of interface. People like TUIs because they're cool, and work over SSH.
- reaperducer 6mo agoIt's a TUI if it uses text to build those elements. No. All you've done is make a low-resolution GUI.
- gambiter 6mo agoYeah, that's the point. Why did you think you needed to say it? It's a GUI that works over SSH. There is a very valid use case for that.
- ralferoo 6mo agoI assume his point is that making stuff that assumes a mouse makes for a bad text-based UI. Absolutely fine if everything is controllable via the keyboard, e.g. if the tabs were labelled F1-Fn and they function keys switched them, or they had an underlined letter and Ctrl+letter switched focus to it, or whatever. But if this thing requires you to just tab a lot through lots of pointless and rarely used fields to get to a "button" so you can activate it, because it's really all designed to be used with a mouse, then it's a bad text-based UI. There are some incredibly good text-based UIs around, some going back to mainframe stuff from the 70s. Most of them are optimised for speed of control via keyboard rather than for looking pretty. Almost none of them would be quicker to use with a mouse.
- dec0dedab0de 6mo agoabsolutely, but it's still a TUI. Just like if you made a GUI that didn't have any mouse support and needed all keyboard shortcuts, it wouldn't stop being a GUI.
- PurpleRamen 6mo ago> there is nothing textual about the UIs being shown here. Well, except: > a 1:1 representation of the concept within character cells. TUI is build from text, and living within its constraints and what it's engine (usually the terminal) allows. GUI is build from graphics, and has basically a pixel perfect control of its own. This is a very notable difference, especially at the time when these terms were coined. > TUIs are generally built for effectiveness and power No, this is a result of different architectures and their constraints. > But once you start adding mouse clickable tabs, buttons, checkboxes etc. you TUI and mouse are predating the GUI (more or less). We had them already 40-50 years ago at the dawn of interfaces. We are now just moving back to them for practical reasons.
- criddell 6mo agoWould you make the same argument for classic UIs created with things like Borland's Turbo Vision framework? It's generally known as a TUI framework (including by Wikipedia).
- jvanderbot 6mo agoThe distinction is - if it runs over ssh (no x / graphics login) or on a headless machine - TUI If it requires graphics login, even if it uses character layouts - GUI IMHO the T/G is not for the display elements, it's for the type of session.
- tgv 6mo agoNot to put too fine a point on it, but X11 runs over ssh just fine. No "graphics login" required.
- injidup 6mo agolazygit supports vim style keybindings and mouse click and scroll. I mostly use the key shortcuts but sometimes the mouse is useful. But i agree that a well thought out state machine that can be navigated through via keyboard is a dream to work with. Lazygit is superb. But this is not a distinction between TUI and GUI.
- Trufa 6mo agoI think your comment is nonsensical. Zellij among is a great example, I can do everything with my keyboard, but every now and them I'm already with the mouse and just click a tab or pane, no functionality lost, just added, why the need to make a cutoff philosophical/semantic hard argument?
- whiteboardr 6mo agoAs a german, I say: UIUIUI
- JodieBenitez 6mo agoI like TUIs keyboard-centric. Mouse can be a plus, but it should never be necessary.
- tracker1 6mo agoThat's fair... I feel that way about GUIs too in general though. Everything should be keyboard navigable and reasonable control flows. Tab and arrows, etc. Should be able to control focus and selection (enter). I admit I don't always pay the most attention to it, as the UI components I tend to use do a good enough job of this. But I'm usually pretty consistent with it.
- JodieBenitez 6mo agoYes, even GUIs benefit from having good keyboard navigation.
- cmrdporcupine 6mo agoMan, I've had so much frustrating just trying to copy & paste from inside a terminal running e.g. opencode or crush. I think TUIs are neat, I guess. But I think these things have abused the concept extensively. They don't actually interact well with the rest of a Unix environment.
- throwawaymobule 6mo agoHold down a key (alt, I think) to prevent clicks.
- ganelonhb 6mo agoReddit moment!
- moregrist 6mo ago> But once you start adding mouse clickable tabs, buttons, checkboxes etc. you left the UX for TUIs behind and applied the UX expected for GUIs, it has become a GUI larping as a TUI. Hard disagree. Borland TurboVision [0] was one of the greatest TUI toolkits of the DOS era, had all of these: > Turbo Vision applications replicate the look and feel of these IDEs, including edit controls, list boxes, check boxes, radio buttons and menus, all of which have built-in mouse support. Well, I can’t remember if it had tabs. [0] https://en.wikipedia.org/wiki/Turbo_Vision https://en.wikipedia.org/wiki/Turbo_Vision
- jksmith 6mo agoVasellating. TurboVision was awesome, but it was pushing the boundary of TUI, which in my mind was great for moving hard copy to computer entered use case. To wit, hard copy on your right side, you transfer data to app without looking at screen, but just looking at hard copy, remembering when/where to hit return key, maybe tab for prior field, stuff like that. But hey, if the screen is drawn 24 x 80 with extended ascii, it's TUI. And man, loved the "absolute" keyword in turbo pascal. Instant screen writes when writing to a 2 dimensional array.
- weinzierl 6mo agoI don't remember "absolute" but I sure do remember "gotoxy" and it rhymes with boxy, yeah, you won't convince me otherwise.
- jksmith 6mo agoIt was something like screen: array[1..80,1..25] of byte absolute $B800:0000; So, just use all the extended ascii to assign chars to cells to draw boxes for screens, buttons, tables, whatever. Instant update.
- dathanb82 6mo agoOh man, Turbo Pascal was my first "real" programming language -- it was all various flavors of BASIC before, and mostly toy projects. The developer experience with Turbo Pascal (by which I guess I mostly mean Turbo Vision) was honestly pretty great
- musebox35 6mo agoMy ancient boxed copy of Visual Basic for DOS 1.0 that supported mouse clicks on TUI buttons would have found your viewpoint quite offensive if it had any AI in it ;-) Oh boy, good old days.
- jhbadger 6mo agoYou might not like this type of interface, but it is hardly "nonsensical". In the 1990s this sort of text-based GUI was common in DOS programs, such as Borland's "Turbo" languages and the original pre-Windows FoxPro.
- BoredomIsFun 6mo ago> But once you start adding mouse clickable tabs, buttons, checkboxes etc. you left the UX for TUIs behind and applied the UX expected for GUIs, it has become a GUI larping as a TUI. TIL that VIM is not cease being TUI the moment I type :set mouse=a. Hot taking, LARPing and teenage angst (caused by generational gap with those has been using TUI since 1980s) is on your side.
- jandrese 6mo agoI've been working with notcurses recently and it is a full TUI that handles mouse events just fine. Runs over slow SSH connections and everything. The nice part is that you can fully operate applications built on top of it with the keyboard if you so choose, the mouse is just a shortcut. Sadly the project is not really in a usable state at the moment. The documentation is incomplete riddled with errors, the code has some pretty glaring bugs, and it's close to abandoned. It's a shame because you can do some really amazing stuff with it.
- ram90 6mo agoThis is exactly the kind of passive aggressive attitude that is tolerated on HN that makes this place unbearable. "This is dumb" - gets downvoted to oblivion. "This is nonsensical + a bunch of absolutely bs reasoning" - second most upvoted comment atm. HN tolerates the appearance of quality discourse over the actual thing, and dealing with this dissonance in most comment sections is exhausting.
- h3lp 6mo agoGood insight, but if you discount the visual elements (tabs, buttons, etc), you're limiting TUI to CLI, and I think that's unwarranted. The value proposition of both TUI and GUI is two-fold: you see the available action options, and you see the effect of your actions. So, yes, TUI and GUI _are_ closely related: who cares whether we're displaying pixels or character blocks. Unfortunately, they are often artificially differentiated by the style of the UX interaction: TUIs promote the keyboard actions, and GUIs prefer mouse without corresponding keyboard shortcuts. Unfortunately for GUIs, their designers are often so enamored with WIMP that they omit the keyboard shortcuts or make them awkward. I hate it when, even if the ACTION button is available by keyboard traversal at all, it requires some unknown number of widget traversals instead of being one tab away. Since the keyboard is almost always used for the textual data, it makes sense to me to always enable it for command execution. Well designed GUIs and TUIs provide both WIMP and keyboard UX, which sadly is not the norm today, so here's my vote to make them larp for each other more.
- temporallobe 6mo agoYes and no. Early DOS UIs had elements of TUIs and GUIs, and supported mice. Many old school greenscreen applications were like this too.
- apitman 6mo agoPeople don't build TUIs because they want to run apps in the terminal, they build them because the terminal happens to be the most portable app platform available.