[HN Gopher] Zellij: A terminal workspace with batteries included
       ___________________________________________________________________
        
       Zellij: A terminal workspace with batteries included
        
       Author : ndr
       Score  : 55 points
       Date   : 2025-12-05 16:18 UTC (6 hours ago)
        
 (HTM) web link (zellij.dev)
 (TXT) w3m dump (zellij.dev)
        
       | jauntywundrkind wrote:
       | Fwiw lots of submissions over the years. I thought there was one
       | a couple weeks ago but not seeing it.
       | https://hn.algolia.com/?q=zellij
        
       | sesm wrote:
       | My dream workspace is a real browser (with all dev tools), with
       | integrated terminal emulator and integrated editor. Editor
       | plugins could be prototyped with web technology and debugged on
       | the fly (like Obsidian plugins). Is there anything like this?
        
         | pomdtr wrote:
         | I built a project to add a terminal emulator to the browser
         | (using a chrome extension): https://github.com/pomdtr/tweety.
         | 
         | I'm working on a `tweety edit` command which open arbitrary
         | files in your $EDITOR of choice in a new tab.
        
           | sesm wrote:
           | Looks great, I'll give it a try!
        
         | maccard wrote:
         | You've basically described vscode!
        
           | sesm wrote:
           | As far as I understand, VSCode browser can't install browser
           | extensions and doesn't even have Dev Tools. For example,
           | IntelliJ IDEs ship with CEF-based browser that has Chromium
           | Dev Tools, but it still doesn't support browser extensions.
        
             | williamstein wrote:
             | Instead you can use https://github.com/coder/code-server,
             | which is really vscode running in your browser. You then
             | get all extensions, etc.
        
             | maccard wrote:
             | I was being a little tongue in cheek, and my "basically"
             | was doing a lot of heavy lifting. VSCode is electron based,
             | so under the hood it's already doing the heavy lifting.
             | It's got a first class editor, first class terminal, first
             | class plugins developed using web tech, very easily and
             | readily debuggable.
             | 
             | It has a browser built in, which is "just" an iframe, and
             | it definitely doesn't function as a full blown web browser,
             | but it does work for previewing your dev work, and given
             | it's a dev tool it makes sense that the experience would be
             | editor+debugger+tools first, with browser as a second class
             | citizen (rather than chrome with an embedded terminal which
             | would be the other way around).
        
       | tdubey wrote:
       | Is there improved guidance on migrating from tmux to zellij?
       | 
       | I've attempted to move over a few times, and while this is
       | certainly user skill, it just felt too different from
       | screen/tmux. Perhaps I should bite the bullet and force myself to
       | get used to a new paradigm...
        
         | whimsicalism wrote:
         | i've switched over and really enjoy it. i feel like it's
         | largely self documenting, what are your biggest hurdles?
        
         | stusmall wrote:
         | For something as simple as a terminal multiplexer, if you
         | aren't seeing immediate value in a switch maybe its fine if you
         | stick with what you have. You don't always need to be on the
         | newest thing. I prefer zellij over tmux, but it is evolutionary
         | not revolutionary. Instead of forcing yourself, save the effort
         | and focus on something more valuable.
        
       | not-so-darkstar wrote:
       | I don't understand the idea to make everything terminal-centric.
       | It should be one component of all the tools available to the
       | programmer.
       | 
       | All text editors worth using have a way to open a terminal for
       | that one time you need it, everything else should be a GUI (with
       | all the advantages that come with it).
        
         | hollerith wrote:
         | I don't even use a terminal to run shell commands.
        
           | not-so-darkstar wrote:
           | Another fellow GVim user?
        
             | hollerith wrote:
             | Emacs, and as soon as I spawn it, I send the shell process
             | EOF, which is my way of saying, "I'm interested in seeing
             | what you write on your stdout, but have no interest in
             | conducting a dialog with you".
        
         | mistercheph wrote:
         | Keyboards are higher bandwidth man-machine interfaces than
         | mouse + GUI unless what you're exchanging is spatial
         | information, which is typically not the case for writing
         | software.
         | 
         | There is a higher learning curve, and we can argue about the
         | tradeoffs you make, but some powerful tools can be difficult to
         | learn to use. Complexity != bad design; sometimes you're just
         | exposing an underlying problem space that can't be simplified
         | without being cut off from part of the solution space.
        
           | grepex wrote:
           | This 100%. For me, the philosophy is not so much a terminal-
           | centric design but a keyboard-centric design. Sure, this
           | could be done in a GUI, but even GUIs with a keyboard-centric
           | design are not as fluid as a TUI.
           | 
           | I'll also add that (like the parent comment) I did not get
           | the appeal. Not until I forced myself to use it more and saw
           | the benefits.
        
           | not-so-darkstar wrote:
           | I didn't understand much of you said but it sounded mathy so
           | I'm going to reply with a counterexample, just look up on
           | youtube Russ Cox solving AoC with Acme and tell me that's not
           | impressive!
           | 
           | By the way, using a GUI doesn't automatically using the mouse
           | for everything, think of GVim or Emacs. the problem with
           | terminal emulators is the emulating part, where they are
           | forced to comply with the idiotic rules from the '70s.
        
           | homebrewer wrote:
           | I use IDEA for most things and barely touch the mouse. It has
           | its problems (like terrible performance), but it's a good
           | example of a GUI done right.
           | 
           | Everything can be controlled through the keyboard, typing
           | into _every_ window does fuzzy search of its contents (and
           | that window might contain a list of code symbols, a list of
           | database tables, a list of search results, or many other
           | things).
           | 
           | Every action can be bound to a key combo of your choice.
           | Every interaction with the GUI can be stored as a macro,
           | edited and replayed.
           | 
           | And so on, and so forth.
        
         | chrysoprace wrote:
         | GUIs are often mouse-centric, resource-hungry.
         | 
         | TUIs and CLIs are often keyboard centric only use as many
         | resources as it takes to do the task, and then minimal
         | resources to draw the text. Most CLIs also follow the Unix
         | philosophy of doing one thing well, so you can get an output
         | from a CLI and then pipe it into another.
         | 
         | At work I literally use the same workflow at home across two
         | different operating systems because they both share a terminal.
         | I don't even know how to switch workspace on a Mac because I
         | don't need to, tmux sessions fulfil the same task.
        
           | Barrin92 wrote:
           | >Most CLIs also follow the Unix philosophy of doing one thing
           | well,
           | 
           | basi cli tools yes, but software like the one we're
           | commenting on has a TUI so complex they simply emulate
           | graphical user environments and widgets but on a text
           | rendering stack, akin to web apps pretending to be graphical
           | applications on top of a markup language, except they do it
           | out of necessity because that's how the web works.
           | 
           | If you want to draw graphical user interfaces on an operating
           | system just use the... actual graphics stack. There's
           | terminal apps with widget frameworks now that painstakingly
           | try to reproduce what every OS ships with just because it's..
           | cool to be a terminal hacker or something?
        
             | acedTrex wrote:
             | Because its convenient in a terminal flow to simply hot key
             | through everything without ever touching a mouse. Most GUI
             | programs are inherently mouse driven so if you never touch
             | your mouse they are not very convenient.
        
         | tomtomtom777 wrote:
         | It's quite often useful to have multiple tabs or panes in your
         | terminal. Zellij does this. It's a terminal multiplexer, like
         | tmux. Mostly just a bit more beginner-friendly and polished.
         | 
         | So obviously it's terminal-centric.
        
         | dr_kretyn wrote:
         | Extremes are on both ends. Some people want to use a terminal
         | for all, some don't want a terminal at all.
         | 
         | I'm a terminal guy because most UI I use is just unintuitive
         | and requires a lot of mouse clicking - using mouse is just
         | inconvenient to me. And often there are no tools for what I
         | want to do, or rather, I'd need to open many tools to do
         | something simple like change a file on a remote machine.
         | 
         | But I like a nice IDE, I use DB explorers, I use cloud code to
         | write GUI for data processing and reporting visuals. Terminal
         | is just a "killer app" that's useful for almost everything. So,
         | if you're using regardless, why not make the experience better?
        
           | not-so-darkstar wrote:
           | I don't think terminal multiplexers (even Zellij which claims
           | not to be one) make the experience better. They make it
           | worse, actually, because when you have a problem there's one
           | more thing to keep track of: Your terminal emulator, your
           | terminal multiplexer and your TUI.
           | 
           | A decent terminal emulator like kitty solves all of this.
        
             | dr_kretyn wrote:
             | Horses for courses. A decent terminal emulator solves most
             | of it. But I'm guessing there's a reason why there's so
             | many terminal emulators and multiplexers.
             | 
             | Until a few months ago I used to use tmux + foot (tiny
             | terminal), and I enjoyed the setup because I could copy
             | over my tmux config to remote hosts and work as if nothing
             | changed. As I'm mainly working local now, I'm now mostly
             | using Kitty.
        
         | klooney wrote:
         | The author's father agrees with you, which is pretty funny.
        
         | ghusto wrote:
         | For me it's because it's because most things are faster,
         | easier, and don't change (what you learn retains it's value,
         | and doesn't become worthless when the new hotness arrives). So
         | for me it's the other way around; everything should be in the
         | terminal, with a GUI for that one time you need it (`open .` on
         | Mac to open Finder).
        
           | not-so-darkstar wrote:
           | With all the new CLI tools it looks like the opposite to me.
           | For example the ag, ack, rg history.
           | 
           | VS Code still has the same style from 2018.
        
             | packetlost wrote:
             | But... you don't have to use the new tools? The tools that
             | ship with POSIX haven't meaningfully changed since like
             | 2001 and work just fine today.
        
       | dr_kretyn wrote:
       | I'm a terminal person and would love to try new things. But I
       | just spent a few minutes on their page and have no idea why I
       | would try to use it.
       | 
       | Can anyone help me learn why this over, say, kitty?
        
         | chrysoprace wrote:
         | It's not an alternative to kitty; it's an alternative to tmux
         | or GNU screen.
         | 
         | I believe it's positioned to be more user-friendly than tmux
         | but I've already got things memorised with tmux and it wasn't
         | bringing anything new to the table, so I didn't try zellij for
         | more than a few days.
        
           | pletnes wrote:
           | I like tmux better as well (muscle memory) but AFAIK you need
           | tmuxinator for preconfiguring layouts?
        
             | atmosx wrote:
             | You need a session manager like tmuxinator, tmuxp and tmux-
             | sessionx are popular choices.
        
           | tym0 wrote:
           | I feel the same. If someone would ask me for a recommendation
           | I would point them toward Zellij but if you've been using
           | tmux for years it's probably not worth it.
           | 
           | The modal nature of Zellij is nice though.
        
       | Milpotel wrote:
       | 2025 and actual devs are still recommending to type "bash <(curl
       | -L ...)" into a terminal...
        
         | Rucadi wrote:
         | If the source is known, it is not less bad that downloading a
         | program and running it
        
           | homebrewer wrote:
           | It is if the script is written badly, gets truncated while
           | it's being downloaded, and fails to account for this
           | possibility.
           | 
           | Look into tailscale's installation script, they wrapped
           | everything into a function which is called in the last line
           | -- you either download and execute every line, or it does
           | nothing.
        
             | Analemma_ wrote:
             | This "what if it gets truncated in the middle of the
             | download, and the half-run script does something really
             | bad" objection gets brought up every time "curl | bash" is
             | mentioned, and it always feels like "what if a cosmic ray
             | flips a bit in your memory which makes the kernel erase
             | your hard drive". Like, yes, it could happen in the same
             | way getting killed by a falling asteroid could happen, but
             | I'm not losing sleep over it.
        
             | manmal wrote:
             | Serious question, why or how would a script get truncated
             | when transferred over https?
        
               | nilamo wrote:
               | You pull the Ethernet cable out before it finishes. Or
               | your wifi router hiccups
        
               | manmal wrote:
               | Wouldn't the download terminate without emitting the
               | script?
        
               | homebrewer wrote:
               | Just living far from major datacenters is enough. I get
               | truncated downloads pretty regularly, maybe a couple
               | times a month or so. The network isn't really all that
               | reliable when you consistently use it across the globe.
               | 
               | It usually happens on large files though, due to simple
               | statistics, but given enough users, not hard to imagine
               | it happening with a small script...
        
         | quantummagic wrote:
         | It's just assumed you'll run it in an isolated container, or
         | some other sandbox...
        
       | mutkach wrote:
       | Does it support sending and executing commands to the panes like
       | tmux does?
       | 
       | like this:
       | 
       | tmux send-keys -t 0:1.1 "ls" Enter
       | 
       | edit: well, yes, you can:
       | 
       | zellij action write-chars ls
       | 
       | zellij action write 10
        
         | chb wrote:
         | Ha! I've been using tmux for years and I didn't realize one
         | could do this.
        
       | kstrauser wrote:
       | An endorsement: I freaking love Zellij. I mainly use it like one
       | might use Tmux, to keep remote sessions alive so I can reconnect
       | to them from another host than where I began the session:
       | 
       | * Ssh in to myserver.cloud from my laptop. Run Zellij. Fire off
       | various long-running processes in multiple tabs.
       | 
       | * On my commute home, ssh in from my phone, run `zellij attach`,
       | and check on the status of those processes.
       | 
       | * Once home, ssh in from my desktop, run `zellij attach`, and
       | continue where I left off earlier.
       | 
       | Tmux is nice, but Zellij fits my brain a lot better. Plus, it has
       | a lot of UI affordances to discover features without me having to
       | memorize keystrokes. I use these kinds of tools often enough to
       | care about them, but not so often or in such depth that I'm any
       | kind of a power user. There are certain things I do so rarely in
       | Tmux that I have to look up the manual every single time I do
       | them. With Zellij, I don't have to.
        
       | andyfleming wrote:
       | I like Zellij, but one point of friction I ran into was it not
       | loading profile configurations like .zprofile.
       | https://github.com/zellij-org/zellij/issues/1434
        
       | mixmastamyk wrote:
       | Neat. Any idea how well it runs on the linux console, or fbterm
       | perhaps? Maybe there is a better fbterm by now, remember it being
       | a bit lacking as well.
        
       | mhitza wrote:
       | The landing page does a bad job at explaining what it is, same
       | with the first page of the documentation.
       | 
       | I get it from the other comments that it's a terminal
       | multiplexer, and considered an alternative to tmux. But tmux and
       | screen are well established, and should take the opportunity to
       | explain in what way it is different from those.
        
       | acheong08 wrote:
       | Most of the time, my need for terminal multiplexers are
       | accommodated by tiling window managers and workspaces. When I do
       | use Zellij, it's when I'm on my laptop and no sockets are nearby.
       | Then I boot onto console and use Zellij for the scroll, split
       | panes, and session management. A replacement for the desktop if
       | you will. Quite handy.
        
       ___________________________________________________________________
       (page generated 2025-12-05 23:01 UTC)