Here's the honest truth about server management dashboards: almost nobody who manages servers full-time enjoys using them. They're good for the monthly review, or for letting someone less technical check on things, or for a first-time setup. After that, everyone quietly drops back into ssh, grep, journalctl, and three bash aliases.

So when we started building Servonaut, we didn't ask "what should the dashboard look like?" We asked "what does the expert workflow actually look like, and can we make it 10% nicer without breaking the speed?"

The answer turned out to be a TUI.

Why not a web app?

  • Startup time. A good TUI opens in under half a second. A web app needs a browser, a login cookie, a page render, and then whatever it forgot to lazy-load.
  • Keyboard-first is not the same as keyboard-navigable. Real keyboard-driven interfaces never require you to know where the cursor is — they require you to know what command you want. Browsers are bad at this, even with good accessibility.
  • Persistent SSH sessions. SSH connections survive in a TUI's process. They don't survive a page reload.
  • No tab sprawl. We've all done it: 14 browser tabs, one per server. A TUI gives you a sidebar and a split pane.

Why Textual?

We picked Textual because it's the first Python TUI framework that actually looks modern — without being heavy. Mouse support. Real theming. Async-by-default. CSS-like styling. It compiles down to a small footprint you can pipx install and forget.

What the TUI is not

It's not trying to be a replacement for kubectl, terraform, or aws CLI. It's trying to be the layer above them — the thing that knows where your servers are, holds your SSH sessions, and gets out of the way when you want to drop to a raw shell.

And now, as of this year, it's also the thing that gives your AI agents a clean interface to talk to infrastructure — through MCP — without compromising the keys on your keyring.