Loading Plugins

Plugins can either be loaded through a Layout, through the command line, or from a keybinding.

On startup

Plugins can also be loaded on startup through the load_plugins configuration block. Eg.

load_plugins {
    https://example.com/my-plugin.wasm
    file:/path/to/my/plugin.kdl
    my-plugin-alias
}

These plugins will be loaded in the background on session startup, only appearing once to request permissions from the user if they need any.

Through the built-in plugin-manager

Plugins can also be loaded (in the background or foreground) through the plugin manager. This built-in plugin, accessible by default with Ctrl o + p, allows both loading plugins and monitoring existing plugins:

plugin-manager

Plugin URL schema

Plugins are referred to by URLs. Currently there are four supported schemas:

  1. The file schema: file:/absolute/path/to/my/plugin.wasm - for reading plugins from the local HD
  2. The built-in zellij: schema (eg. zellij:bars) for loading built-in zellij plugins.
  3. Urls (http(s)://path/to/my/plugin.wasm)
  4. Bare aliases (filepicker), see Plugin Aliases

Built-in plugins

These plugins are bundled with Zellij and can be loaded with the zellij: schema:

NameDescription
zellij:barsThe tab bar, status bar and compact bar. Which bar it draws is chosen with its role configuration (tab-bar, status-bar or compact-bar)
zellij:striderThe file picker (see the filepicker alias)
zellij:session-managerThe session manager and welcome screen
zellij:configurationThe settings screen
zellij:plugin-managerThe plugin manager
zellij:aboutThe about screen
zellij:shareWeb sharing of the session (see the web client)
zellij:multiple-selectSelecting several panes at once
zellij:layout-managerThe layout manager
zellij:promptThe popups used by zellij prompt and the prompt plugin command (see the prompt alias)
zellij:context-menuThe right-click context menu (see the context-menu alias)

Note: the tab bar, status bar and compact bar are one shared plugin, zellij:bars. The names zellij:tab-bar, zellij:status-bar and zellij:compact-bar also work: they load zellij:bars with the matching role. The built-in tab-bar, status-bar and compact-bar aliases point to zellij:bars as well.

Plugins loaded through load_plugins that need events from before any user is attached receive them once they have loaded.