MANPAGE(1)
π MANPAGE(1) β the general commands manual, but make it make sense
okay so real talk: this is the zellij page π β that's the actual title of the command, zellij, sitting inside the General Commands Manual. Buckle up bestie, we're going in.
β¨ NAME β¨
zellij β run zellij π«Ά (that's it. that's the whole name section. iconic brevity.)
πΈ DESCRIPTION πΈ
Zellij is a whole workspace, and it's aimed at developers, ops-oriented people, and honestly anyone who loves the terminal π. At its core it's a terminal multiplexer (think tmux and screen energy), but ngl β that's just the infrastructure layer, the scaffolding, the ~vibes layer~. π¦
Zellij also ships a layout system, plus a plugin system that lets you create plugins in any language that compiles to WebAssembly π. Any language. That's not a drill.
Wanna see what's already running? Run this:
zellij list-sessions
Wanna slide into a session that's already alive? Run this:
zellij attach [session-name]
β OPTIONS β
Run zellij --help to see all the available flags and subcommamds π (yes, "subcommamds" β that's literally how it's spelled in the source, we stan a typo queen π).
π CONFIGURATION π
Zellij looks for the config file in this exact order, no skipping:
- the file provided with
--config - under the path provided in the
ZELLIJ_CONFIG_FILEenvironment variable - the default location (peep the FILES section below, iykyk)
- the system location
And to check whether your config is lowkey a mess, run:
zellij setup --check
That'll show you possible issues with the configuration β¨
π LAYOUTS π
Layouts are yaml files that Zellij can load on startup when the --layout flag is provided π. By default Zellij will load a layout called default.yaml, but you can change that with the default_layout: [LAYOUT_NAME] configuration option. easy peasy.
So like, a file that looks exactly like this:
---
direction: Vertical
parts:
- direction: Horizontal
split_size:
Percent: 50
parts:
- direction: Vertical
split_size:
Percent: 50
- direction: Vertical
split_size:
Percent: 50
- direction: Horizontal
split_size:
Percent: 50
will tell Zellij to create this layout:
+-----+-----+| | |+-----+ || | |+-----+-----+
(the ascii art is doing its best, okay, we love her π)
π§ CREATING LAYOUTS π§
A layout file is a nested tree structure, periodt. Each node describes either a pane (a leaf πΈ), or a space in which its parts (children) will be created.
Each node has these fields:
direction: <Horizontal / Vertical>β node's children will be created by a split in the given direction.split_size:β this indicates either a percentage of the node's parent's space or a fixed size of columns/rows from its parent's space.Percent: <1-100>Fixed: <lines_number/columns_number>
plugin: /path/to/plugin.wasmβ optional path to a compiled Zellij plugin. If indicated, loads a plugin into the created space. For more info see the PLUGINS section, bestie.
π KEYBINDINGS π
Zellij comes with a default set of keybindings that aims to fit as many users as possible, but that behaviour can be overridden or modified in user configuration files π₯. All the info about bindings lives in the keybinds section of the configuration.
So for example, if you wanna introduce a keybinding that creates a new tab and goes to tab 1 after pressing 'c', you write:
keybinds:
normal:
- action: [ NewTab, GoToTab: 1,]
key: [ Char: 'c',]
where:
"normal"stands for a mode name (see MODES π)"action"specifies the actions to be executed by Zellij (see ACTIONS π)"key"lists the keys or key combinations bound to the given actions (see KEYS π)
The default keybinds can be unbound either for a specific mode, or for every mode πΈ. It supports either a list of keybinds, or a bool indicating that every keybind should be unbound:
keybinds:
unbind: true
That will unbind every default binding. all of them. gone. π
keybinds:
unbind: [ Ctrl: 'p']
That will unbind every default ^P binding for each mode.
keybinds:
normal:
- unbind: true
That will unbind every default keybind for the normal mode.
keybinds:
normal:
- unbind: [ Alt: 'n', Ctrl: 'g']
That will unbind every default keybind for n and ^g for the normal mode. slay π
π ACTIONS π
Quitβ quits ZellijSwitchToMode: <InputMode>β switches to the specified input mode. See the MODES section for possible values.Resize: <Direction>β resizes the focused pane in the specified direction (one of:Left,Right,Up,Down).FocusNextPaneβ switches focus to the next pane to the right or below if on screen edge.FocusPreviousPaneβ switches focus to the next pane to the left or above if on screen edge.SwitchFocusβ left for legacy support. Switches focus to a pane with the next ID.MoveFocus: <Direction>β moves focus in the specified direction (Left,Right,Up,Down).Clearβ clears current screen.DumpScreen: <File>β dumps the screen in the specified file.DumpLayout: <File>β dumps the screen in the specified or default file.EditScrollbackβ replaces the current pane with the scrollback buffer.ScrollUpβ scrolls up 1 line in the focused pane.ScrollDownβ scrolls down 1 line in the focused pane.PageScrollUpβ scrolls up 1 page in the focused pane.PageScrollDownβ scrolls down 1 page in the focused pane.ToggleFocusFullscreenβ toggles between fullscreen focus pane and normal layout.NewPane: <Direction>β opens a new pane in the specified direction (Left,Right,Up,Down) relative to focus.CloseFocusβ closes focused pane.NewTabβ creates a new tab.GoToNextTabβ goes to the next tab.GoToPreviousTabβ goes to previous tab.CloseTabβ closes current tab.GoToTab: <Index>β goes to the tab with the specified index number.Detachβ detach session and exit.ToggleActiveSyncTabβ toggle between sending text commands to all panes on the current tab and normal mode.UndoRenameTabβ undoes the changed tab name and reverts to the previous name.UndoRenamePaneβ undoes the changed pane name and reverts to the previous name.
π¦ KEYS π¦
Char: <character>β a single character with no modifier.Alt: <character>β a single character withAltkey as modifier.Ctrl: <character>β a single character withCtrlkey as modifier.F: <1-12>β one ofFkeys (usually at the top of the keyboard).BackspaceLeft/Right/Up/Downβ arrow keys on the keyboard.HomeEndPageUp/PageDownBackTabβ a backward Tab key.DeleteInsertEsc
π MODES π
normalβ the default startup mode of Zellij. Provides the ability to switch to different modes, as well as some quick navigation shortcuts.lockedβ disables all keybindings except the one that would switch the mode to normal (Ctrl+g by default). Super useful when Zellij's keybindings conflict with those of a chosen terminal app π.tmuxβ provides convenience keybindings emulating simple tmux behaviour.paneβ includes instructions that manipulate the panes (adding new panes, moving, closing).tabβ includes instructions that manipulate the tabs (adding new tabs, moving, closing).resizeβ allows resizing of the focused pane.scrollβ allows scrolling within the focused pane.renametabβ is a "hidden" mode that can be passed to theSwitchToModeaction. It will trigger renaming of a tab.renamepaneβ is a "hidden" mode that can be passed to theSwitchToModeaction. It will trigger renaming of a pane.sessionβ allows detaching from a session.
π§ Theme π§
A color theme can be defined either in truecolor, 256 or hex color format π.
Truecolor:
fg: [0, 0, 0]
256:
fg: 0
Hex color:
fg: "#000000"
bg: "#000"
The color theme can be specified in the following way:
themes:
default:
fg: [0,0,0]
bg: [0,0,0]
black: [0,0,0]
red: [0,0,0]
green: [0,0,0]
yellow: [0,0,0]
blue: [0,0,0]
magenta: [0,0,0]
cyan: [0,0,0]
white: [0,0,0]
orange: [0,0,0]
If the theme is called default, then zellij will pick it on startup π. To specify a different theme, run zellij with:
zellij options --theme [NAME]
or put the name in the configuration file with theme: [NAME]. either way, works π
π PLUGINS π
Zellij has a plugin system based on WebAssembly β. Any language that can run on WASI can be used to develop a plugin. To load a plugin, include it in a layout file. Zellij comes with default plugins included: status-bar, strider, tab-bar. built in, ready to go, no cap π₯
πΈ FILES πΈ
Default user configuration directory location:
- Linux:
$XDG_HOME/zellij/home/alice/.config/zellij - macOS:
/Users/Alice/Library/Application Support/com.Zellij-Contributors.zellij
Default user layout directory location:
- Subdirectory called
layoutsinside of the configuration directory. - Linux:
_$XDG_HOME/zellij/layouts/home/alice/.config/zellij/layouts - macOS:
/Users/Alice/Library/Application/layouts Support/com.Zellij-Contributors.zellij/layouts
Default plugin directory location:
- Linux:
_$XDG_DATA_HOME/zellij/plugins/home/alice/.local/share/plugins
π ENVIRONMENT π
ZELLIJ_CONFIG_FILEβ Path of Zellij config to load.ZELLIJ_CONFIG_DIRβ Path of the Zellij config directory.
β NOTES β
The manpage is meant to provide a concise offline reference π«Ά. For more detailed instructions please visit:
https://zellij.dev/documentation
ok that's the whole page bestie, you're officially literate in zellij π
and like, a little sign-off: this whole thing lives in MANPAGE(1), the source/version line is literally just that β MANPAGE(1) β and there's no date on it, so we're matching energies with the void πβ¨ consider yourself informed, mwah π
π¦ where this page comes from
- alpine 3.24: zellij-doc 0.42.2-r0 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms