Skip to content

TUIOS vs Others

Gaurav Gosain edited this page Oct 15, 2026 · 7 revisions

How TUIOS compares with tmux, zellij, herdr, GNU screen and the splits in WezTerm, kitty and Ghostty, and when to pick one of them instead.

TUIOS is a terminal multiplexer that works like a window manager. Shells run in windows that float or tile. A daemon keeps them running when you detach. TUIOS also tracks the coding agents running in its panes. It runs inside any terminal, over SSH, or in a browser.

TUIOS is not a terminal emulator: it does not draw fonts or open GUI windows. It is also young. The first commit is from September 2025, and the latest release is v0.10.0 (October 2026). This page describes that release.

Note

How this page was checked

Each fact about another tool comes from that project's own docs, changelog, manual or source, as of September 2026. The Sources list links them. The versions checked are tmux 3.7c (3.8 is in release candidate), zellij 0.45.1, herdr 0.9.1, GNU screen 5.0.2, WezTerm 20240203, kitty 0.49.0 and Ghostty 1.3.1. The TUIOS facts are checked against the TUIOS source and a current build. There are no speed numbers here, because no side-by-side benchmark has been run.

At a glance

This table covers the tools that run inside a terminal. Terminals with their own splits, such as WezTerm, kitty and Ghostty, are a different kind of tool and have their own section.

TUIOS tmux zellij herdr GNU screen
Language, licence Go, MIT C, ISC Rust, MIT Rust, Apache 2.0 C, GPL 3
Binary, macOS arm64 23 MB, plus tuios-web 1 MB, with shared libraries 41 MB 22 MB Not measured
Layout Floating windows, or tiled: BSP, master-stack, scrolling columns Tiled panes with preset layouts. Floating panes since 3.7 Tiled, floating and stacked panes Tiled splits, with zoom Split regions
Grouping 9 workspaces per session Windows in a session Tabs in a session Workspaces, then tabs Windows in a session
Mouse Always on. Drag, resize, focus. Drop a pane on an edge to split Off by default in 3.7, on in 3.8 On by default On by default. Click, drag, menus Focus a region (mousetrack)
Detach and reattach Yes, a daemon Yes, a server Yes, a server Yes, a server Yes
After a restart Layout, working directories, pane history and agent conversations Nothing built in. The tmux-resurrect plugin Layout and commands. Optional scrollback Layout, working directories and supported agent conversations. Optional screen history Nothing
Several clients Yes, all can type. Sized to the smallest, largest or latest client. attach -d detaches the others Yes. Read-only clients and per-user access Yes. A cursor per user, read-only attach Yes. Each client can view its own tab Yes. Per-user access lists, read-only possible
Remote machines Built-in SSH server. Sessions and panes on other hosts in your own client ssh in and attach ssh in, or attach to a zellij web server over HTTPS ssh in, --remote, or several saved machines in one window ssh in. Also serial and telnet windows
Browser client tuios-web, a separate binary. No login, read-only flag None Built in. Login tokens, read-only tokens None None
Scripting CLI verbs, JSON protocol, blocking waits, event stream, tapes, hooks tmux commands, control mode, hooks, formats zellij action, subscribe, JSON pane lists, plugin pipes CLI and JSON socket API, output and agent waits, event subscriptions screen -X and -Q
Coding agents States, alerts, waits, an Inbox that answers approvals, review with notes, queued prompts, messages between agents, worktrees, fan-out None None States, alerts, prompt and wait, worktrees, conversation restore None
Images Kitty graphics, and sixel cropped to the window. Block characters on a terminal without graphics. Experimental Sixel when built with it. Others by passthrough Sixel and Kitty graphics Kitty graphics None
Config TOML, live set-config, settings page tmux.conf, written as tmux commands KDL TOML .screenrc
Extending Hooks, dock components, control protocol. Hosts herdr plugins No plugin system. TPM, a third-party manager WebAssembly plugins Plugins: any executable with a manifest None
Platforms Linux, macOS, Windows, FreeBSD, OpenBSD Linux, macOS, the BSDs, Solaris Linux, macOS, Windows Linux, macOS, Windows Unix-like systems

Binary sizes are for macOS on Apple silicon: tmux 3.7c from Homebrew, the zellij 0.45.1 and herdr 0.9.1 release binaries, and TUIOS built from main with -ldflags "-s -w".

tmux

tmux is the default choice, and for good reason. It is packaged almost everywhere and is often already installed. The binary is about 1 MB. Its control mode (tmux -C) lets terminals such as iTerm2 show tmux windows as native tabs and windows.

