144 comments

[ 1.8 ms ] story [ 94.4 ms ] thread
I think part of it is also that we're able to still LARP as full developers of complex systems while vibe coding by seeing an interface that makes us look like l33t h4xx0rs even though we're just pressing continue 15 times
I’ve been running Claude with --dangerously-skip-permissions. It’s so nice that I’m not sure I can go back. Pressing continue 15 times is surprisingly heavy, but you don’t notice till you don’t have to do it anymore.
Having worked with development since the early 2000s, I think its great that development has become more accessible and I dont particularly like that the old guard tries to gate-keep the idea of "being a developer". Being an engineer I feel requires more credentials, it always has. But if you feel like you're a developer, all the more power to you!
FYI this is why I still use Vim sometimes. I am OOM more productive in JetBrains, but sometimes I have to feel like Hiro Protagonist. So, Vim it is.
I thought that that was the case for me, but then I tried using Claude Code through the desktop app last week and it was so bad. Slow, glitchy... I went back to the TUI in no time.
Can it be much more simple of a reason and that tuis fit into many of our existing tmux based work flows?
I associate CLI prompt and typing 100wpm and lots of scrolling logs with l33t, but claude code is more 1992 DOS program vibes.
"Claude, write a set of scripts using bash and python that trade this $10,000 on S&P 500 listed stocks until it reaches 5 million, make no mistakes"
I don’t understand why developers aren’t just learning to use CLIs and be comfortable with terminals even without cute little interfaces.

Are people really that put off by seeing some text on a screen and nothing more? Is tmux that difficult to learn?

Thank you for this comment. As a principal engineer in FAANG, this the correct answer
lol most depressing comment of the day
To me it's just that they're great for people who live in a terminal

- No distractions from visual content

- Extreme efficiency with keyboard

- AIs can code them up quickly. It used to be a total pain

I think TUI's are popular because they're easier to make than a GUI. They are much more constrained. A TUI is basically a wire frame with some colours, whereas with a GUI the wireframe is only the first step.
It was always there. k9s for instance, it started getting noticed recently. With coding agents, it is even easier to build.
> The most popular claim is the memory consumption, which to be fair has been decreasing over the last decade, but my main complaint (as I usually drive a 64GB RAM MacBook Pro) is the lack of visual consistency and lack of keyboard-driven workflows.

Lucky you. I avoid electron apps because I'm limping along with 16gb.

I think another factor is that people are rejecting the rounded corners and excessive padding of modern web design, you can't do that in a TUI, so you don't have a designer or standard practice encouraging you to do it. As implemented TUIs have greater information density than GUIs. Make no mistake though, TUIs are a decided step backwards from GUIs. Everything that you can express via text, you can also do in a text area on a GUI app.
My cynical take why TUIs are back is because people operating in the terminal became a signal that you were competent and once people figured that out everybody started doing it. The reason people were operating in the terminal is lost of them but hey it makes you look like a 1337 hacker. It's the same thing with side projects of past decades. People who had side projects cared about the craft for more than a paycheck and tended to be more competent. Then every person just trying to land a job suddenly had "side projects". Gotta have those green squares on github.
There are a lot of points in there that are just generally bad in modern applications – e.g. UI inconsistencies, lack of automation and general configurability (shared ways to handle windows, layouts, keyboard shortcuts, etc.). I think it’s fair to say these things are just hugely lacking in modern operating systems. Linux might come close, but only with lots of tinkering. macOS is clearly lost and degrading now, and Windows was never close to having these qualities.

I don’t know if TUIs will be the answer, but it’s an interesting development!

I do like CLI tools and TUIs but in the article it mentions Gnome style apps don't fit the look. That sounds like a limitation of Omarchy.

It's not too bad to theme GTK apps and have them all look a consistent way. For example I use Tokyonight Moon and Gruvbox and they both have GTK themes that look great for Firefox, Thunar, GIMP, LibreOffice and more. I don't use Omarchy but here's a few screenshots https://x.com/nickjanetakis/status/2037125261657883061/photo....

Nothing fancy was done on my end, just installed the specific GTK themes. They even support live reloading because GTK's tooling supports it, my dotfiles at https://github.com/nickjj/dotfiles handle all of it for you. I still prefer TUIs but you can have nice looking GUI apps for when you want them.

