Zellij — Terminal Workspace with Batteries Included
Zellij is a terminal workspace (multiplexer) with batteries included. Written in Rust with sane defaults, discoverable keybindings, a layout system, floating panes, session management, and a WebAssembly plugin system. The modern alternative to tmux.
What it is
Zellij is a terminal multiplexer written in Rust that provides sane defaults, discoverable keybindings, a layout system, floating panes, session management, and a WebAssembly plugin system. Unlike tmux, Zellij shows available keybindings at the bottom of the screen, making it immediately usable without memorizing shortcuts.
Developers, DevOps engineers, and terminal power users who want a modern multiplexer that works out of the box without a .tmux.conf file use Zellij. The WebAssembly plugin system enables community extensions without recompiling.
How it saves time or tokens
Zellij eliminates the steep learning curve of tmux. New users are productive in minutes thanks to visible keybinding hints. The layout system lets you define terminal arrangements in KDL files and load them with one command, replacing manual pane splitting. Session persistence means you never lose your terminal layout on disconnection.
How to use
- Install Zellij:
brew install zellij # macOS
cargo install --locked zellij # Rust
- Launch a session:
zellij
- Use the keybinding hints at the bottom. Press
Ctrl+pfor pane mode,Ctrl+tfor tab mode,Ctrl+nfor resize mode.
Example
// layout.kdl - Define a development workspace
layout {
pane split_direction="vertical" {
pane command="nvim" {
args "."
}
pane split_direction="horizontal" {
pane command="cargo" {
args "watch" "-x" "test"
}
pane // empty shell
}
}
}
# Load the layout
zellij --layout layout.kdl
Related on TokRepo
- AI tools for coding — Developer tools and terminal utilities
- Featured workflows — Curated developer workflows
Common pitfalls
- Zellij keybindings conflict with some terminal emulators or applications that also use
Ctrl+porCtrl+t. Usezellij setup --checkto detect conflicts and remap keys. - Nested multiplexers (running Zellij inside tmux or vice versa) cause keybinding confusion. Pick one multiplexer per session.
- WebAssembly plugins are still a young ecosystem. The plugin API changes between versions, so pin your Zellij version when using third-party plugins.
Frequently Asked Questions
Zellij provides discoverable keybindings (shown at screen bottom), built-in floating panes, and a WebAssembly plugin system. tmux is more mature with a larger plugin ecosystem via TPM. Zellij is easier to learn; tmux offers more customization depth.
Yes. Zellij sessions persist in the background when you detach. Use 'zellij attach' to reconnect to a named session. Sessions survive terminal closure but not system reboots (unlike tmux-resurrect which saves layout to disk).
Yes. Zellij works with any terminal application including Neovim. The keybinding modes help avoid conflicts since Zellij only intercepts keys when you are in a specific mode (pane, tab, resize) rather than always capturing key combinations.
Zellij plugins are WebAssembly modules that run inside the multiplexer. Plugins can add status bar widgets, custom pane behaviors, and automation. The plugin API provides access to pane content, events, and Zellij commands. Plugins are sandboxed by the WASM runtime.
Yes. Zellij works over SSH just like tmux. Start a Zellij session on the remote machine, and it persists when your SSH connection drops. Reconnect with 'zellij attach' after re-establishing the SSH session.
Citations (3)
- Zellij GitHub— Zellij is a terminal workspace with batteries included
- Zellij Plugin Docs— WebAssembly plugin system for extensibility
- Zellij Layout Docs— KDL-based layout system for workspace definitions
Related on TokRepo
Discussion
Related Assets
NAPI-RS — Build Node.js Native Addons in Rust
Write high-performance Node.js native modules in Rust with automatic TypeScript type generation and cross-platform prebuilt binaries.
Mamba — Fast Cross-Platform Package Manager
A drop-in conda replacement written in C++ that resolves environments in seconds instead of minutes.
Plasmo — The Browser Extension Framework
Build, test, and publish browser extensions for Chrome, Firefox, and Edge using React or Vue with hot-reload and automatic manifest generation.