Switched to Zellij a few years back mostly for the sane defaults, I expected to come crawling back to tmux, but it's actually stuck quite nicely and has become a staple in my workflow. It hasn't been a perfect experience, but I like it a lot and I'm happy to see a new feature-rich release like this.
I'm curious for folks who use multiplexers: I've tried tmux and Zellij and if I used a multiplexer, it would be Zellij. However, I can't stand losing terminal real estate, but I don't know why that is. How do you deal with the loss of real estate from a multiplexer?
I use Ghostty, so new tabs and splits don't feel that strange to me. I'm guessing the feature I'm missing out on is session resumption and presets? If I leaned into that more, then a multiplexer would be worth the potential drawbacks?
Zellij has a ton of chrome by default to make it discoverable for new users, but you can configure it so it only takes up one line at the bottom of your screen, like tmux. I like to also hit F11 to go fullscreen, which gets me a few more lines.
It also supports "layouts" which are similar to `tmuxinator` scripts. You can set up a bunch of tabs and split panes and run commands in each to start up your text editor, agent, git client, etc. The ability to instantly spin up my entire dev environment with everything just where I like it, configurable on a per-project basis, is what keeps me in the console instead of using desktop apps.
Being cheeky here, but how many terminal emulators and multiplexers do we need?
What is driving the Cambrian explosion of CLI tools in the last ~5 years?
I’ve been using Linux since 2001 and use standard Konsole on zsh. I have a graphical desktop environment to deal with windows and showing pictures alongside them. Is it perhaps because I am an Emacs person that all I need exist within its loving embrace?
TUI got back into fashion and it seems like everyone is trying hard to reinvent GUI in a really roundabout way, like hacking Braille to display graphs. I think the circle will be complete with the support for proportional fonts for readability, like in Emacs. Character sizing is already (kind of) a thing, which ridiculously enables Markdown rendering in a terminal.
Man, I really want a proper GUI framework with this kind of energy behind it.
Aesthetics, running TUI tools headless over SSH, zero possibility of Electron (although I’ve seen TUI tools written in node which is almost as bad), no worries about X/Wayland jankiness.
Frameworks like bubbletea make it very easy these days.
I think there’s a limit though, a good TUI shouldn’t be “modern”, it should be like the old TUIs that ran auto shops and accounting systems. TUIs that are information dense, keyboard-driven, and snappy are hard to beat.
I don't know, I have too many tools that would really benefit from using GUI (e.g. coding agents, process monitors) but are using TUI and are written in TS instead. Everything about TUI screams jank to me, even the old kind. Both internals and presentation. It's less readable, way more limited, just about everything in it is bad, maybe except the ability to mix it with the CLI programs, but it's quite niche and you could do it the other way in the GUI (embed a terminal, like many apps like Zed or Total Commander do). And of course there's absolutely nothing that stops anyone from developing information-dense, keyboard-driven, and snappy GUI apps that run headless.
> there's absolutely nothing that stops anyone from developing information-dense, keyboard-driven, and snappy GUI apps that run headless.
This is true, and yet...
For some reason GUI seems to attract bloat, excessive margins/padding, and sloppy practices. Maybe it’s just that web views are too tempting to resist.
I contend that this is natural evolution. Every GUI app is a browser nowadays, and that leaves a niche for leaner apps to fill. This is what TUI apps seem to be doing.
Cross platform GUI is hard unless you elect to build a website and navigate through chrome via electron. Cross platform TUI is a lot easier.
I always had the feeling that Zellij is there for people who want to use tmux but don't want to take the 2 minutes it takes to learn the 3-4 basic key combinations you need to make it useful...
Zellij feels like what Jekyll is/was for blogging, at one point, at least the way people were suddenly pursuing it. Not necessarily a bad thing, though.
It’s the (very small) price you pay for a great and free product (I think it’s great!!!).
If you don’t like that ‘feature’ you’re not forced to use it ;-)
Switched to Zellij a few years back mostly for the sane defaults, I expected to come crawling back to tmux, but it's actually stuck quite nicely and has become a staple in my workflow. It hasn't been a perfect experience, but I like it a lot and I'm happy to see a new feature-rich release like this.
I'm curious for folks who use multiplexers: I've tried tmux and Zellij and if I used a multiplexer, it would be Zellij. However, I can't stand losing terminal real estate, but I don't know why that is. How do you deal with the loss of real estate from a multiplexer?
I use Ghostty, so new tabs and splits don't feel that strange to me. I'm guessing the feature I'm missing out on is session resumption and presets? If I leaned into that more, then a multiplexer would be worth the potential drawbacks?
what do you mean by losing terminal real estate?
If you mean the navbar/where it shows the tabs/windows/whatever, doesn't ghostty also have a tab bar?
With screen/tmux (and I assume zellij), you can hide the tab bar completely if you want.
Zellij has a ton of chrome by default to make it discoverable for new users, but you can configure it so it only takes up one line at the bottom of your screen, like tmux. I like to also hit F11 to go fullscreen, which gets me a few more lines.
It also supports "layouts" which are similar to `tmuxinator` scripts. You can set up a bunch of tabs and split panes and run commands in each to start up your text editor, agent, git client, etc. The ability to instantly spin up my entire dev environment with everything just where I like it, configurable on a per-project basis, is what keeps me in the console instead of using desktop apps.
There are separate session persistence daemons you can use instead of a full-fledged multiplexer - dtach, abduco, shpool, zmx, etc.
Being cheeky here, but how many terminal emulators and multiplexers do we need?
What is driving the Cambrian explosion of CLI tools in the last ~5 years?
I’ve been using Linux since 2001 and use standard Konsole on zsh. I have a graphical desktop environment to deal with windows and showing pictures alongside them. Is it perhaps because I am an Emacs person that all I need exist within its loving embrace?
TUI got back into fashion and it seems like everyone is trying hard to reinvent GUI in a really roundabout way, like hacking Braille to display graphs. I think the circle will be complete with the support for proportional fonts for readability, like in Emacs. Character sizing is already (kind of) a thing, which ridiculously enables Markdown rendering in a terminal.
Man, I really want a proper GUI framework with this kind of energy behind it.
A look at the VT100 standard was enough for me to decide building "modern" GUIs on top of that is truly the definition of madness and bloat.
Why go through all that effort and leaky abstractions to display GUIs when you can just bitblt pixels from memory to a framebuffer directly?
Aesthetics, running TUI tools headless over SSH, zero possibility of Electron (although I’ve seen TUI tools written in node which is almost as bad), no worries about X/Wayland jankiness.
Frameworks like bubbletea make it very easy these days.
I think there’s a limit though, a good TUI shouldn’t be “modern”, it should be like the old TUIs that ran auto shops and accounting systems. TUIs that are information dense, keyboard-driven, and snappy are hard to beat.
I don't know, I have too many tools that would really benefit from using GUI (e.g. coding agents, process monitors) but are using TUI and are written in TS instead. Everything about TUI screams jank to me, even the old kind. Both internals and presentation. It's less readable, way more limited, just about everything in it is bad, maybe except the ability to mix it with the CLI programs, but it's quite niche and you could do it the other way in the GUI (embed a terminal, like many apps like Zed or Total Commander do). And of course there's absolutely nothing that stops anyone from developing information-dense, keyboard-driven, and snappy GUI apps that run headless.
> there's absolutely nothing that stops anyone from developing information-dense, keyboard-driven, and snappy GUI apps that run headless.
This is true, and yet...
For some reason GUI seems to attract bloat, excessive margins/padding, and sloppy practices. Maybe it’s just that web views are too tempting to resist.
I figure we can do more "information dense" than 80x25 Unicode characters, or marginally more than that, these days.
Set a smaller font on your terminal emulator, done. Good TUI apps are responsive and resize to fill larger spaces.
Constraints make the artist's job easier. In this case, the constraint is the character grid.
I contend that this is natural evolution. Every GUI app is a browser nowadays, and that leaves a niche for leaner apps to fill. This is what TUI apps seem to be doing.
Cross platform GUI is hard unless you elect to build a website and navigate through chrome via electron. Cross platform TUI is a lot easier.
And for some reason, all of the neo-terminals have gone jihad on native tabs.
Please don't do anything to slow this down. Another TUI or multiplexer doesn't hurt anyone and only serves to bring new ideas to the table.
I for one have used Zellij every day for years and would struggle to get by without it!
I always had the feeling that Zellij is there for people who want to use tmux but don't want to take the 2 minutes it takes to learn the 3-4 basic key combinations you need to make it useful...
Zellij feels like what Jekyll is/was for blogging, at one point, at least the way people were suddenly pursuing it. Not necessarily a bad thing, though.
Zellij is a breath of fresh air in the terminal and my daily driver for years. Thanks to the team for all their hard work?
What is the purpose of the "zellij" in the top left corner and why isn't there an option to remove it?
Project outreach, to keep spreading the word through screenshots etc. This is a free projects with no marketing, to the logo is a sort of branding.
It’s the (very small) price you pay for a great and free product (I think it’s great!!!). If you don’t like that ‘feature’ you’re not forced to use it ;-)
Is there a cheat sheet from tmux to zellij?
Zellij has a tmux mode, so you can press ctrl+b and it will have the tmux keybindings. You can also modify the prefix if you need.