Tab
A tab is the middle tier: it holds one or more panes and lives inside a workspace where the backend has one. Unlike the workspace tier, which only some backends have, every multiplexer has a tab tier — so cyber-mux can always report which tab a pane landed in, and never has to report it absent.
“tab” on herdr and Zellij, “window” on tmux
Section titled ““tab” on herdr and Zellij, “window” on tmux”The tier is universal; the name is not. herdr, WezTerm, and Zellij call it
a tab; tmux calls it a window — a tmux window is its tab (cyber-mux reads its id as
#{window_id}). cyber-mux uses the neutral word “tab” for all of them, so the same command means the
same thing whichever multiplexer you are inside.
Because tmux has nothing above its window, its window doubles as both tiers at once: with no
workspace level to sit under, workspace and tab placements both collapse to a new window.
That is why open --at workspace and open --at tab behave identically on
tmux and differently on herdr/WezTerm. Zellij’s two placements also collapse to the same outcome — a
new tab — but for the opposite reason: it has a session tier above the tab, cyber-mux just has no
session-crossing pane target to reach it with; see Workspace.
As a placement
Section titled “As a placement”tab is one of the four placements open accepts, and the default when
--at is omitted. It adds a new tab inside the caller’s current space rather than opening a separate
one the way workspace does.
| Placement | herdr / WezTerm | tmux | Zellij |
|---|---|---|---|
tab |
a new tab | a new window | a new tab |
workspace |
a new workspace | a new window | a new tab |
Every open, whatever its placement, reports the tab its new pane landed in — a new tab reports
itself, a created workspace reports its root tab, and a pane:* split reports the tab of the
pane it split. That tab id is addressable, which is what makes naming it portable across backends.
Naming a tab
Section titled “Naming a tab”Open a tab with a name by passing --label — on tmux that becomes the window
name, on herdr/WezTerm/Zellij the tab’s name (see open’s label table). Where a backend has no
workspace tier, a tab’s display name may be a composed <workspace> - <tab>, but its own name
is stored and reported separately, never split back out of the composed string.
Where tab shows up
Section titled “Where tab shows up”open --at tab— open a new tab (the default placement); a new window on tmux.focus— beams the attached client to a pane across workspace and tab.template save --workspace— captures one region per live tab of the workspace.- Multiplexers — how each backend names and nests the tier.