Zellij

Developer ToolsMIT

A terminal workspace with batteries included.

Latest v0.45.1 · by ZellijWritten in RustWebsitezellij-org/zellijRSS

Release activity

Release activity — 6 releases across 6 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026
MondayNo releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026
TuesdayNo releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026
WednesdayNo releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026
ThursdayNo releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 20261 release on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026
FridayNo releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 20261 release on Aug 28, 2026No releases on Sep 4, 2026
SaturdayNo releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026

6 releases in the last year

Changelog

v0.45.1Latest

Release v0.45.1

Added 3
  • Add scroll_mode_sync configuration option to opt-out of mouse scrolling entering scroll mode
  • Add explicit_theme_hue configuration option to set a light or dark theme when the system theme is unknown
  • Support starting a new session in the foreground or background with a specific running command using zellij attach -c or zellij attach -b
Fixed 3
  • Nested session detection now works over SSH without having to forward environment variables
  • Fixed notification parsing issues with OSC9 that caused excess notifications in some cases
  • Fixed kitty image protocol issues with clearing on stacked panes and not working until first resize

From Zellij

This is a small patch release (mostly) set to address some issues discovered in the latest 0.45.0.

Notable changes
  1. The nested session detection now works over SSH without having to forward environment variables
  2. It's now possible to opt-out of the newly introduced behavior, where scrolling with the mouse inside a pane enters scroll mode. To do so, add scroll_mode_sync false to the configuration.
  3. It's now possible to set an explicit theme hue in the config (i.e. dark or light) that will be used if the system doesn't know which theme we're in. To do so, add explicit_theme_hue light # or dark to the config.
  4. New feature: it's now possible to start a new session in the foreground or background with a specific running command instead of the default terminal. zellij attach -c foo -- htop for foreground zellij attach -b foo --htop for background.
  5. Some issues fixed with notification parsing specifically regarding OSC9 which overloaded the existing OSC99 notification spec (this manifested for some users as excess notifications when saving a file in nvim for example)
  6. Fixed some issues with the kitty image protocol clearing on stacked panes and not working until first resize

Full Changelog: https://github.com/zellij-org/zellij/compare/v0.45.0...v0.45.1

Please Support the Zellij Developer ❤️

Zellij is a labor of love and is provided free and open-source to anyone who wishes to use it.

Zellij will never display ads or collect your data.

To help sustain the project, please consider a recurring donation so that the developer can pay their bills: https://github.com/sponsors/imsnif

View originalPermalink
How v0.45.1 went
v0.45.0

Release v0.45.0

Added 17
  • Nested sessions are now a first-class workflow with options to zoom in or control on focus via the new nested_session_handling config option
  • Kitty graphics protocol support for image rendering in addition to existing Sixel support
  • Shell integration parsing for OSC 133 semantic prompt sequences enabling prompt navigation, command selection, and output copying in scrollback
  • New UI with title frames defaulting to single title line above panes instead of full border
  • Stacked panes now render as list of one-line titles with expanded pane pinned to bottom
  • Mobile web UI with touch interface for pane/tab pickers, on-screen keyboard, panning, and single-pane fullscreen
Changed 3
  • Word boundaries for double-click selection are now configurable with word_separators
  • Sixel support is now only advertised to applications when the attached terminal actually supports it
  • Release notes screen now detects missing default keybindings and offers to add them with single keypress

From Zellij

This release includes some major long-requested integrations with modern terminals as well as with Zellij itself: nested sessions become a first-class experience, images render through the Kitty graphics protocol, the scrollback understands shell prompts, and the default interface gets a redesign.

Following is a non-exhaustive list of some major and significant changes:

Nested Sessions

Running Zellij inside a Zellij pane (eg. after ssh-ing to a remote machine) is now a first-class workflow. The inner session announces itself to the outer one, and the outer session reacts when its pane gains focus, providing the user with 2 options:

  1. Zoom in and control the nested session - the nested session takes up the whole screen until toggled back (Ctrl o + f, or clicking the session breadcrumbs in the tab-bar)
  2. Control the nested session on focus - keys and mouse are routed directly to it, with the outer session's chrome dimmed. Ascend back with Ctrl o + ], descend again with Ctrl o + [

The behavior is controlled with the new nested_session_handling config option (ask (default) / fullscreen / descend / never).

Kitty Graphics Protocol

