How to Install Zellij on Debian: The Terminal Workspace and Multiplexer

Zellij is a terminal workspace and multiplexer with batteries included. Like tmux or screen, it lets you split your terminal into panes, organise work into tabs, and detach and reattach long-running sessions. Unlike its predecessors, it is discoverable by default: a status bar shows the available keybindings as you go, so you can be productive without memorising a cheat sheet first.

Zellij is written in Rust, evolves quickly, and gains features like session resurrection, floating panes and a WebAssembly plugin system release by release. The version in Debian’s official repositories usually lags behind, and older releases may not carry it at all. Compiling it yourself pulls in a full Rust toolchain.

The unofficial deb.griffo.io repository packages a current Zellij you install and upgrade with apt. This guide walks through it on Debian.

What Makes Zellij Special?

  • πŸ” Discoverable by design β€” a status bar surfaces the relevant keybindings for the current mode, so you learn as you use it.
  • πŸͺŸ Panes, tabs and floating panes β€” split, stack and float terminals however your workflow demands.
  • πŸ’Ύ Session persistence β€” detach from a session and reattach later; Zellij can even resurrect sessions after a reboot.
  • πŸ“ Declarative layouts β€” describe a whole workspace (panes, tabs, commands) in a KDL file and launch it instantly.
  • πŸ”Œ WebAssembly plugins β€” extend Zellij with plugins compiled to WASM, written in any supported language.
  • πŸ–±οΈ Mouse support β€” click to focus panes, select tabs and resize, if you prefer.
  • 🎨 Themes and styling β€” bundled themes and full control over the look via configuration.
  • πŸ“‹ Copy mode β€” scroll back through history and copy text to the system clipboard.

Why Use the deb.griffo.io Repository?

  • Easy installation and updates through the APT package manager.
  • Automatic dependency management handled by the Debian packaging.
  • Always tracks upstream releases so you get the latest Zellij.
  • No compiling from source and no Rust toolchain to manage.
  • Works across supported Debian releases β€” Bookworm, Trixie and Sid.

Prerequisites

Before you begin, make sure you have:

  • A Debian-based system (Bookworm 12, Trixie 13, or Sid)
  • sudo privileges
  • curl installed (sudo apt install curl if needed)

Step 1: Add the deb.griffo.io Repository

Register the repository’s signing key and source list:

# Create the keyrings directory
sudo install -d -m 0755 /etc/apt/keyrings

# Download and install the repository GPG key
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg

# Add the repository (auto-detects your distro codename)
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null

# Update the package list
sudo apt update

Step by step:

  1. Keyrings directory β€” creates /etc/apt/keyrings for third-party signing keys.
  2. GPG key β€” downloads and de-armours the key so APT can verify packages.
  3. Source list β€” adds the repository, detecting your Debian codename with lsb_release -sc.
  4. Update β€” refreshes the package index.

Step 2: Update the Package List

If you skipped the last command above:

sudo apt update

Step 3: Install Zellij

sudo apt install zellij

APT installs Zellij and any required dependencies.

Step 4: Verify the Installation

zellij --version

You should see output like:

zellij 0.42.2

Start your first session simply by running:

zellij

Getting Started with Zellij

Sessions

Zellij’s session management is one of its strongest features. A session keeps running even when you disconnect:

# Start a named session
zellij --session work

# List running sessions
zellij list-sessions

# Attach to a session by name
zellij attach work

# Attach to the most recent session, or create one if none exist
zellij attach --create

To detach from a session and leave it running, press Ctrl o then d.

Panes and Tabs

Zellij operates through modes, each shown in the status bar. The defaults are:

  • Ctrl p β€” pane mode: n new pane, d/r split down/right, x close, arrows to move focus
  • Ctrl t β€” tab mode: n new tab, x close, 1–9 jump to a tab, r rename
  • Ctrl n β€” resize mode: use the arrow keys to grow or shrink the focused pane
  • Ctrl s β€” scroll/search mode: page through scrollback and search
  • Ctrl q β€” quit Zellij entirely

Press a mode key and the status bar lists exactly what each subsequent key does β€” no need to memorise them in advance.

Layouts

Layouts let you launch a whole workspace in one command. Zellij uses the KDL format. Save this as dev.kdl:

layout {
    tab name="editor" focus=true {
        pane command="hx" {
            args "."
        }
    }
    tab name="shell" {
        pane split_direction="vertical" {
            pane
            pane command="watch" {
                args "-n" "2" "git" "status" "-s"
            }
        }
    }
}

Launch it with:

zellij --layout ./dev.kdl

Layouts placed in ~/.config/zellij/layouts/ can be launched by name, for example zellij --layout dev.

Configuration

Zellij reads its configuration from ~/.config/zellij/config.kdl. Generate a fully commented default to edit from:

mkdir -p ~/.config/zellij
zellij setup --dump-config > ~/.config/zellij/config.kdl

A few common options to set near the top of that file:

theme "gruvbox-dark"
default_shell "bash"
pane_frames false
copy_command "xclip -selection clipboard"

Shell Autostart (Optional)

To have Zellij start automatically whenever you open a terminal, add this to the end of ~/.bashrc:

if [[ -z "$ZELLIJ" ]]; then
    zellij attach --create
fi

This attaches to an existing session or creates one, and guards against nesting Zellij inside itself.

Keeping Zellij Updated

Because Zellij is installed via APT, updates come with your normal system upgrade:

sudo apt update && sudo apt upgrade

Other Tools from deb.griffo.io

The same repository packages many other terminal tools for Debian:

  • Helix β€” a post-modern modal editor to run in a Zellij pane.
  • Yazi β€” a blazing-fast terminal file manager for another pane.
  • Lazydocker β€” a simple terminal UI for Docker and docker-compose.
  • Zig β€” a general-purpose systems programming language.

Troubleshooting

GPG or Key Errors

If APT cannot verify the repository, re-add the signing key:

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
sudo apt update

Package Not Found

If apt install zellij cannot find the package:

  1. Run sudo apt update after adding the repository.
  2. Check your release is supported (Bookworm, Trixie or Sid).
  3. Inspect the source list:
cat /etc/apt/sources.list.d/deb.griffo.io.list

Garbled Colours or Missing Features

Zellij expects a capable terminal. If colours or box-drawing look wrong, make sure your TERM is a 256-colour or truecolor value and set COLORTERM if your terminal supports it:

echo $TERM
export COLORTERM=truecolor

Adding export COLORTERM=truecolor to your ~/.bashrc makes the change permanent.

Uninstalling

# Remove the Zellij package
sudo apt remove zellij

# Optionally remove the repository
sudo rm -f /etc/apt/sources.list.d/deb.griffo.io.list
sudo rm -f /etc/apt/keyrings/deb.griffo.io.gpg
sudo apt update

Conclusion

Zellij brings a discoverable, batteries-included workspace to the terminal β€” panes, tabs, persistent sessions and declarative layouts β€” and deb.griffo.io keeps it current on Debian with a single apt install. Dump a default config, describe your ideal workspace as a layout, and future releases arrive through the same apt upgrade you already run.

If you have found tmux powerful but unfriendly, Zellij’s on-screen guidance makes multiplexing approachable without giving up any of the power.

Resources


Disclaimer: The deb.griffo.io repository is an unofficial community project and is not affiliated with the official Debian or Ubuntu projects, or with the upstream Zellij project.