hraness

saved

Stop Making TUIs

by Thomas Ptaceksockpuppet.orgpublished

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.

Thomas Ptacek, stating the essay's governing claim.

Building a CLI is almost always a good idea. Building a TUI almost never is.

Thomas Ptacek, separating CLI value from TUI habit.

You can reasonably default to building native user interfaces for things, and those interfaces will be kind of good.

Thomas Ptacek, describing the post-agent default for personal software.