Those apps you mentioned are not your typical modern GTK4/libadwaita apps, so naturally you can theme them. It's the GTK4 apps - and ones which use libadwaita specifically - that cause grief.

- Firefox: Uses its own custom rendering engine but interfaces with GTK3. It respects standard GTK3 themes.

- Thunar: Uses GTK3

- GIMP: Since v3.0, they now use GTK3

- LibreOffice: Uses its own visual framework (VCL) but has a GTK3 plugin to draw its window frame and menus, and it also respects the system theme.

None of these use libadwaita, let alone GTK4, so they're not good examples unfortunately.

One huge advantage that the commandline + TUIs have is ... speed.

I get more things done, in most cases, than via a GUI. In a way a TUI is a GUI of course, but with the focus on keyboard use and inputting instructions/commands. Most GUIs seem to be centered around keyboard AND mouse and then try to make things convenient here for those operations, such as drag-and-drop via the mouse.

The best thing about TUIs is that they're so fast. They launch fast, run fast, and you use them fast. There's a learning curve for the bazillion hotkeys, because all it is is hot keys, but when you have it, you just fly.

I've been reverting more and more: mutt (mail), newsboat (RSS), amfora (gemini protocol), gurk (Signal), chawan (web), and even trn (Usenet). My RAM usage is tiny. Everything is quick.

GUIs should take a page from the TUI playbook and consider making the app keyboard-first. Nothing is more frustrating than a missing hotkey.

> They launch fast, run fast, and you use them fast.

I don't know about that. The Gemini TUI takes like four full seconds to start on my machine. I have no idea what the hell it's doing. A lot of the fancy new TUIs that are coming on the crest of the current fad are hot garbage. I hate them.

GUIs are being developed for first 30 minutes of use.

It seems that barely anyone thinks about what GUI should like for app you use hours at a time for days at end.

About only software that's half decent for it are IDEs (and probably some industry-specific niche software I'm ignorant of)

TL;DR, not from the article: Because Claude Code was a small team experiment done months after Claude Sonnet 3.7 had support for file editing; a bunch of companies had to fast follow; and the path of least resistance / collaborative work between PM and dev and design is copying, and companies are companies, they prefer money and competition over patiently waiting for X00 people to decide on a vision and deliver it.

I think it's important to note this because it's not great. Either I'm having a fever dream, or, someone will GUI this stuff and it'll be a gamechanger.

The real reason TUIs are back is not one reason, but a host of reasons.

The biggest current reason is fashion. Tools like Claude Code did it, and while they actually had good reasons to run in the terminal, the tools' popularity and wildly different look, especially to non-terminal-native users became a signal of some positive sort.

I don't believe that any of the rationale posed in the article is a popular reason developers are using.

Fashion is a big driver for sure but TUIs do have advantages over GUIs that are real, especially for powerusers.
The TUIs I've looked at seem to be largely NPM dependent? Bizarre that agents apparently don't have time to rewrite themselves in something that isn't a security tire fire. It kind of makes me assume that all this agents taking over stuff is from people working at garbage-pivot-garbage startups that don't really have to worry about any consequences but not being fast enough.
Return to the halcyon security era of curl piped into bash
99% of LLM-adjacent software is webslop in a state of perpetually broken churn.

OpenCode for example has not yet figured out "maintain a log of all messages and send that log to the SSE endpoint in the same order to get the next response" and has regular prompt cache misses even with context pruning disabled

Next one is the NoJS movement and Gemini or even Gopher spaces.

JS literally destroyed the software landscape. All the bad practices advertised as best.

A reverse shibboleth for someone who does zero professional design work is taking a screenshot of differing corner radii in macOS.

Don’t fall for this.

