Panes and tabs, what else?
One keycombo to split — or just click, because we don't hate the mouse.
- click the middle of a border to split toward it
- drag the gap to move the boundary
- drag a pane by its title
- zoom, tab away, come back — nothing lost!
a modern terminal multiplexer written in C on top of libghostty-vt.
One keycombo to split — or just click, because we don't hate the mouse.
Detach, let the ssh connection die, come back tomorrow: every pane exactly where you left it.
Layouts (re)flow in the way you expect, nothing drifts.
One config file, hot-reloaded. Press C-a e to $EDITOR it in place.
compact true: for those who value their terminal real estate.Dim, tint, rulers, spotlights — over a pane's cells or over its
frame, with strengths computed from x, y, the
cursor, the clock.
:load shine — a shipped preset runs light along the frameOne JSON object per line over the session's socket — the same depth the keyboard gets. An agent can hold the other end.
C-a F drops a throwaway shell on top of whatever you are doing — a monitor, a man page, a quick command.
exit closes it like any shell — the layout never
flinchedA riscv64 Linux with slosh as the thing you land in, booted right here. Nothing is installed, nothing leaves the tab, and the machine is throwaway — reload for a fresh one. About 11 MiB streams in while it boots. Prefer a whole tab?
riscv64 · TinyEMU, compiled to wasm · yours until you reload
forgets the machine entirely — boot another any time
Prebuilt binaries for the popular platforms live at slosh.foo/dist — one static file each, checksummed. The tabs below are the short roads to one: an installer for linux, a brew formula for macos, a signed pacman repo for arch, a zip for windows. Building from source works too, but you never need to.
$ curl -fsSL https://slosh.foo/install.sh | sudo sh
$ curl -fsSL https://slosh.foo/install.sh | PREFIX=$HOME/.local sh # no root
Piping a URL into a shell should make you flinch —
read it first, it is short: it picks the
prebuilt static binary for your architecture from
dist/, checks it against the published SHA256SUMS,
and puts the one file in PREFIX/bin. The sudo in the first
line is only for writing to /usr/local/bin; the second line
needs no root at any step and lands it in ~/.local/bin.
Nothing compiled, nothing else touched.
$ brew tap sl0p-foo/slosh
$ brew install slosh
No Homebrew? The linux tab's installer works here too — on Apple silicon it fetches the signed prebuilt binary from dist/, verifies it, and installs that. No Xcode, no build.
# /etc/pacman.conf
[slosh]
Server = https://slosh.foo/arch/$arch
$ sudo pacman -Sy slosh
Built, signed packages. Enroll the signing key first — the key, the fingerprint to check and the PKGBUILD are in contrib/arch, the same instructions at arch/.
> curl.exe -LO https://slosh.foo/dist/slosh-<version>-windows-x86_64.zip
> tar xf slosh-*-windows-x86_64.zip # tar ships with Windows 10+
Pick the newest zip from dist/ —
x86-64 and ARM64, Windows 10/11. Inside is the same one binary:
slosh.exe, no runtime dependency beyond the OS. Panes are
ConPTYs, sessions are AF_UNIX sockets, everything on this page works
there — the details.
$ git clone https://slosh.foo/src slosh && cd slosh
$ make vendor # the vendored terminal core, once
$ make # about a second
$ sudo install build/slosh /usr/local/bin/
For the curious — the tabs above hand you this same binary prebuilt. Needs zig 0.16 and nothing else: no cmake, no autotools, no libraries. The result is one static binary.