Terminal multiplexer

Wintty Pro sessions carry their pane tree: splits, layout and scrollback live in the daemon, and any window can attach. A tmux command map for the common verbs.

In Wintty Pro, every tab and split of a persistent session lives in that session's pane tree, and the pane tree belongs to the session daemon rather than to any one window. The daemon keeps one authoritative copy of each session's tree, which is what lets a session move between windows with its layout intact. That is the terminal multiplexer. The persistent sessions page covers the daemon and the sessions themselves; this page is about the layout.

What a pane tree is

A pane tree is the full shape of a session: the session's tabs, in tab strip order; each tab's splits, with the direction of every divider and the share of the space each side keeps; and which pane has focus. The daemon stores that tree. A Wintty window renders it, and closing the window leaves the tree alone.

Each pane in the tree is one program the daemon hosts, with its own scrollback. A session carries up to 64 tabs, and a tab up to 64 panes. The stored tree carries divider percentages and the grid size of each tab, so reattaching puts the layout back as it was.

Attach from any window

The sessions picker lists every session the daemon holds. Three things can happen when you pick a row:

  • The session is already attached to this window: it focuses.
  • The session is idle: it opens in a new tab.
  • The session is attached to another window: it moves to this one after you confirm.

A move carries the pane tree with it: the same tabs in the same order, the same splits, the same focused pane, and the scrollback each pane had.

Layout survives updates

The pane tree is data on disk, not window state. The daemon journals it under %LOCALAPPDATA%\ShipDigital\<packId>\sessiond\data\, next to the session records and the scrollback journals.

An app update that does not change the daemon leaves the daemon running, so nothing moves. An update that does change the daemon restarts it; at startup the new daemon loads the layout journal, and the sessions come back with their tabs, splits, and scrollback.

Coming from tmux

If you know tmux, the verbs map across. winttyc is the daemon's command-line tool, and every verb is a plain subcommand:

In tmuxIn WinttyWhat it does
tmux lswinttyc listList the sessions the daemon holds
tmux new -s namewinttyc new <name>Start a new persistent session
tmux kill-session -t namewinttyc kill <name>End a session
tmux send-keyswinttyc send <name> [text]Send bytes to the session's input. send writes raw bytes, so a script supplies its own Enter
tmux capture-pane -pwinttyc history <name>Print scrollback: --text by default, --vt, or --html
tmux rename-sessionwinttyc rename <name> <new-name>Rename a session
tmux attach -t namepick the session in the sessions pickerAttach. Closing the window detaches, and the session keeps running
watch without attachingwinttyc tail <name>Stream a session's output as it arrives. Ctrl+C detaches, and the session keeps running

Create a session, feed it a build, and watch it run:

Set-Alias ws winttyc
ws new build
ws send build "zig build`r`n"
ws tail build

Some things tmux has, Wintty does not. There is no status line. There is no remote attach: the daemon answers a named pipe on your machine, and while winttyc tail streams a session's output, a real attach means opening the session in a Wintty window. Splits and resizes are GUI actions, not CLI verbs; the command-line tool lists, creates and feeds whole sessions. And there is no prefix chord to memorize, since pane movement and resizing follow the regular split keybindings.

For how the ways to run tmux on Windows compare with what Wintty does instead, see tmux on Windows.

Availability

The multiplexer ships in Pro, Pro Enterprise and Pro Legacy. What each tier includes puts that in context next to everything else each tier carries.

Note

Prebuilt builds are for sponsors. The source is free and always will be, and you can build it yourself. No build has been published yet either, so there is nothing to download today.