Why? All the great designers I've worked with would have shivers shooting up their spine after looking at that screenshot.
Only for software engineers who are already familiar with terminals. Most non tech people I know and in my company absolutely hate TUI. Even a fraction of software developers who spend most their time outside terminals (especially those that are on Windows and/or use specialized tools/IDEs) prefer to avoid TUIs as well.
Many "non-technical" folks who have interacted with virtual 3270 terminals for all sorts of mission critical tasks would disagree sharply with that assessment. And those are essentially TUIs.
And for those of us devs, they never really went anywhere. vim was the most popular editor on HN 15, 10 years ago, still very popular 5 years ago, still popular today.. and that's just an editor, all the other tools like top and its descendents never went away.. I'll believe "TUIs are back" or in some kind of uprise when I notice my non-developer friends and family using them for anything. The most dominant UI today is the mobile app, that's not changing. Limited to professional use (i.e. doing work for someone) and not all use, TUIs aren't touching either web apps or native GUIs either.
The tide is going to turn on this in the second half of 2026. There have always been nerds who just love TUIs, and still read their email in Mutt. But I think the subtext of this article is right, that TUIs are back because of how much of a pain UI development is.

But that's changed drastically in the last few months. I spent the weekend doing SwiftUI stuff with Claude, with a lot of success. It's going to get much easier to ship fast, solid, native UIs for things, and native UI is both very fun to build and also attractive to ordinary users.

(Fun green field for doing interesting UI work: do native UI for remote server stuff, like an htop UI that uses some dialect of SSH to fetch remote data.)

I think modern TUIs are a blip. A big, important blip. But a blip. The age of the Orc is over. The time of the Human Interface Guideline has come.

if ai makes native rewrites cheap, "write once run anywhere" matters a lot less. tuis stick around for dev workflows, not for shipping to users.
Because nobody is investing in native UI development. Electron is proof that if there were a simple to use GUI stack that companies would adopt it.
Zed did. I know it has it's fans, but it doesn't seem to be generating a stampede of adoption despite what looks like a monumental effort to build a GUI system from the ground up.
I don't think it is lack of investment necessarily, so much as not building the right thing.

What we need is a framework that is easy to use, cross platform, open source, and ideally can be used from your programming language of choice.

To me the worst case is trying to develop some small utility like a tool to search in files using regex. Because if you are developing something large, the amount of time you spend dealing with packaging, distribution, etc., is small and you don't care about file sizes.

But if I want to, say, develop the app for Windows. That is easy. You get a tiny binary to just opens a form and runs with a double click. No install necessary.

The same thing on Linux? Impossible. There is no guarantee the machine has any version of GTK or Qt installed at all, so to be self-contained you need to ship the entire OS. Now your file size is huge. I can't use Python, because now Windows users need to have Python or I have to ship an interpreter.

The only plausible alternative is something like Java. Now you have a single .jar file that runs on any system. But then Oracle changed the license, and JavaFX is no longer part of Java (Swing still is).

Honestly, I just want to display a menubar with keyboard shortcuts. Why can't there be a menubar VM or something that gives me access to a menubar on all OS's without having to deal with all of this. We are already shipping the entire browser with Electron. That is stupid. The way it should work is users install a something like Flash but for desktop apps and every app just uses that platform.

It's probably easier to ship a DOS game than a desktop app because everyone who wants to run a DOS game will just have a DOS emulator installed.

I mean, both wxWidgets and Qt are fine, no? GTK 2 and 3 as well (4+ is... meh). There are plenty applications using one of these (often via python bindings).

I think it is more of a staffing problem. Plenty of people know web development, so you want to use those people for desktop as well. Having desktop be JS (electron) helps a lot with that.

> The hardcore, moved to vim or emacs, trading immediate feedback and higher usability for the steepest learning curve I’ve seen

The only hard part about vim is to be forced to strecth the finger up to Escape for what is essentially the most essential function in a modal editor: Going back to command mode. The ideal workflow is do a quick edit and go back to command ("normal") mode instantly. The fact that Escape is used is a historical artifact that needs to be called out.

So just remap CapsLock to escape, it system-wide, it's not that hard and it's nice to have Escape there generally. In Linux and MacOS it's just a GUI setting away and in windows you just have to edit (create?) a registry key. Can be done on any machine under a minute.

Apart from that I don't see where the learning curve is since you can just start with the basics from vim-tutor and look up for more when you feel you're spending too much time on something. I already felt faster than in any other editor when I just knew the basics. The real problem of vim is that you get used to modal editing very quickly and it feels like the stone age when you don't have it.

