Back to Blog
Features, Release
October 25, 2026
Max Binshtok•nash Core Team

Shared Tab State in the Mux Server

Nash 0.11.9 moves more tab state into the mux server. A tab's color, order, tab-scoped Zen flag, and active pane belong to the server rather than one attached GUI. Changes reach other attached clients and survive detach and reattach while that server keeps running.

Some state deliberately stays GUI-local, and upgrading the server still stops its processes.

Share the Arrangement, Not Every GUI Preference

Tab dragging, MoveTab, MoveTabRelative, and New Tab to the Right update the server's order. In a window mixing local and mux tabs, only mux tabs participate in that order; other domains' tabs keep their slots. Tmux control-mode domains do not gain tab-order support.

A fresh attach starts on the server's active tab in each window; later resyncs do not reset your selection. Lua tab activation and task focus restoration also reach the server.

Global Zen Mode and Back/Forward tab history remain GUI-local. History starts empty on attach. The tab's Zen flag is shared, but each GUI still chooses its own Zen scope and dimming preferences.

Move Running Work Without Recreating It

MoveTabToNewWindow now moves the existing server tab and panes. Programs keep running, and other clients learn the new window membership. The tmux control-mode restriction remains. Splitting a server-owned tab into a different domain is rejected; use that tab's domain.

Moving is different from Reopen Closed Tab. A mux tab explicitly closed while its spawnable domain is attached can now be remembered for reopening. Reopening reconstructs its position, color, Zen flag, and layout in new processes. Recorded running commands can execute again, and scrollback is not restored.

Closing a GUI window normally detaches mux panes instead of killing them, so that is not a closed tab to reopen. GUI session saves exclude live all-mux windows and retain only restorable local content in mixed layouts. Reconnect to the server's existing panes rather than recreating duplicates from a saved GUI layout. See Multiplexer Sessions.

Target CLI Changes Deliberately

The new move-tab, set-tab-color, and set-tab-zen CLI commands change shared tab state. JSON pane listings include color, zen_mode, and is_active_tab; those tab-level fields repeat for every pane in a split tab. is_active still means the active pane within its tab.

A nonempty NASH_UNIX_SOCKET overrides --prefer-mux. From a local GUI pane, an inherited socket can therefore target the GUI instead of the server. When switching instances, clear both NASH_UNIX_SOCKET and NASH_PANE, then obtain explicit IDs from a list made with the same server-targeting environment. IDs are instance-local. The mux commands reference covers targeting.

Keep the Remaining Boundaries in View

Process names, PIDs, executable paths, and working directories reported by a remote mux describe the remote host, not local files or processes. Project manifests remain disabled for TLS and SSH mux panes; a remote working directory does not authorize loading local project configuration.

Smaller changes include rounded ends on the active-pane gutter highlight and a bundled highlight size of 5pt. The mux transport also reads and writes concurrently, with ordered output and coalesced pane updates, so a blocked writer does not stall inbound request handling.

Schedule the Protocol Upgrade

This release uses protocol 51, with no older-protocol compatibility mode. Update GUI, CLI, and server binaries, including the remote server where relevant. An older running server still needs replacement.

nash mux restart is Unix-only; on Windows, stop nash-mux-server manually before starting its replacement. Restart closes all server-owned panes and their processes. Save work first: neither shared tab state nor GUI session restore makes a server restart preserve running work.