Built-in multiplexer
Keep programs running when Termy closes and restore your windows, tabs, and panes.
Enable Built-in Multiplexer in Settings → Terminal → Sessions, then restart Termy. You can also set it in your config file:
multiplexer_enabled = trueIt is off by default. No tmux installation or session commands are needed.
Quit and return
Quitting Termy or closing a window leaves its programs running in a background Termy process. Reopening Termy restores your windows, workspaces, tabs, split layouts, active panes, zoom, pins, and custom tab names.
Each terminal reconnects to its original running process. Its scrollback, scroll position, cursor, colors, alternate screen, input modes, links, and images remain in the background host. Programs can continue producing output while the app is closed. Configured scrollback limits still apply; inactive_tab_scrollback does not, so background tabs keep their full history.
Tab titles, working directories, progress bars, and program status badges are restored too. Bells and commands that finished while Termy was closed are not reported again. When no command is running, a progress bar or a working status that has not changed for 30 minutes is treated as left over from a stopped program and is not restored. Statuses waiting for you are always restored.
Closing a tab, pane, or workspace ends the sessions it contains. Exiting a shell also ends that shell normally; when it was the window's only pane, the window closes and is not restored. Closing the window with its window controls keeps its sessions available for reopening. While other windows stay open, run Reopen Detached Window from the command palette or the Window menu to bring it back; otherwise it returns the next time Termy starts. When the close warnings (warn_on_quit, warn_on_quit_with_running_process) ask for confirmation, closing one of several windows offers Detach (keep its processes running for reopening) or Terminate (end them).
Changes made with termy mux (new tabs, splits, closed panes, renames, and new workspaces) appear in open windows right away.
Each new terminal starts with the environment variables of the Termy window (or termy mux command) that opened it, and in the directory a regular terminal opened there would use, not in the environment or directory of whatever started the background host. termy mux create starts in the command's own directory unless you pass --working-directory, and uses your Termy settings (shell, TERM, scrollback, cursor style and shell integration); termy mux split reuses the settings of the pane it splits. Programs inside can find their session through TERMY_MUX_DIR (the background host's directory) and TERMY_MUX_PANE (the terminal's ID); termy mux run inside a terminal uses them to reach the same host.
Sessions last while the background host and your operating-system session are running. They do not survive logging out, rebooting, or terminating the host. After that, Termy starts with a fresh window instead of restoring an old regular session. Your regular saved tabs are imported once each time you switch from regular terminals to the multiplexer. This is live process persistence; named layouts remain reusable layouts that start new terminals. Saved scrollback is not carried into multiplexer terminals, whether they come from imported tabs or from a named layout.
After upgrading Termy
A background host started by an older Termy version can keep running after you upgrade. If the new version cannot use it, Termy opens with regular terminals and shows a notification instead. The new version cannot attach to the old sessions: you can still reach them with the previous Termy build. To stop them, run termy mux shutdown, which ends their processes, and then restart Termy.
If the background host stops responding, termy mux shutdown --force stops its process and ends its terminals.
If the connection to the background host is lost, each terminal reconnects by itself; its tab title says "Session disconnected" while that fails. Bells and finished commands from that gap are not reported. If the host stops (termy mux shutdown, a crash, or it was killed), its tabs stay open, titled "Session ended", and a notification says so; close them when you like. The next new tab or window starts a new host. If no host can be started, the new terminal is a regular one that ends when Termy quits, and a notification says so.
If the background host fails to start, the notification names host.log, the host's log, in the multiplexer directory next to your config file (%LOCALAPPDATA%\termy\multiplexer on Windows).
Change back to regular terminals
Turn Built-in Multiplexer off and restart Termy. Turning it off does not stop the background host: its sessions keep running and remain available if you enable it again. Close their tabs or panes first, or run termy mux shutdown, to end them.
The built-in multiplexer takes precedence over tmux_enabled. To use tmux sessions, disable the built-in multiplexer and restart Termy.
How it stays responsive
The host keeps the terminal engines and bounded scrollback in memory. The app receives the current viewport and fetches history or images as needed, so reopening does not replay terminal output. After the first frame, the host sends only the rows that changed, scrolling output costs only its new lines, and each image is sent once while it is in use, also when it scrolls back into view or an animation repeats. Background tabs receive titles, statuses and other events but no frames until you show them again. Search and copying all text read the scrollback as plain text, in bounded parts. Clipboard requests use the attached app's existing policy and wait up to a minute for you to answer its prompt, even in a background tab; a detached terminal cannot read the system clipboard. termy mux commands never answer clipboard requests.