slat

Split your terminal.Keep it running when you leave.

slat tiles one terminal into panes, tabs and workspaces. Your shells live in a small background process, so closing the window — or losing the SSH connection — doesn't end anything. Run slat again and it's all there.

go install github.com/noturbob/slat/cmd/slat@latest

On Arch: yay -S slat. On Debian and Ubuntu: sudo apt install slat after adding the apt repository. On Fedora: an .rpm from the latest release.

This is slat, running in your browser. Click it, then press Ctrl S followed by v. Prefix, then ? in the real thing lists every key.
Click to try it

The real thing, in 19 seconds

Recorded from an actual slat session: a split, htop next to a test run, scrolling back through the output to find a test, then closing slat and coming back to find it all still running.

Close the window. Nothing stops.

The first slat you run starts a background process that owns every shell. The window you type in is only a view onto it.

  1. Start

    Run slat. Split panes, open tabs, start a build or a server.

  2. Leave

    Press the prefix, then d — or just close the terminal. Everything keeps running.

  3. Come back

    Run slat from any terminal. Every pane is exactly as you left it, output included.

Small, and careful about the details

Every pane has its own screen

slat emulates a terminal per pane, so clear, vim or htop in one pane never touches its neighbours, and nothing is lost when you split, close or switch tabs.

Only what changed is sent

Each frame is compared with the last and only the differing cells reach your terminal. Fast over SSH; half a million lines of output take about a third of a second.

Scroll back and search

Every pane keeps its recent output. Page back through it with vim keys or your mouse wheel, and search it with / while new output keeps arriving underneath.

New panes start where you are

A split opens in the directory of the pane you split from, not back in your home folder.

One setting file, checked

A typo or an unknown key in your config is reported the moment you run slat, instead of being silently ignored.

Keys

Press the prefix — Ctrl S unless you change it — then one key. Everything else goes straight to your shell.

Panes
v hSplit left / right, top / bottom
o ONext / previous pane
arrowsPane in that direction (or k j H L)
sSwap with the next pane
+ - =Grow, shrink, equalize
zZoom the pane to full size
xClose the pane
[Scroll back through the pane's output, and search it with /
Session
dDetach — slat keeps running
qQuit and end every shell
?Show all keys
Tabs
cNew tab
n pNext / previous tab
1–9Go to tab
,Rename the tab
XClose the tab
Workspaces
WNew workspace
w PNext / previous workspace
$Rename the workspace

Change any of them in ~/.config/slat/config.toml. Keys you don't set keep their defaults.

prefix = "C-a"
shell  = "/bin/zsh"

[keybinds]
split-vertical   = "|"
split-horizontal = "-"
resize-shrink    = "_"  # "-" was taken above