A zellij port of tmux-workbench by Leon (LeON-Nie-code)

Never lose track of a zellij session again.

Zellij Workbench indexes your zellij sessions across your machine and SSH servers, remembers the project context around them, and gives you one fast CLI/TUI entry point to get back to work.

$ cargo install --git https://github.com/ileadall42/zellij-workbench zellij-workbench
Quick start View on GitHub
Zellij Workbench TUI: browsing workspaces, live search filtering, and server/view cycling

What it actually does

It does not replace zellij. It makes zellij workspaces easier to find, inspect, and resume — locally and over SSH.

Local + remote indexing

Scans zellij sessions on your machine and any number of SSH servers, batched into one round trip per host — not one per session.

Stable workspace IDs

Every workspace gets a <server>/<session> ID. Attach back to it, or recreate it if it's gone, from any machine.

Structured TUI search

Filter with server: status: tag: git: prefixes alongside plain text, live as you type.

Git snapshots

Branch, commit, dirty state, ahead/behind counts, and remote URL captured for every workspace on scan.

Notes, aliases, tags

Annotate workspaces and keep that metadata across rescans, even after the underlying session disappears.

Resurrectable sessions

Tracks zellij's own exited-but-resurrectable sessions as a first-class presence state, shown as active* in the TUI.

Quick start

Requires zellij, git, and ssh for remote servers.

Install and initialize a config.

curl -fsSL https://raw.githubusercontent.com/ileadall42/zellij-workbench/main/install.sh | bash
zw init

Add a remote server (reuses your existing ~/.ssh/config).

zw add-server prod --ssh "ssh prod"

Scan, then browse in the TUI.

zw scan
zw

Or attach directly by ID from the CLI.

zw attach prod/api

TUI keys

Shown live in the status bar of the TUI itself, so this is a reference, not something you need to memorize.

Enterattach to the selected workspace
/search — supports server: status: tag: git:
nedit note in $EDITOR
aarchive / unarchive
vcycle all / active / archived views
scycle server filter
rrescan (also auto-refreshes every 30s)
j / kmove
qquit