TUIOSTUIOS

TUIOS vs Others

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 last tagged release is v0.7.0 (March 2026). This page describes the main branch.

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.

TUIOStmuxzellijherdrGNU screen
Language, licenceGo, MITC, ISCRust, MITRust, Apache 2.0C, GPL 3
Binary, macOS arm6423 MB, plus tuios-web1 MB, with shared libraries41 MB22 MBNot measured
LayoutFloating windows, or tiled: BSP, master-stack, scrolling columnsTiled panes with preset layouts. Floating panes since 3.7Tiled, floating and stacked panesTiled splits, with zoomSplit regions
Grouping9 workspaces per sessionWindows in a sessionTabs in a sessionWorkspaces, then tabsWindows in a session
MouseAlways on. Drag, resize, focusOff by default in 3.7, on in 3.8On by defaultOn by default. Click, drag, menusFocus a region (mousetrack)
Detach and reattachYes, a daemonYes, a serverYes, a serverYes, a serverYes
After a restartLayout and working directoriesNothing built in. The tmux-resurrect pluginLayout and commands. Optional scrollbackLayout, working directories and supported agent conversations. Optional screen historyNothing
Several clientsYes, all can type. Sized to the smallest clientYes. Read-only clients and per-user accessYes. A cursor per user, read-only attachYes. Each client can view its own tabYes. Per-user access lists, read-only possible
Remote machinesBuilt-in SSH server. Sessions and panes on other hosts in your own clientssh in and attachssh in, or attach to a zellij web server over HTTPSssh in, --remote, or several saved machines in one windowssh in. Also serial and telnet windows
Browser clienttuios-web, a separate binary. No login, read-only flagNoneBuilt in. Login tokens, read-only tokensNoneNone
ScriptingCLI verbs, JSON protocol, blocking waits, event stream, tapes, hookstmux commands, control mode, hooks, formatszellij action, subscribe, JSON pane lists, plugin pipesCLI and JSON socket API, output and agent waits, event subscriptionsscreen -X and -Q
Coding agentsStates, alerts, waits, messages between agents, worktrees, fan-outNoneNoneStates, alerts, prompt and wait, worktrees, conversation restoreNone
ImagesKitty graphics and sixel, passed through. ExperimentalSixel when built with it. Others by passthroughSixel and Kitty graphicsKitty graphicsNone
ConfigTOML, live set-config, settings pagetmux.conf, written as tmux commandsKDLTOML.screenrc
ExtendingHooks, dock components, control protocol. No pluginsNo plugin system. TPM, a third-party managerWebAssembly pluginsPlugins: any executable with a manifestNone
PlatformsLinux, macOS, Windows, FreeBSD, OpenBSDLinux, macOS, the BSDs, SolarisLinux, macOS, WindowsLinux, macOS, WindowsUnix-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 with no screen contents.
  • 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 3.7k 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 resume supported agents' conversations, and can replay recent screen history if you turn that on. TUIOS restores the layout and a fresh shell.
  • Several agents, such as Pi, OpenCode and Kimi, report their state through lifecycle hooks or plugins. New agents are added 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 the size of the smallest client.
  • 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.

Pick herdr if agents are most of what you run, splits are enough, and you want conversations to survive restarts.

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.

WezTermkittyGhostty
Version checked20240203 (latest stable, nightly builds since)0.49.01.3.1
LanguageRustC, Python and GoZig
SplitsPanes, tabs, windows, workspacesLayouts: splits, tall, fat, grid, stack, horizontal, verticalNative tabs and splits
DetachYes, through a mux serverNoNo
RemoteSSH and TLS domains to a WezTerm mux on the remote hostkitten ssh. No remote persistenceNo
Scriptingwezterm cli, Lua eventskitten @ remote control, JSON protocolAppleScript, macOS only
ImagesiTerm2, Kitty graphics, sixelKitty graphics (kitty created it)Kitty graphics
ConfigLuakitty.confPlain text config file
PlatformsLinux, macOS, Windows, FreeBSD, NetBSDLinux, macOS, BSDsLinux, 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:

ActiontmuxTUIOS
New windowCtrl+B cCtrl+B c
DetachCtrl+B dCtrl+B d
Copy modeCtrl+B [Ctrl+B [
ZoomCtrl+B zCtrl+B z
Split left and rightCtrl+B %Ctrl+B |
Split top and bottomCtrl+B "Ctrl+B -

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

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.

Sources

tmux

zellij

herdr

GNU screen

Terminals

On this page