Zellij now implements the Kitty graphics protocol in addition to the existing Sixel support. Image placements are tracked per pane and behave correctly across resizes, relayouts, scrollback, fullscreen and floating/pinned panes. The host terminal needs to support the protocol as well (queried at startup); the feature can be disabled with support_kitty_graphics_protocol false.

Relatedly, Sixel support is now only advertised to applications (through DA1 / XTSMGRAPHICS) when the attached terminal actually supports it.

Shell Integration (OSC 133)

Zellij now parses the OSC 133 "semantic prompt" sequences (emitted by fish out of the box; bash/zsh need a shell integration snippet). This enables:

  • Jump between prompts in the scrollback: [ / ] in scroll and search modes
  • Select a command with its whole output: m in scroll mode, or triple-click inside the output (opt-out of triple-click with osc133_command_selection in the config)
  • Copy the last command's output to the clipboard: c in scroll mode

Also in the selection department: word boundaries for double-click selection are now configurable with word_separators.

More info: https://zellij.dev/documentation/shell-integration.html

New UI

Title frames: pane frames now default to a single title line above each pane instead of a full border. To restore the classic look:

pane_frame_style "full"

The style can also be changed at runtime with zellij action set-pane-frame-style or the new SetPaneFrameStyle keybinding action.

Stacked lists: stacked panes now render as a list of one-line titles with the expanded pane pinned to the bottom, including exit-status indication in collapsed titles and bulk float/embed operations. To restore the previous in-place rendering:

stacked_pane_list false

Some mouse behaviors can also now be specifically opted out of in the config: mouse_hover_tips false (hover help tips) and mouse_scroll_resize false (Ctrl + scroll wheel resizing).

Mobile Web UI + PWA

The built-in web client now detects mobile browsers and switches to a dedicated touch interface: pane/tab pickers, an on-screen keyboard, panning and fit toggling, single-pane fullscreen and a light theme. The web client can also be installed as a standalone app (PWA) directly from the browser, including behind a base_url reverse-proxy prefix.

Per-Client Tab Sizes

Each tab is now sized according to the viewports of only the clients currently viewing it. Clients focused on different tabs no longer force the whole session down to the smallest terminal; clients on the same tab converge to a common size.

Desktop Notifications

Given the prevalence of a few different desktop notifications protocols, Zellij now supports all and consolidates them to a protocol the host (probably) supports, detected by relevant env variables. Previously Zellij would forward OSC99 directly to the terminal, now this is conditioned on the terminal actually supporting OSC99. Zellij now also supports OSC9 and OSC777 in the same way.

Focus Last Pane and No-UI Fullscreen

A new FocusLastPane action returns focus to the previously focused pane (Ctrl p + ;, or Alt \ in any mode). A new ToggleFocusNoUiFullscreen action (Ctrl p + Shift f) makes the focused pane cover the entire display, including the UI bars (zen mode). Floating panes can now be made fullscreen as well.

CLI Additions
  • zellij --layout-string <KDL> - use a raw KDL layout string instead of a layout file (new tabs inside a session, a new session otherwise). Also available on new-tab, override-layout and switch-session
  • --no-focus - open panes, plugins and tabs in the background without changing any client's focus (on run, edit, plugin, new-pane, new-tab, launch-plugin)
  • --tab-id - target a specific tab (on run, edit, plugin and many actions)
  • zellij action new-pane --pane-id - choose which pane to replace with --in-place
  • New actions: focus-last-pane, toggle-no-ui-fullscreen, set-pane-frame-style, set-dark-theme, set-light-theme, toggle-theme

Some of the new features come with new default keybindings. The release notes screen detects which of these are missing from existing config files and offers to add them with a single keypress.

Plugin API

New commands include new_tab_unfocused, new_tiled_pane_in_tab, focus_last_pane, focus_host_session, toggle_focus_no_ui_fullscreen, set_pane_frame_style, toggle_floating_panes, get_session_list and set_soft_keyboard. New events include CommandChanged, InitialKeybinds, HostTerminalThemeChanged, SoftKeyboardVisibilityChanged, HintText and ActivePaneScroll.

Source-level breaking changes for plugin authors:

  • kill_sessions, delete_dead_session and delete_all_dead_sessions now return Result<(), String> and block until acknowledged (the old wire protocol variants remain valid, so old plugin binaries keep working)
  • open_command_pane_in_new_tab now requires the RunCommands permission, and open_editor_pane_in_new_tab requires OpenFiles
  • The PaneRenderReportWithAnsi event was removed; the plain-text PaneRenderReport remains
