// the take
A Swift port of migueldeicaza's gui.cs, giving Swift developers a widget-based toolkit for building terminal UIs on Mac, Linux, and Windows. Good fit for anyone writing cross-platform CLI tools in Swift who wants something closer to a desktop UI framework (windows, menus, dialogs) than raw ANSI drawing.
The driver abstraction is well thought out — curses, raw ANSI (unix), a plain-text TTY driver for testing, and a Windows console driver, with sane fallback logic (curses on macOS 15+, falling back to the ANSI driver if curses isn't operational). The TTY driver specifically for capturing plain-text output in CI/tests is a nice touch most TUI libraries skip. Widget coverage is broad for a toolkit this size: DataTable, SplitView, TabView, a VS Code-style CommandPalette with async fuzzy search providers, and a StandardDesktop mode with window management (move/resize/tile/dock) out of the box. Documentation is generated via DocC and published automatically, which is rarer in this space than it should be.
Single-maintainer project (migueldeicaza) with a small contributor base and only 583 stars — this hasn't seen the adoption or battle-testing that Go's bubbletea or Rust's ratatui have, so expect to hit unreported edge cases yourself. Terminal UI in Swift is a thin ecosystem: fewer third-party widgets, fewer Stack Overflow answers, and you're tied to Swift's packaging story on Linux/Windows which is still rougher than Go or Rust's. The curses driver's macOS version gating (15.0+) and automatic fallback suggests the curses path isn't uniformly reliable across platforms, so you may end up debugging driver selection instead of your app. No mention of accessibility (screen readers, high-contrast modes) which matters if this is used for anything beyond developer tooling.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →