aboutsummaryrefslogtreecommitdiffstats

slosh

A terminal multiplexer: panes, tabs, and sessions you can detach from, written in C on top of libghostty-vt.

Install

All platforms

We provide binary builds for all supported platform. Get the latest slosh release binaries from our release page.

macOS

With Homebrew:

brew tap sl0p-foo/slosh
brew install slosh

Linux

Arch

A pacman repository serves built, signed packages. Enroll the signing key (fingerprint 0F67C909938CFFA8A76B59FD8D69B55A0E9056B9; the same key is contrib/arch/slosh.asc in git, so the two copies can be compared):

curl -fsSLO https://slosh.foo/arch/slosh.asc
sudo pacman-key --add slosh.asc
sudo pacman-key --lsign-key 0F67C909938CFFA8A76B59FD8D69B55A0E9056B9

then, in /etc/pacman.conf:

[slosh]
Server = https://slosh.foo/arch/$arch

and pacman -Sy slosh. Details, and the PKGBUILD for building it yourself: contrib/arch/README.md in the source tree.

Source

Build from source. That needs zig 0.16.

make vendor    # build the vendored terminal core (once, a couple of minutes)
make all       # a few seconds
make test      # optional: the whole suite, about thirteen seconds
sudo make install

Run

slosh              # attach to session "main", creating it if needed
slosh -s work      # a named session
slosh ls           # what is running

Sessions keep running when you detach, or when your terminal or ssh connection goes away. Several terminals can attach at once: the last one to interact sets the shared layout size, while the others see a cursor-following crop or blank filler. Reattach with the same command.

TIP: press C-a ? for the key combo cheatsheet, or C-a p for the command palette.

Reporting issues

You can submit issues/pull requests on our github repository.

Where to go

  • Keys: the leader, the defaults, rebinding, the palette.
  • Actions: every action you can bind or run from the palette.
  • Panes and tabs: splitting, moving, zooming, the mouse.
  • Configuration: one file, live reload, themes, include.
  • Shaders: colour passes over a pane's contents.
  • Chrome shaders: the same passes over a pane's frame.
  • Layouts: a session as a file you check in.
  • Workspaces: projects on disk, opened by name.
  • Scripting: the control socket, and what a pane can draw.