Back

TUI Studio – visual terminal UI design tool

142 points4 hourstui.studio
eterps1 hour 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.

PurpleRamen9 minutes 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.

sumnole21 minutes ago

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.

jmmv11 minutes ago

“Modern TUIs may support mouse events” hah! They already did in the 80s…

dec0dedab0de19 minutes ago

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.

banach1 hour ago

One justification for TUIs is remote access over SSH.

theowaway21345658 minutes ago

You 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)

jasongill32 minutes ago

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
zimpenfish17 minutes ago

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.)

yoz-y18 minutes ago

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.

roywiggins36 minutes ago

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)

+1
wolvoleo21 minutes ago
marxisttemp5 minutes ago

I'd rather use a TUI than a web UI.

wolvoleo26 minutes ago

I 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.

eterps1 hour ago

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.

clickety_clack23 minutes ago

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.

eterps15 minutes ago

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'.

mikkupikku35 minutes ago

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.

eterps31 minutes ago

If you think the 'mouse-clickable' aspect is bothering me, you missed my point entirely.

vidarh1 hour ago

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.

jbstack56 minutes ago

Interesting idea, but:

> Design once, generate production-ready code for your framework of choice. Switch targets without touching your design. Alpha notice: Code export is not functional yet. We're actively working on it — check back soon.

In other words, it isn't at all usable right now. You can't produce a TUI with it, not even a limited one.

sabas12349 minutes ago

What is the point of having this if code generation is not functional yet? That is the entire point of this app.

moron4hire28 minutes ago

To show off an AI generated website

rvz3 minutes ago

Exactly.

__alexs36 minutes ago

The TUI hype seems like nostalgia for COBOL mainframe apps that most people have never even used. A sort of secondhand cyberpunk role play with zero focus on actual UX.

Also if TUIs are so great, why isn't this a TUI app?

seertaak17 minutes ago

A UI design tool for TUIs -- made with Electron?... fun times!

elxr11 minutes ago

You can run it as a web app, no need for electron.

Just `bun run dev`

rvz5 minutes ago

That is concerning.

fidotron2 hours ago

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.

drob51811 minutes ago

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.

lsaferite2 hours ago

FWIW, I still love to see the old BBS UIs and ANSI art. But that's probably just nostalgia talking.

fidotron21 minutes ago

We can remain grateful the kids haven't discovered how to use figlet in HN comments.

calgoo40 minutes ago

FYI LLMs are great at generating the ascii art, so you can create real fun games and TUIs that look like old school BBSs.

jiehong24 minutes ago

The lack of accessibility of TUIs is not great in general.

I'd much rather terminals emulator provide a webview directly, and maybe use https://webtui.ironclad.sh/ if you really want the look.

I think it makes more sense for a cli to offer a mini webserver instead.

Think `fish_config`, but opened in the terminal directly [0].

[0]: like https://iterm2.com/browser-plugin.html

SvenL43 minutes ago

So we’re going full circle here right? Can’t wait for the first TUI MVC/MVVM/MVP/M-whatever framework to show up.

pcmoore1 hour ago

Watched the video. Why isn't the editor a TUI itself?

jappgar50 minutes ago

Because a website is easier to use and more accessible.....

elxr10 minutes ago

This one is not very accessible, try using tab + arrow keys to focus anything on the sidebar.

baranguneysel56 minutes ago

Great question.

delduca14 minutes ago

For {root} sake I'm a designer. Mostly all the code has been written by Claude and ad latere.

giancarlostoro17 minutes ago

We got a RAD IDE for terminals before GTA6 and before anyone sensibly makes a replacement for Electron. Wild.

This is really cool though.

drob51814 minutes ago

I seem to remember having a RAD IDE for terminals with Turbo Pascal back in the 1990s. But yea, still before GTA6.

NSPG91128 minutes ago

Nope, check out something like wiretext, look at this example I put together very quickly

https://wiretext.app/w/WUtjS1bk

glhaynes2 hours ago

> 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".

mholt2 hours ago

tbf that's Apple's fault, not the choice of the free, unpaid open source developer.

glhaynes1 hour ago

Apple's fault that they didn't bother to edit the text that says "No install fuss"?

gattilorenz2 hours ago

Look up Visual Basic for Dos for a surprisingly good TUI editor!

pjmlp26 minutes ago

Turbo Vision and Clipper want their glory MS-DOS days back.

tim-projects2 hours ago

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.

purerandomness2 hours ago

k9s, ncdu, htop, powertop are good showcases how a TUI reduces mental load and are superior to browsers and / or other GUI tools

kantord2 hours ago

tip: your git repo's description (not readme, repo description) does not link the website. It should.

mcraiha2 hours ago

Also fill the Website field in About section.

varjag55 minutes ago

Turbo Vision strikes back

JSR_FDED41 minutes ago

One can only dream

lagrange7758 minutes ago

The background ASCII animation is so cool! Is it an actual simulation?

_pdp_35 minutes ago

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.

drob5186 minutes ago

Depends highly on the specific application. Take a simple example of looking at process usage. You can use ps from the command line to get all sorts of info about a process. But there’s no substitute for top to show you an updating list of top cpu consumers, which ps just can’t do.

javier1234543217 minutes ago

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.

mikkupikku32 minutes ago

Of course it's not necessary, it's a fashion. Choosing to make a TUI instead of a GUI is a fashion statement, it signals aesthetic alignment with nerdy shit and says the program isn't meant for common proles. There's pretty much nothing a TUI can do that a GUI can't do, while the opposite is very much not the case.

webprofusion50 minutes ago

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.

raincole54 minutes ago

When your TUI is so complex that you need a GUI to design it, perhaps you shouldn't use TUI in the first place.

jbstack52 minutes ago

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?

jappgar51 minutes ago

Why did they make a website?

igtztorrero26 minutes ago

I want something like that, but for Bootstrap,Tailwind or Quasar

moron4hire31 minutes ago

Anyone notice the computer image at the top of the page doesn't have the right number of keys?

worthless-trash1 hour ago

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 ?

elxr36 minutes ago

The fact that this isn't a TUI itself is a bit disappointing.

The fact that even the preview isn't a TUI is just lame. Keyboard controls are also non-functional right now.

MPSimmons51 minutes ago

This is like QTdesigner but for the terminal. Huh.

aethorn2 hours ago

The website UI is unreal, I loved the idea

grilo163 hours ago

Noice figma for terminals! Dude super cool idea, great job =D

kantord2 hours ago

this looks insanely cool.

One of the most original ideas I have seen on HackerNews in the past few years.

trollbridge1 hour ago

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.

mipselaer4 hours ago

Amazing cool design tool for TUI's I got it running instantly and it feels stable and complete as well. Only 10 stars in GitHub.

lsaferite2 hours ago

I find it slightly annoying and disappointing that the blocks saying what frameworks it's designed to export to aren't links to those frameworks.