>_ josetilabs.com
← blog

09 Nov 2026 · linux, terminal · 4 min

Zellij: the multiplexer that shows shortcuts on screen

Zellij is a Rust terminal multiplexer that, unlike tmux, shows in the status bar the shortcuts for the mode you are in. You do not memorize a prefix: the screen remembers. It installs as a single binary and configuration is a short KDL file.

What changes compared to tmux

tmux requires memorizing a prefix plus key combination, and the status bar only shows the session name. Zellij replaces that with modes: normal, pane, tab, resize. When you enter a mode, the bottom bar lists exactly which keys work at that moment. To split the screen, you press Ctrl+p and the bar itself says that d creates a pane below and r creates one to the right. That removes the main friction for people who use a multiplexer once a week and forget the shortcuts.

The other strong point is automatic session resurrection. Zellij serializes tabs, panes and working directories to the cache and, on reopen, recreates the layout. In tmux that requires an external plugin.

The cost is memory. The Zellij server consumes about 91 MB at rest, against about 4.5 MB for the tmux server. For a laptop or a small server, that matters; for a workstation, it does not.

Installation

A static binary for Linux x86_64, with no library dependency:

bash
mkdir -p "$HOME/.local/bin"
curl -sL https://github.com/zellij-org/zellij/releases/latest/download/zellij-x86_64-unknown-linux-musl.tar.gz \
  | tar -xz -C "$HOME/.local/bin"
chmod +x "$HOME/.local/bin/zellij"
zellij --version

If ~/.local/bin is not in PATH, add the line export PATH="$HOME/.local/bin:$PATH" to ~/.bashrc and reopen the terminal.

The configuration I use

The file lives at ~/.config/zellij/config.kdl. A short, commented start:

bash
mkdir -p "$HOME/.config/zellij"
cat > "$HOME/.config/zellij/config.kdl" <<'EOF'
// Bar with shortcuts for the active mode
pane_frames true

// Resurrect closed sessions automatically
session_serialization true

// On terminal loss, detach instead of killing the session
on_force_close "detach"

// Default shell for new panes
default_shell "bash"
EOF

echo "written: $HOME/.config/zellij/config.kdl"

Accepted values are documented by the binary itself: zellij setup --dump-config prints the full default configuration, with every option commented.

The three daily operations

Create a named session:

bash
zellij --session work
# or, from outside the session:
zellij -s work

Split the screen. Inside the session, press Ctrl+p to enter pane mode; the bar shows the keys. From the command line, without UI:

bash
zellij --session work action new-pane --direction right
zellij --session work action new-pane --direction down

Reattach after closing the terminal:

bash
zellij list-sessions
zellij attach work
# shortcut:
zellij a work

How to verify

bash
zellij --version
# expected: zellij 0.45.1

zellij list-sessions
# expected: lists active sessions, one per line

To prove the split and reattach, create the session proof, split with action new-pane --direction right and check the response terminal_1. Then detach and reattach: the pane is still there.

If it goes wrong

Zellij or tmux

Item Zellij tmux
Shortcuts visible on screen yes no
Configuration KDL conf style
Session resurrection automatic external plugin
Server memory at rest ~91 MB ~4.5 MB
Plugin ecosystem WASM C

Choose Zellij if you use a multiplexer occasionally and do not want to memorize shortcuts. Choose tmux if memory is scarce or you already have a mature configuration.

FAQ

Does Zellij fully replace tmux? For interactive use, yes. For scripts calling tmux send-keys on remote servers, tmux is still more common; Zellij has zellij action send-keys, but the syntax differs.

Do I need root to install? No. The binary goes in ~/.local/bin and configuration in ~/.config/zellij, all in the user directory.

Does it work over SSH? Yes. The session runs on the remote server; if the connection drops, use zellij a name on reconnect. Automatic resurrection helps, but does not replace session backup.

How do I change the prefix? Zellij has no single prefix: each mode has its trigger (Ctrl+p for pane, Ctrl+t for tab, Ctrl+r for resize). You change the triggers in the keybinds section of config.kdl.

Worth it for someone who already masters tmux? If your current configuration solves your problems, no. The switch only pays off if you want visible shortcuts or automatic resurrection without a plugin.

Terminal showing the zellij version, the creation of a session named proof and the split into two panes with terminal_1
Real output from zellij 0.45.1: version, session created and terminal_1 pane.
Bar chart comparing the RSS in megabytes of the zellij and tmux servers with an idle session
Server memory at rest: zellij about 91 MB, tmux about 4.5 MB.

See also tmux in practice, terminal that looks clean and what bash is.

Read next

// By e-mail

Posts published here also go out by e-mail. Delivery has not started yet: whoever leaves an address now joins the first batch.

I store only your e-mail, the date and the record of this consent. No cookies, no trackers, nothing shared with third parties. Details in the privacy policy.