remapping capslock to esc is something nobody whom i've shamed into doing can go back from. it's just night and day. i've been thinking lately that the reason we need hjkl is vim is because the keyboard layout is actually bad for arrows. on typewriters there was no arrows, but on a computer arrows are of primary importance. i think the spacebar doesn't need to be so big, there's no reason for it to be available to both thumbs, and i think moving the small set of arrows into the left or right part of the spacebar position would be so much better for typing because the hjkl hack only work in hacker editors, but we need to use arrows a lot on normal software and it's super bad for your hand if you use it a lot. i started developing inflamations because of the way i fold my thumb to reach for the arrows without moving my entire hand.
> The only hard part about vim is to be forced to strecth the finger up to Escape

I still don't understand why people keep mentioning this, ctrl-c works as well to go back to the normal mode.

> windows you just have to edit (create?) a registry key

Or use Powertoys, which I don't know why it isn't a setting.

(saying as a Mac, Linux and Emacs user, although I still use Vim in the terminal)

Map to "jj" and call it a day since your finger is already on the home row

Also ctrl + [ is standard terminal/ascii for esc so that might be a bit more ergonomic than reaching for esc

Not sure if this is bad form but i’ve always loved using jk for escape. It feels so natural to roll your index and middle fingers to get back to normal mode.

I agree, too, besides reminding myself to use numbers before movement commands there was really nothing that felt super hard about vim. It almost disappointed me, I always heard the jokes about not being able to quit it!

Weirdly enough I actually like that Esc is so far away and it is not for efficiency but for ergonomics. It forces me to lift my hand up and reposition it away from the home row and back so I'm forced to move muscles that would otherwise just wait around and collect RSI points. I tend to use the arrow keys often as well for the same reason on the other hand (although I do still use hjkl quite a bit still)
You know that CTRL + [ functions same as ESC right? Sr. dev at my job told me about this a year ago and it made vim SIGNIFICANTLY more comfortable to use day to day.
> I don't see where the learning curve is

Right here:

> modal editor

From the emacs perspective, it's barely even a learning curve. If you want to use the default keybinds it takes maybe a day to get used to them (probably less on mac since it uses some of them by default already) and GNU emacs has a very nice CUA mode. Hell, if for some reason you like vi keybinds and don't use vi and don't want to use vi, emacs has a pretty good vi mode
(comment deleted)
the current AI summer has been great for us dorks that prefer TUI/console interfaces. I hope it all sticks around with the inevitable cool-down in LLM hype.
They were never really gone, just maybe introduced to a new audience a little more lately which is great.
I've got a bit of a different on it... It's because TUIs do lend themselves better to automation (it's been mentioned in the thread) and, most importantly, it's because there's less cognitive dissonance between a TUI and how it typically operates and... The way AIs are using command line tools / the terminal (or a REPL, for those using agents hooked to a REPL).

In a way AI agents are validating what us old-timers always knew: the CLI and TUIs is the most powerful way. And AI tools didn't choose the most common dev environment: devs using fat IDEs (and btw I was already using IntelliJ IDEA back when some people were still arguing NetBeans was better than IntelliJ) are way more common than those piping Unix commands to achieve even simple tasks. Instead AI tools did choose the most powerful way to work: and that's piping terminal commands and SSH/tmux/TUIs.

When the tool itself, like Claude Code CLI, is immediately showing the outputs of piped Unix commands and allowing to run commands from a prompt and is, itself, a TUI, it's validating that it's an extremely powerful way to work.

A Claude Code CLI (or similar) TUI in a tmux session is something quite powerful.

Then you combine that with the fact that techs like LSP and tree-sitter did at least partially commodotize the IDE and suddenly TUIs (or things very close to it, like GUI Emacs: which can do graphics but is still mostly used as a TUI tool) do look very appealing.

Magit is considered by many --even non Emacs user-- as the best Git interface ever. It's text, text and more text.

My life is terminals (text), Git and Magit (text), Emacs (GUI but basically text), SSH (text), tmux (text), many text things I forgot and now TUI harnesses.

If you're modelizing in Blender or editing movies or creating movies, a GUI makes sense. But if you write code, which is text, all you need is text, text and more text.

TUIs are making a comeback because it is all text and AI agents are proof of that.

Nothing inherently special or even superior about TUIs, I think this very simply just speaks to "what happened" which is the fragmentation of the GUI space over the course of Microsoft v Apple v Linux v "The Web."

Seems like it could have gone differently. Feels like the time could be ripe for something like a "declarative gui spec."