saved
Stop Making TUIs
gist
Thomas Ptacek argues that agents have made native desktop UI cheap enough that new TUIs are rarely justified, while CLIs remain essential. He shows personal SwiftUI apps summoned from skills and templates—Markdown viewers, music players, trackers, remotes—and contrasts how TUI frameworks fight the terminal for scrolling, selection, accessibility, and images that native widgets already get right. Prefer a local GUI that drives remote CLIs over shipping a TUI for SSH. Systems programmers who once defaulted to ASCII chrome should try building a native app; it may change how they think.
ideas
- Keep CLIs; stop defaulting to TUIs. CLIs stay irreplaceable for scripting and remote work; TUI constraints are intrinsic, not romantic machine sympathy.
- Agents dissolve the old UI tax. Frontier models plus SwiftUI skills make reasonable native macOS apps summonable without years of Motif- or Electron-era pain.
- Fighting the terminal is the product. Scrolling, drag-and-drop, text selection, floating windows, and images are free in native frameworks and asymptotic work in Ratatui, Textual, or Bubbletea.
- SSH needs a CLI, not a dashboard. Drive prod with a local GUI over remote commands (Emacs TRAMP-style) instead of shipping a TUI because you can SSH.
- Accessibility is not a TUI argument. Screen readers choke on TUI chrome updates; modern native frameworks keep a semantic accessibility tree by design.
quotes
“We build terminal interfaces because we have to, not because we should.”
“Building a CLI is almost always a good idea. Building a TUI almost never is.”
“You can reasonably default to building native user interfaces for things, and those interfaces will be kind of good.”