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)
sudoprivilegescurlinstalled (sudo apt install curlif 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:
- Keyrings directory β creates
/etc/apt/keyringsfor third-party signing keys. - GPG key β downloads and de-armours the key so APT can verify packages.
- Source list β adds the repository, detecting your Debian codename with
lsb_release -sc. - 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:nnew pane,d/rsplit down/right,xclose, arrows to move focusCtrl tβ tab mode:nnew tab,xclose,1β9jump to a tab,rrenameCtrl nβ resize mode: use the arrow keys to grow or shrink the focused paneCtrl sβ scroll/search mode: page through scrollback and searchCtrl 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:
- Run
sudo apt updateafter adding the repository. - Check your release is supported (Bookworm, Trixie or Sid).
- 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.