Clipboard Reads

It's now possible to opt in to allowing terminal programs to read the clipboard through OSC52. This is disabled by default for security reasons, and opting in to it is only recommended with care. An opt-in would mean that any program running in the terminal (including over an SSH connection) can read your clipboard without your knowledge. This can be enabled with dangerously_enable_paste_buffer_read true.

Notes for Packagers and Distributors
  • MSRV raised from 1.92.0 to 1.95.0
  • YAML converter removed: the convert-config, convert-layout and convert-theme subcommands and the automatic YAML-to-KDL conversion at startup are gone. Users with YAML-era files must convert them with a Zellij release of 0.44.x or older
  • Manpage removed: the manpage source and its build integration were dropped; packages should no longer attempt to install one
  • Dependency floors raised: clap 4.6, crossterm 0.29, nix 0.30, vte 0.15, miette 7.6, notify 8.2, axum-extra 0.12, axum-server 0.8, rcgen 0.14 and others - relevant for distros patching to system crate versions
  • clap 4 migration side effects: repeating a flag overrides the previous value instead of erroring
  • Bundled plugin wasm files can now be properly unbundled when stripped (#5433)
  • cargo xtask run informational output moved to stderr, so cargo xtask run -- setup --generate-completion fish > file produces a clean file

For the full list of changes, see the CHANGELOG.

Addendum: Zellij.online

Want to get a sneak peak at something the Zellij maintainers have been working on?

Check out https://zellij.online

Please Support the Zellij Developer ❤️

Zellij is a labor of love and is provided free and open-source to anyone who wishes to use it.

Zellij will never display ads or collect your data.

To help sustain the project, please consider a recurring donation so that the developer can pay their bills: https://github.com/sponsors/imsnif

View originalPermalink
How v0.45.0 went
v0.44.3

Release v0.44.3

Fixed 3
  • Fix STDIN stalling issue introduced by host query forwarding system
  • Fix popup panes being blocked by host query forwarding system
  • Fix mouse and key movement producing control characters

From Zellij

This is a small patch release set out to fix some issues introduced by our host query forwarding system.

Issues such as STDIN stalling, popup panes being blocked and mouse+key movement producing control characters should be fixed.

Full Changelog: https://github.com/zellij-org/zellij/compare/v0.44.2...v0.44.3

Please Support the Zellij Developer ❤️

Zellij is a labor of love and is provided free and open-source to anyone who wishes to use it.

Zellij will never display ads or collect your data.

To help sustain the project, please consider a recurring donation so that the developer can pay their bills: https://github.com/sponsors/imsnif

View originalPermalink
How v0.44.3 went
v0.44.2

Release v0.44.2

Added 6
  • Support for CSI 2031 to automatically switch between dark and light themes based on terminal emulator support
  • New theme_dark configuration parameter to specify the theme used when switching to dark mode
  • New theme_light configuration parameter to specify the theme used when switching to light mode
  • New zellij action set-light-theme CLI command to manually switch to light theme
  • New zellij action set-dark-theme CLI command to manually switch to dark theme
  • New zellij action toggle-theme CLI command to manually toggle between themes
Fixed 1
  • Fixed issues found in version 0.44

From Zellij

This is a small patch release to fix some issues found recently in 0.44, as well as some minor long standing annoyances.

The only major feature introduced in this patch is support for CSI 2031: automatically switching between dark/light theme (assuming the terminal emulator itself supports it), as well as forwarding these instructions to the apps running inside Zellij. With this change, comes the new theme_dark and theme_light configuration parameters, that will be used by Zellij when it is instructed to switch, eg.

theme "dracula" // normal theme as it was up until now
theme_dark "dracula" // Zellij will use this when instructed to change to a dark theme
theme_light "catppuccin-latte" // Zellij will use this when instructed to change to a light theme

For convenience (eg. when using a terminal emulator that does not support theme switching), Zellij also now includes the zellij action set-light-theme, zellij action set-dark-theme and zellij action toggle-theme CLI commands to allow doing this manually. (note: when issuing these commands, Zellij will also send a CSI2031 to running terminal applications inside it that requested it, even if the host terminal itself does not support them).

For a full list of changes, please see the changelog.

Please Support the Zellij Developer ❤️

Zellij is a labor of love and is provided free and open-source to anyone who wishes to use it.

Zellij will never display ads or collect your data.

To help sustain the project, please consider a recurring donation so that the developer can pay their bills: https://github.com/sponsors/imsnif

View originalPermalink
How v0.44.2 went
v0.44.1

Release v0.44.1

Added 5
  • Added focus-pane-with-id CLI action
  • Added are-floating-panes-visible CLI action
  • Added support for OSC-99 desktop notifications
  • Added zellij --layout-string to allow providing in-line layouts
  • Added --tab-id to all CLI actions opening new panes to open them in a specific tab
Fixed 6
  • Fixed the performance regression when switching tabs
  • Properly report OSC52 support in DA1 to help applications discover Zellij's clipboard support
  • Fixed scrollback visibility issue inside Zellij for Codex users by adjusting behavior to match Codex's expectations
  • Fixed various issues for the Windows port
  • Fixed web-client to use base-url when switching sessions
  • Fixed CJK IME cursor positioning support for East Asian languages

From Zellij

This is mostly a patch release to fix issues discovered in 0.44.0

Some fixed highlights:
  • Fixed the performance regression when switching tabs
  • Properly report OSC52 support in DA1 which will help applications such as neovim discover Zellij's clipboard support
  • Codex scrolling bug: We have accepted a mitigation for an issue where users of Codex would not see scrollback inside Zellij. This was happening due to some off-spec behavior on the part of Codex (nothing wrong, just them relying on a gray area in the specification). This version adjusts the Zellij behavior to match Codex's expectations.
  • Various fixes for the recent Windows port
  • The web-client now uses the base-url when switching sessions as well
  • Fixed some CJK IME cursor positioning support for East Asian languages
New stuff
  • Added a focus-pane-with-id and are-floating-panes-visible CLI actions
  • Zellij now supports and forwards OSC-99 desktop notifications
  • Added zellij --layout-string to allow providing in-line layouts
  • Added --tab-id to all CLI actions opening new panes, to be able to open them in a specific tab

For the full list of changes, see the CHANGELOG.

Please Support the Zellij Developer ❤️

Zellij is a labor of love and is provided free and open-source to anyone who wishes to use it.

Zellij will never display ads or collect your data.

To help sustain the project, please consider a recurring donation so that the developer can pay their bills: https://github.com/sponsors/imsnif

View originalPermalink
How v0.44.1 went
v0.44.0

Release v0.44.0

Added 16
  • Native Windows support allowing Zellij to run natively on Windows
  • Layout manager built-in plugin to open layouts in new tabs, apply layouts to current tab, and create new layouts by recording tab state
  • Override-layout capability as both a plugin command and CLI command to change tab or session layout
  • Terminal-to-terminal attach over HTTPS for remote session attachment using authentication tokens
  • Read-only authentication tokens for session sharing without keyboard, mouse, or resize capabilities
  • Blocking command pane flags for zellij run command including --blocking, --block-until-exit-success, and --block-until-exit-failure
Changed 3
  • zellij action dump-screen now supports --pane-id flag to query specific pane viewport and scrollback
  • CLI commands that create panes now return the pane_id and commands that create tabs return the created tab index
  • Session manager UI revamped to single screen with options to create, attach, or resurrect sessions

From Zellij

This is a large release including many new features, some of which long requested, as well as countless fixes, infrastructure overhauls and much more. I would like to thank everyone for their patience with this long awaited version being released. I hope you will agree it was worth the wait.

Following is a non-exhaustive list of some major and significant changes:

Native Windows Support

Zellij now runs natively on Windows(!!). Achieved through a major community code contribution, at long last Zellij is truly multi-platform. Allowing windows users to enjoy the same session management, workspace automation, plugin ecosystem and multiplayer capabilities that have been available on Linux and macOS since the inception of the tool. We are truly excited.

Special thanks to @divens for the implementation and hard work.

Layout Manager

This release introduces a new layout-manager interface, implemented as a built-in plugin allowing users to:

  1. Open their favorite layouts in a new tab or tabs
  2. Apply their layouts to the current tab (optionally keeping panes that do not match the layout or closing them outright)
  3. Create new layouts on the fly by recording the current tab state

It should be noted that with the layout manager comes the new override-layout capability, appearing both a as a plugin command (used by the plugin) and as a CLI command. This capability allows us to change the layout of the current tab or all the tabs in the session to match a specific layout. An example use case for this is to toggle between the standard status-bar and the compact bar (in itself a much requested capability).

To open the layout manager: Ctrl o + l

Terminal-to-Terminal Attach over HTTPS (remote attach)

This feature allows us to attach to a remote Zellij session (with the web server running and the session shared) from the terminal, just like we would from the browser. Using the same authentication tokens and doing so over HTTPS:

zellij attach https://example.com/my-cool-session
Read-Only Session Sharing

We are now able to issue "read-only" authentication tokens, which will allow users to attach to sessions without being able to affect them in any way (keyboard/mouse input or terminal window resizing). This can be especially useful for teaching, demonstrations, screencasting or streaming.

These tokens can be issued with:

zellij web --create-read-only-token

Or through the share plugin with Ctrl o + s

CLI Automation

This release dramatically expands what can be accomplished from the command line. Some main areas:

Conditionally Blocking Command Panes

The zellij run command now includes a --blocking, --block-until-exit-success and --block-until-exit-failure flags. Using these we can conditionally block the CLI before moving to the next command, depending on the outcome of the command run in the new pane.

New CLI actions of note
  • zellij detach and zellij action switch-session
  • zellij action list-panes - lists all panes in the current or specified session, including metadata such as running commands, titles, coordinates, etc. Also optionally in --json format.
  • zellij action send-keys - allows us to send Human readable keys to a specific pane (eg. zellij action send-keys "Enter" "Ctrl c" "F1" "a" "b")
  • zellij subscribe - allows us to continuously subscribe to pane updates (viewport and scrollback) from one or more panes, optionally in --json format, optionally with --ansi (so colors and styling won't be stripped)
  • zellij action dump-screen now has a --pane-id flag so that we can query the pane viewport/scrollback actively (also from other session by prefixing the action with --session <name>)
  • CLI commands that create panes (eg. zellij run) now return the pane_id for easy storing and manipulation in following commands and scripts. CLI commands that create tabs (eg. zellij action new-tab) similarly return the created tab index.

For more info, including examples, recipes and directions for external programmatic control, please see: https://zellij.dev/documentation/controlling-zellij-through-cli.html

Resize Panes with the Mouse

Panes can now be resized with the mouse. Either by dragging their borders (floating panes require ctrl + dragging, as normal dragging moves them) or by floating over the pane, holding ctrl and scrolling the mouse up or down.

Note: this feature includes hints for the above keys that appear on hover. For those who do not like this behavior, the hints (as well as other mouse hover actions) can be disabled by specifying mouse_hover_effects false in the configuration.

Click-to-Open File Paths

By default, Zellij now highlights file paths (relative and absolute) when hovering over them with the mouse. When we Alt + Click them, these files will be opened in a new floating pane in our default EDITOR.

This new capability is implemented as a built-in plugin. For those who don't like this behavior, it can be disabled by commenting out the link plugin in the configuration: https://github.com/zellij-org/zellij/blob/main/zellij-utils/assets/config/default.kdl#L249

New Session Manager UI

The session manager UI has been revamped and is now much simpler, including only one screen that allows user to create new sessions, attach to existing ones or resurrect exited ones - all depending on which session name is specified.

For those wishing to remain with the old experience, the session manager can be run with multi_screen true.

New Rust APIs

It is Zellij development policy to create new UI interfaces as built-in plugins. This means that the new APIs created for all the above interfaces are now also available for third-party plugins (gated behind relevant permissions). These capabilities include:

  1. Read pane scrollback - Plugins can now read the scrollback buffer of other panes, optionally including the ANSI colors and styling
  2. Configuration propagation - Changes to plugin configuration are now propagated to running plugins
  3. Query environment variables - Plugins can query env vars set upon session creation
  4. Highlight viewport text - Plugins can change the style of arbitrary text in any pane's viewport, optionally on mouse hover, optionally receiving an event when the user Alt + Clicks them
  5. Change pane colors - Set foreground/background colors of panes
  6. Explicit session save - Trigger a session save for resurrection without waiting for the automatic interval

For more info: https://zellij.dev/documentation/plugin-api.html

Infrastructure Overhaul

Under the hood, this release includes significant infrastructure changes:

  1. WASM runtime migration: The plugin runtime has been migrated from wasmtime to wasmi, meaning they now do not require an explicit compilation step and so do not need to be cached. This might incur a slight performance penalty for plugins, but this penalty can be almost completely mitigated by adding the following to the plugin's Cargo.toml:
[profile.release]
lto = true
strip = true
codegen-units = 1
  1. Async runtime migration: for historical reasons, up until now we've had two async runtimes: async_std and tokio. This release migrates us to use tokio exclusively.
Forwards Compatibility

Due to the lack of a client-server contract, Zellij sessions have never been backwards compatible. Each version upgrade would orphan existing sessions, forcing users to manually kill them and recreate them. While this is unfortunately still the case with this version, this will be the last time.

A new client/server contract has been created and enforced with protocol buffers. Future versions will be able to connect to existing sessions. The only caveat being that new features won't work with old sessions and will silently fail.

Additional Improvements

Beyond the above features, this release includes a large number of bug fixes and quality-of-life improvements:

  • Borderless panes - open specific panes as borderless or toggle border status at runtime
  • Terminal BEL forwarding from unfocused tabs and panes with visual indication
  • Configurable focus_follows_mouse and mouse_click_through
  • Line-wrapping/resize performance improvements
  • Better STDIN segmentation with latency (eg. over SSH)
  • Mobile web client viewport sizing and touch scrolling improvements
  • Numerous fixes for session resurrection, floating pane behavior, cursor handling, grid rendering and more

For the full list of changes, see the CHANGELOG.

Please Support the Zellij Developer ❤️

Zellij is a labor of love and is provided free and open-source to anyone who wishes to use it.

Zellij will never display ads or collect your data.

To help sustain the project, please consider a recurring donation so that the developer can pay their bills: https://github.com/sponsors/imsnif

View originalPermalink
How v0.44.0 went
v0.43.1

Release v0.43.1

Fixed 7
  • Pane rename backspace regression
  • Zellij Web login issue with safari
  • Terminal title regression
  • Resurrection listing regression
  • Tooltip keybinding backgrounds
  • Default to session name for window/tab title in Zellij Web
  • Handle omitted flags in the push sequence of the KKP

From Zellij

This is a patch release to fix minor bugs and usability issues discovered in the recently released 0.43.0.

What's Changed

Full Changelog: https://github.com/zellij-org/zellij/compare/v0.43.0...v0.43.1

Please Sponsor the Zellij Developer! ❤️

Zellij is developed and maintained as a labor of love, but love does not pay the bills.

Zellij will always be free and open-source. Zellij will never contain ads or collect your data.

If you are able, consider sponsoring the Zellij creator and lead developer with a recurring monthly donation. There are Zellij stickers in it for you!

View originalPermalink
How v0.43.1 went
v0.43.0

Release v0.43.0

Added 7
  • Web-client feature allowing users to start a built-in web server to share terminal sessions in the browser, start new sessions, or resurrect exited ones
  • Multiple pane select functionality enabling bulk operations on panes such as stacking, breaking to new tab, or floating multiple panes simultaneously
  • Mouse hover effects for UI feedback during pane selection, controllable via advanced_mouse_actions configuration option
  • Optional key tooltips for the compact-bar that appear when toggled or when entering non-base modes
  • Stack keybinding to directly open a new stacked pane on top of the current one using Ctrl p + s or Ctrl g + p + s
  • post_command_discovery_hook to allow users to edit detected running commands before session resurrection serialization
  • zellij-no-web release binary that excludes web-client feature and its dependencies
Changed 1
  • All renders now placed behind asynchronous rendering engine to reduce render events sent to client and improve perceived performance smoothness
Fixed 1
  • Multiline hyperlinks in terminal that are broken by line wraps now behave properly by utilizing OSC 8 with full link data sent with each URL wrap

From Zellij

join the discussion: https://github.com/zellij-org/zellij/discussions/4340

Web Client

This release includes the long promised web-client, allowing Zellij users to start up a built-in web server in order to share their existing terminal sessions in the browser, start new ones or resurrect exited ones.

The web-client includes built-in security measures such as enforced authentication and HTTPS. More info in the documentation or the screencast.

This feature is opt-in. The server will not be started except by an explicit user action or configuration. Even so, the Zellij maintainers are aware some users might prefer a version of Zellij that does not include this capability, and so we will now start providing a zellij-no-web release binary. This new binary does not contain this feature or any of its dependencies.

Multiple Pane Select + hover effects

This release offers the ability to perform bulk operations on panes. For example: stack multiple panes, break multiple panes to a new tab, float multiple panes, etc. Panes are selected either with the mouse (Alt + <left-mouse-click> on any pane) or with Alt p.

As part of its UI feedback, this feature also includes mouse hover effects. Users who do not like these can disable the feature by adding advanced_mouse_actions false to the config. It's unfortunately not yet possible to only disable the hover effects.

Optional Key Tooltips for the compact-bar

A long requested feature has been the ability to temporarily see the keybinding hints when using the compact-bar, rather than having them being displayed all the time as they are with the status-bar. This version adds an optional tooltip to the compact bar that will appear when toggled or when entering a non-base mode (eg. Pane, Tab, etc.)

More info: https://zellij.dev/documentation/faq.html#the-ui-takes-up-too-much-space-what-can-i-do-about-it

Performance Improvements

This version places all renders behind an asynchronous rendering engine, reducing the number of render events sent to the client. While the raw performance numbers themselves will not be directly affected, the perceived performance is much smoother.

Stack Keybinding

While stacked panes have been available in Zellij for a while, this version adds the ability to directly open a new stacked pane on top of the current one. This can be done with Ctrl p + s (or Ctrl g + p + s). For those with a pre-existing config, you can add this line to the keybinds block in the config in the pane section:

// default
bind "s" { NewPane "stacked"; SwitchToMode "normal"; }

// for the unlock-first preset
bind "s" { NewPane "stacked"; SwitchToMode "locked"; }
Fix multiline hyperlinks

A long standing issue with Zellij has been that hyperlinks in the terminal that are broken down by line wraps do not behave properly: clicking on these links would only lead to the first wrap of the URL rather than the full URL itself. This version fixes this issue by utilizing OSC 8 more intelligently (essentially: sending the full link data with each URL wrap and giving them all the same ID so that the terminal emulator knows to underline all of them on hover).

post_command_discovery_hook

The Zellij session-resurrection is a much loved and essential feature in Zellij: allowing users to pick up where they left off with their previous session even after a machine reboot. The way Zellij detects running commands in panes though is not perfect, often not working well with command wrappers such as nix, actively running shell pipeline, etc. This version offers a way to mitigate this in the form of a post_command_discovery_hook, allowing users to apply edits to these commands before they are serialized.

More info: https://zellij.dev/documentation/session-resurrection.html#post_command_discovery_hook

Please Sponsor the Zellij Developer! ❤️

Zellij is developed and maintained as a labor of love, but love does not pay the bills.

Zellij will always be free and open-source. Zellij will never contain ads or collect your data.

If you are able, consider sponsoring the Zellij creator and lead developer with a recurring monthly donation. There are Zellij stickers in it for you!

View originalPermalink
How v0.43.0 went
v0.42.2

Release v0.42.2

Changed 5
  • Improve rendering performance by consolidating renders and introducing repaint_delay
  • Log scroll region as tuple rather than Option<tuple>
  • Introduce workspace dependencies
  • Don't use default features in build
  • Don't re-export foreign crates in utils
Fixed 1
  • Fix --locked build on Rust 1.86

From Zellij

This patch release is mainly intended to address a breaking change in the Rust compiler that caused compilation to fail with --locked starting from Rust version 1.86. (Thanks @tranzystorekk for bringing this to our attention and for the quick fix!)

This patch also includes some terminal rendering performance improvements - namely consolidating some renders and thus reducing the occasional text flicker.

What's Changed
Do you like Zellij? ❤️

Me too! So much so that I spend 100% of my time developing and maintaining it and have no other income.

Zellij will always be free and open-source. Zellij will never contain ads or collect your data.

So if the tool gives you value and you are able, please consider a recurring monthly donation of 5-10$ to help me pay my bills. There are Zellij stickers in it for you!

View originalPermalink
How v0.42.2 went
v0.42.1

Release v0.42.1

Fixed 1
  • Mitigate mishandling of mouse any-event motions in Windows Terminal and associated terminals on Windows that caused flickering and other odd behavior

From Zellij

This is a patch release to fix an issue with Windows Terminal (and associated terminals on windows presumably going through the win conpty) mishandling of mouse any-event motions that caused flickering and other odd behavior in Zellij. While this is not a bug on our side, we mitigated it with the help of our STDIN parsing library termwiz. More details here.

Special thanks to @zeevro who did the troubleshooting and issued a fix to termwiz!

View originalPermalink
How v0.42.1 went
v0.42.0

Release v0.42.0

Added 7
  • Stacked Resize feature that stacks panes with their neighbors when resizing to give more screen space while keeping pane titles visible
  • Ability to pin floating panes so they stay on top even when not focused, accessible via mouse click or Ctrl p + i keyboard shortcut
  • New theme definition specification that provides greater flexibility for defining Zellij UI appearance and extends to user plugins
  • Plugin API capabilities to change the /host folder at runtime, change floating pane coordinates, stack arbitrary panes, and read mouse motions
  • Double and triple mouse click text selection in terminal panes to mark word boundaries and lines
  • Release notes display on first run and random usage tips on subsequent startup, with ability to disable both through configuration
  • New about plugin accessible with Ctrl o + a to browse release notes and startup tips

From Zellij

This version brings multiplexing to the next level with new user-facing features. It also includes a brand new theme definition spec and some more goodies. Read all about it in the official release post.

Stacked Resize

This version of Zellij introduces an innovative new way of managing multiple panes. When resizing panes, Zellij will attempt to stack them with their neighbors - giving us more space on screen while still keeping the title of the other panes around so that we can easily navigate to them with the keyboard or mouse. This behavior can be disabled through configuration

Pinned Floating Panes

One of the most loved features of Zellij is its native integration of floating panes. This version adds the ability to “pin” any such pane so that it is always on top, even when not focused. Floating panes can be pinned with a mouse click or with a keyboard shortcut: Ctrl p + i.

New Theme Definition Spec

This version introduces a new theme definition specification, allowing much greater flexibility when defining the Zellij UI appearance - extending to user plugins as well. This specification concentrates on the generic UI components used to make-up the Zellij UI rather than mapping colors. We look forward to seeing new themes created by the community with these capabilities.

For more information, see the new theme documentation

New (Rust) Plugin APIs

This version adds lots of new capabilities to plugins and exposes them in the built-in Rust SDK. Some highlights: * Change the /host folder at runtime * Change floating pane coordinates * Stack arbitrary panes * Read mouse motions

Double/Triple Mouse Click Text Selection in Terminals

Since Zellij implements its own mouse selection and copying, many users have noted the lack of ability to double or triple click text in order to mark the word boundaries or canonical line respectively. This version implements this capability for terminal panes. Upcoming in the next version is the ability for plugins to opt-in to text marking with the keyboard/mouse on all or parts of their scrollback.

Release Notes and Tips on Startup

Starting this version, on first run Zellij will display the release notes for the current version. On subsequent runs, Zellij will display a random useful usage tip on startup. It’s possible to disable both of these behaviors through the config (and in the case of tips, also at runtime through the tips window as specified). More info here and here.

Both of these can be browsed through the new about plugin with Ctrl o + a.

Do you like Zellij? ❤️

Me too! So much so that I spend 100% of my time developing and maintaining it and have no other income.

Zellij will always be free and open-source. Zellij will never contain ads or collect your data.

So if the tool gives you value and you are able, please consider a recurring monthly donation of 5-10$ to help me pay my bills. There are Zellij stickers in it for you!

View originalPermalink
How v0.42.0 went
v0.41.2

Release v0.41.2

Added 2
  • Add option to use the system curl instead of the vendored version when compiling
  • Add a /cache folder to plugins to persist data between runs
Changed 2
  • Change plugin manager "open from filesystem" shortcut for consistency with the session-manager
  • Vendor the common_path dependency
Fixed 12
  • Keypresses not being identified properly with kitty keyboard protocol in some terminals
  • Reapply ctrl-j fix for the new architecture
  • Various cwd and usability fixes for the plugin manager
  • Handle race that sometimes caused text spillover in output buffer
  • Some event ordering issues exposed by the recent runtime change in tabs
  • Do not duplicate built-in plugins, eg. session-manager

From Zellij

0.41.2

This is a patch release which fixes some regressions from 0.41 and general bugs that happened to be fixed along the way. Some dependencies were also vendored (or had a vendored toggle added) to facilitate packaging.

A notable addition is that plugins now have access to a /cache folder which maps to an entry unique to their loaded URL in the Zellij cache folder.

What's Changed
Do you like Zellij ❤️ ?

Me too! So much so that I spend 100% of my time developing and maintaining it and have no other income.

Zellij will always be free and open-source. Zellij will never contain ads or collect your data.

So if the tool gives you value and you are able, please consider a recurring monthly donation of 5-10$ to help me pay my bills. There are Zellij stickers in it for you! https://github.com/sponsors/imsnif

View originalPermalink
How v0.41.2 went
View all

Discussion

If you publish Zellij, you can claim this product by proving you administer its repository.