Where tmux is stronger

  • It runs on servers you do not control, with nothing to install.
  • Read-only clients (attach -r) and per-user access (server-access) are built in. TUIOS has neither in its terminal client.
  • It is mature and widely documented, with a large body of shared configs and scripts.
  • 3.8 is moving fast: floating panes that move and resize with commands, modal panes, JSON layout strings, and wait-for -E to wait on hook events.

Where TUIOS is stronger

  • Floating windows are the core model, not an add-on. In 3.7 tmux floating panes move and resize only with the mouse. TUIOS also has three tiling modes and zoom.
  • Layout and working directories come back after a reboot with no plugin.
  • Programs get a JSON protocol with list-verbs for discovery, blocking wait-for on output, exit, idle or agent state, and an event stream.
  • Agent state, alerts and messages between agents. tmux has nothing for agents.
  • A browser client and a built-in SSH server.

Pick tmux if you work on many machines you do not own, need read-only sharing, or use a terminal built around control mode.

zellij

zellij is the modern, friendly multiplexer. It shows the available keys on screen, extends through WebAssembly plugins, and ships a web client.

Where zellij is stronger

  • It teaches itself: the status bar shows the keys for the current mode.
  • Plugins are WebAssembly. Rust is the officially supported language, and community projects cover others.
  • The web client (zellij web) has login tokens, read-only tokens, and requires HTTPS on any address other than 127.0.0.1. tuios-web has no login and needs an authenticating proxy in front.
  • Resurrection brings back the commands in each pane, behind a "Press ENTER to run" prompt, and can save the viewport and scrollback. TUIOS brings back a fresh shell under the pane's saved history, and runs no command again.
  • Read-only attach and a separate cursor per user.
  • It supports sixel, and Kitty graphics as of 0.45. TUIOS passes images through, and its support is experimental.

Where TUIOS is stronger

  • Overlapping, draggable windows and three tiling modes. zellij floating panes sit above a tiled layout.
  • Agent tracking, and waits on agent state.
  • Blocking waits from the CLI on a pattern in the output, on idle and on exit. zellij can block until a pane's command exits, and zellij subscribe streams a pane's output for a script to watch.
  • Sessions on other machines in your own client, without a web server.

Pick zellij if you want discoverable keys, plugins, or browser access with its own login.

herdr

herdr is the closest tool to TUIOS. It is a multiplexer built for coding agents, released in March 2026. It is more widely used, with about 40k GitHub stars against 5.3k for TUIOS, and it releases more often: 0.9.0 and 0.9.1 both shipped in September 2026. Several of the agent screen rules in TUIOS are adapted from herdr's manifests, which are Apache 2.0.

Where herdr is stronger

  • After a server restart it can replay recent screen history if you turn that on. TUIOS restores the layout, a fresh shell, and supported agents' conversations, but not the screen.
  • It adds new agents often: 0.9.1 added Letta Code and 0.9.0 added Muse.
  • Plugins: a directory with a herdr-plugin.toml manifest and commands in any language, plus a marketplace.
  • One window holds local work and several saved SSH machines, with one combined agent list.
  • Each attached client can look at a different tab at its own size. TUIOS draws a session at one size for every client: the smallest, the largest or the latest, as [daemon] window_size sets.
  • herdr update --handoff can update the server while panes keep running. This is experimental.

Where TUIOS is stronger

  • Floating windows, and BSP, master-stack and scrolling-column layouts. herdr has splits and zoom.
  • A browser client and a built-in SSH server. herdr uses an SSH client on phones instead.
  • Tape scripts to drive the UI, and tape recording.
  • Sixel images as well as Kitty graphics.
  • Mailboxes and questions between agents, and a stash for files agents share.
  • Agents that report to herdr, such as Crush, report to TUIOS too, with no install step.
  • Tools built for herdr's socket API, such as Collie's herdr adapter, work with TUIOS too. See herdr Compatibility.
  • An Inbox that answers held approvals, with risk rules that make a dangerous allow take two presses, and a review of what an agent changed, with notes sent back to it.

Pick herdr if agents are most of what you run, splits are enough, and you want plugins or screen history after a restart.

tmux-based agent managers

Tools such as claude-squad (1.0.20) are not multiplexers. claude-squad runs each agent in its own tmux session and git worktree, and gives you a list of tasks to review, check out and push. It needs tmux and gh. Pick it if you want a task list over tmux. Pick TUIOS or herdr if you want to see the agents' panes side by side.

GNU screen

screen is the oldest of these, and is still maintained. 5.0 added truecolor and rewrote authentication, and 5.0.2 shipped in July 2026.

