Discussion
Design Terminal UIs. Visually
kantord: tip: your git repo's description (not readme, repo description) does not link the website. It should.
kantord: this looks insanely cool.One of the most original ideas I have seen on HackerNews in the past few years.
fidotron: This is going to end up with TUIs that resemble old BBS ANSI art, such as https://16colo.rs/It completely misses the reason people like current TUIs.
glhaynes: > No install fuss — download and start designing immediately.also> Gatekeeper blocks the app immediately. You'll see either "TUIStudio cannot be opened because it is from an unidentified developer" or "TUIStudio is damaged and can't be opened" on newer macOS after quarantine flags the binary. To get past it: right-click the .app → Open → Open anyway — or go to System Settings → Privacy & Security → "Open Anyway".
mcraiha: Also fill the Website field in About section.
lsaferite: FWIW, I still love to see the old BBS UIs and ANSI art. But that's probably just nostalgia talking.
mholt: tbf that's Apple's fault, not the choice of the free, unpaid open source developer.
glhaynes: Apple's fault that they didn't bother to edit the text that says "No install fuss"?
eterps: 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 addings mouse clickable tabs, buttons, checkboxes etc. you left the UX for TUIs and applied the UX expected for GUIs. It has become a GUI larping as a TUI.
banach: One justification for TUIs is remote access over SSH.
eterps: Sure, 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.
vidarh: I really don't want my TUI's to look like GUI's rendered in low res. The appeal to me of a TUI is that it is built specifically to be a TUI, and that means eschewing complexity and detail, and favouring compact text.
worthless-trash: I could be wrong, the corners of the boxes appear in the wrong place in the cell.I don't think there is utf8 characters that allow for drawing on the outside of the cell, (happy to be wrong)┌ (U+250C), ┐ (U+2510), └ (U+2514), ┘ (U+2518) <-- these 4 draw in the middle of the cell.「 (U+FF62), ⌟, (U+231F), <-- these are two that cover part of the outside, but not the other corners.「┐└」Can anyone tells me how to get those 'corner of cell' characters, including uprights and horizontals ?
lagrange77: The background ASCII animation is so cool! Is it an actual simulation?
theowaway213456: Not the greatest justification IMO since you can tunnel a port over SSH and get a web UI locally.
trollbridge: I don’t want to be a curmudgeon, but why not just use CSS, HTML, React, etc. at this point? You could choose a style that looks like a TUI.
sabas123: What is the point of having this if code generation is not functional yet? That is the entire point of this app.
pcmoore: Watched the video. Why isn't the editor a TUI itself?
jappgar: Because a website is easier to use and more accessible.....
webprofusion: Ha, well proof that AI let's you build anything you can imagine. Wait till I show you Remote Desktop, one day macOS and Linux will catch up.
MPSimmons: This is like QTdesigner but for the terminal. Huh.
jappgar: Why did they make a website?
raincole: When your TUI is so complex that you need a GUI to design it, perhaps you shouldn't use TUI in the first place.
jbstack: I'm not sure that's a fair criticism. Many things require or benefit from something even more complex to make them (car -> factory, code -> IDE, text -> editor, food -> kitchen). I think the real debate here is that which is found in the other comments: do we want TUIs to look like GUIs?
calgoo: FYI LLMs are great at generating the ascii art, so you can create real fun games and TUIs that look like old school BBSs.
varjag: Turbo Vision strikes back
JSR_FDED: One can only dream
moron4hire: To show off an AI generated website
NSPG911: Nope, check out something like wiretext, look at this example I put together very quicklyhttps://wiretext.app/w/WUtjS1bk
moron4hire: Anyone notice the computer image at the top of the page doesn't have the right number of keys?
mikkupikku: Bitch please, mouse events work over SSH just fine and enabling that virtually the only legitimate reason, other than style and fashion, to make a TUI instead of a real GUI. Since the whole point of a TUI is to show off your "hacker man" aesthetic, the more fancy features you can cram into it the better. Mouse clickable tabs isn't even very exotic, vim and emacs both have it, even htop has it, I wouldn't count it as fancy and just table stacks for any modern TUI.
eterps: If you think the 'mouse-clickable' aspect is bothering me, you missed my point entirely.
jasongill: While 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: That 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.)
giancarlostoro: We got a RAD IDE for terminals before GTA6 and before anyone sensibly makes a replacement for Electron. Wild.This is really cool though.
seertaak: A UI design tool for TUIs -- made with Electron?... fun times!
yoz-y: I 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.
dec0dedab0de: It'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.
sumnole: The 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.
_pdp_: Am I the only one who thinks the recent TUI explosion is absolutely not necessary?I mean yes, code editor are great for this but a lot of the TUIs I see are so slow it begs the question why they exist to begin. CLIs are supposed to be remixable and scriptable.I think a better architecture would be to generally keep CLIs work like CLIs and have separate processes that add terminal rendering functionalities for those that need / want it but in general it is an anti-pattern to start from this as default.
javier123454321: That's roughly aligned with my thinking. Make it a CLI. And if there's a lot of configuration that you can pass to it, have an option for rendering those options as a TUI.
PurpleRamen: > 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 powerNo, this is a result of different architectures and their constraints.> But once you start adding mouse clickable tabs, buttons, checkboxes etc. youTUI 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.
elxr: This one is not very accessible, try using tab + arrow keys to focus anything on the sidebar.
elxr: You can run it as a web app, no need for electron.Just `bun run dev`
drob518: I agree. The animation on the site lost me when it placed a button. IMO, buttons are not part of TUIs. Those are just low-resolution GUIs, IMO, and that’s sort of the worst of all worlds. The first good TUIs were things like top and elm.
pjmlp: Turbo Vision and Clipper want their glory MS-DOS days back.
reaperducer: And Ashton-Tate's Framework IV on an 8088 with a MDA display.
clickety_clack: Drawing 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: I 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: The vibe might not be a necessary reason, but it is a sufficient one.
reaperducer: It's a TUI if it uses text to build those elements.No. All you've done is make a low-resolution GUI.
drakythe: TUI means "Terminal User Interface" or "Text User Interface"A GUI that is built with Text, and intended to be used in a Terminal, is what a TUI is, colloquially AND definitionally.What do you think qualifies as a TUI?
tartoran: I 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 for me. I hope that modern TUI makers keep this in mind.
jvanderbot: No, a text-based UI is not sufficient. It must also work in a text-only session e.g., on the CLI over SSH.
xvilka: Nowadays we have Unicode characters and better colors though.
pjmlp: MS-DOS always had better colors than UNIX, a framebuffer isn't the same a vt100.I do agree Unicode is better than code pages, or doing alt + num pad codes.
injidup: lazygit 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.
jvanderbot: Yes. A TUI runs in a text session. A GUI runs in a graphics session. A terminal emulator emulates a text session in a graphics session - and allows you to run TUI/CLI tools. This is apparently controversial?
tim-projects: This is so cool I immediately wanted to convert my apps. But then when I thought about it, well it's trying to recreate CSS but in a majorly worse way.Browsers are ubiquitous and I can just tell ai to build a web page. I can't really see a use case other than novelty.
purerandomness: k9s, ncdu, htop, powertop are good showcases how a TUI reduces mental load and are superior to browsers and / or other GUI tools
xvilka: More importantly, it also reduces CPU and memory load.
chuckadams: Gotta say I did sort of expect this to be a TUI app itself.
mihir_kanzariya: The biggest pain point with TUIs has always been the design iteration loop. You're basically writing code blind, running it, tweaking numbers, running again. It's like writing CSS without a browser preview.Something like this could genuinely help for the layout/positioning phase, even if you still hand-write the interaction logic. The debate about whether these are "real TUIs" kind of misses the point imo. Textual and Ratatui already blur that line with mouse support and rich widgets. The ship sailed on pure keyboard-only text interfaces a while ago.What I'd actually want from a tool like this is to export to multiple TUI frameworks. Right now you're locked into one ecosystem and the code export isn't even working yet, which makes the whole thing feel premature.
elxr: > That this tool can export to several TUI frameworksIt clearly cannot. Have you even tested it?
ksherlock: Use the source Luke! It's an "ASCII plasma background" rendered into a canvas element.
papageek: Another justification could be simply some people like using them better.
roywiggins: Even 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: Yeah 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: > 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: Like 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: The 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.
papageek: This? Alpha notice: Code export is not functional yet. We're actively working on it — check back soon.
Trufa: I 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?