Where screen is stronger

  • It is on many old systems where nothing else is.
  • A window can open a serial line (screen /dev/ttyUSB0 115200) or a telnet connection directly.
  • Multiuser mode has per-user access lists, including read-only access.

Where TUIOS is stronger: almost everything else on this page. screen splits into regions, but has no floating windows, no restore after a restart, no JSON interface and no image support.

Pick screen for serial consoles and old machines.

Terminals with built-in splits

WezTerm, kitty and Ghostty are terminal emulators. They draw their own windows, and their splits and tabs are part of that window. TUIOS, tmux, zellij and herdr run inside a terminal instead, so they work over SSH and in any terminal. You can use both: TUIOS inside kitty, WezTerm or Ghostty gets Kitty graphics from the host.

WezTerm kitty Ghostty
Version checked 20240203 (latest stable, nightly builds since) 0.49.0 1.3.1
Language Rust C, Python and Go Zig
Splits Panes, tabs, windows, workspaces Layouts: splits, tall, fat, grid, stack, horizontal, vertical Native tabs and splits
Detach Yes, through a mux server No No
Remote SSH and TLS domains to a WezTerm mux on the remote host kitten ssh. No remote persistence No
Scripting wezterm cli, Lua events kitten @ remote control, JSON protocol AppleScript, macOS only
Images iTerm2, Kitty graphics, sixel Kitty graphics (kitty created it) Kitty graphics
Config Lua kitty.conf Plain text config file
Platforms Linux, macOS, Windows, FreeBSD, NetBSD Linux, macOS, BSDs Linux, macOS

WezTerm

WezTerm is the one terminal here that is also a real multiplexer. A unix domain runs a mux server that keeps panes alive after the GUI closes. An SSH or TLS domain connects to a WezTerm mux running on another machine, and draws its panes as native tabs. wezterm cli splits panes, sends text, reads pane text and lists panes as JSON. The config is a Lua program.

  • Stronger than TUIOS: native GUI rendering, fonts and ligatures, and remote panes with native scrollback and mouse.
  • TUIOS is stronger: it runs in any terminal and over plain SSH, has floating windows and agent tracking, and needs nothing but tuios on the remote side. WezTerm needs a matching WezTerm on the remote host. The last stable WezTerm release is from February 2024.
  • Pick WezTerm if you want one program for terminal and multiplexer and you control both ends.

kitty

kitty tiles its own windows in seven layouts and has a remote control protocol (kitten @) that can open windows, send text and read their contents. Session files set up tabs, windows and layouts, and since 0.43 kitty can save the current layout as a session file. kitty's FAQ says the one thing it lacks from tmux is remote persistence: close kitty and its shells end.

  • Stronger than TUIOS: GPU rendering, native windows, and it created the Kitty graphics and keyboard protocols that other terminals now use.
  • TUIOS is stronger: detach and reattach, sessions that survive closing the terminal, remote hosts, floating windows and agent tracking.
  • Pick kitty if you work on one machine and do not need sessions to outlive the terminal.

Ghostty

Ghostty has native tabs and splits, and on macOS an AppleScript dictionary for windows, tabs and input. It has no detach and no multiplexer of its own. Pick it as a fast native terminal, and run TUIOS or tmux inside it when you need sessions that persist.

Coming from tmux

TUIOS uses the same leader key as tmux, and several prefix keys match:

Action tmux TUIOS
New window Ctrl+B c Ctrl+B c
Detach Ctrl+B d Ctrl+B d
Copy mode Ctrl+B [ Ctrl+B [
Zoom Ctrl+B z Ctrl+B z
Split left and right Ctrl+B % Ctrl+B |
Split top and bottom Ctrl+B " Ctrl+B -

Many CLI verbs share tmux's names too: new-window, split-window, send-keys, capture-pane, list-windows, kill-session.

tuios --server NAME runs a separate daemon, as tmux -L NAME runs a separate server. See Sessions & Daemon Mode.

The difference to learn is the two modes. Keys typed in window management mode move windows. Keys typed in terminal mode go to the shell. i enters terminal mode and Alt+Esc leaves it. The prefix key works in both. Keybindings lists everything, and every key can be rebound.

Try it live: Coming from tmux and Coming from zellij walk you through the switch in your browser, with the keys you already know side by side.

Sources

tmux

zellij

herdr

GNU screen

Terminals

Related

  • Getting Started: Install, first session, and the keys you need on day one
  • Layout Modes: Floating, BSP, master-stack, scrolling columns and zoom
  • Sessions: Detach, reattach, sharing and what survives a restart
  • Agents: Agent state, alerts and waits for coding agents in panes

Clone this wiki locally