// compare

mmux vs Zellij

Both are terminal multiplexers written in Rust. Zellij is a general terminal workspace with tiled, floating and stacked panes, tabs, layouts, plugins and a web client. mmux is narrower: a sidebar of coding agents, terminals and dev processes per project directory, with a built-in git panel, running inside an invisible tmux session.

Last checked against Zellij 0.45.1 on .

// tl;dr

Pick Zellij if you want a general multiplexer: split, floating and stacked panes, tabs, KDL layouts, WebAssembly plugins, a browser client with session sharing, or native Windows support. As a terminal workspace it does far more than mmux.

Pick mmux if your terminal mostly hosts coding agents next to a dev server and git: a sidebar that shows which agent is working, ready or waiting on a question, agents that resume their conversation after a quit, a native git panel, and git worktrees as their own projects.

They are not exclusive. mmux is a program in a terminal, so it runs fine inside a Zellij pane. See using both.

At a glance

mmux 0.13.13 and Zellij 0.45.1, as of 2026-10-14.
Capability mmux Zellij
Sessions survive closing the terminal or dropping SSH yes: runs in a per-directory tmux session yes: its own server; detach and reattach
Restore after a quit or crash partly: Claude, Codex, Pi and Grok agents resume their conversation; terminals reopen as fresh shells partly: layout and pane commands restored; commands wait for Enter; viewport and scrollback opt-in
Split, floating and stacked panes, tabs no: one focused program in the main pane yes: tiled, floating, stacked and pinned panes, tabs
Declarative setup file partly: mmux.yaml lists agents and processes, not a pane layout yes: KDL layouts with panes, tabs, commands and plugins
Agent state at a glance (working, ready, needs input) yes: spinner, green ready, yellow ? on a question partly: not agent-aware; marks bells from unfocused panes and tabs
Desktop notifications from programs yes: bell and OSC 9, 777, 99, also over SSH yes: forwards OSC 9, 777 and 99 to the host terminal
Git panel and worktrees yes: native panel; each worktree opens as its own project no: not part of Zellij itself
Scripting from the command line yes: mmux ls, read, wait, ask, with agent states yes: zellij run --blocking, list-panes --json, subscribe
Plugins no: none yes: WebAssembly plugins, first-class Rust API
Browser access and session sharing no: terminal only; a narrow layout for SSH from a phone yes: built-in web client, HTTPS attach, read-only tokens
Platforms and dependencies partly: macOS (Apple Silicon), Linux arm64 and x86_64; needs tmux yes: Linux, macOS (Intel and Apple Silicon), native Windows; no tmux
License and cost GPLv3, free MIT, free; optional paid hosted sharing (Zellij.online, beta)

Zellij facts from its documentation, release notes and default config at v0.45.1; mmux facts from its docs at 0.13.13. Both are written in Rust.

What is Zellij?

Zellij describes itself as "a terminal workspace with batteries included" [1]. It is an MIT-licensed multiplexer written in Rust with its own client and server, so sessions keep running when you detach and you attach to them again later. On top of tiled panes and tabs it offers floating, stacked and pinned panes, command panes that show an exit code and re-run on Enter, KDL layout files, a session manager with session resurrection, and a WebAssembly plugin system that also implements parts of its own interface [2].

Recent releases widened its reach. 0.43.0 added a built-in web client for opening sessions in a browser [3]. 0.44.0 (March 2026) brought native Windows support, terminal-to-terminal attach over HTTPS, read-only sharing tokens and a much larger automation CLI [4]. 0.45.0 (August 2026) added first-class nested sessions, the Kitty graphics protocol, OSC 133 shell integration, desktop notification forwarding and a mobile web UI [5]. The maintainers also run Zellij.online, a paid hosted sharing service with a free tier that is in closed beta, and state that Zellij itself stays free and open source [6].

Where Zellij is better

Where mmux is better

When to use which

Choose Zellij when

  • you want several programs visible side by side, in tabs and splits
  • you describe environments as layout files or extend the tool with plugins
  • you share sessions with others, or open them in a browser
  • you work on Windows, or cannot install tmux

Choose mmux when

  • you run several coding agents and want to see which one needs you
  • you want agents to pick up their conversation after a restart
  • you commit and branch from the same screen as your agents
  • you work in parallel git worktrees, each with its own agents and dev server

Using Zellij and mmux together

If Zellij is already your terminal workspace, keep it and run mmux in one of its panes for the agent work.

  1. In a Zellij pane, set up the project once and open mmux:
    cd ~/some/project
    mmux init
    mmux
  2. Zellij's default config binds Ctrl b to its tmux mode [11], and mmux uses Ctrl-b as its leader in a focused pane. Press Ctrl g to lock Zellij while you work in mmux, and again to unlock it.
  3. Closing the Zellij pane only detaches mmux. Its tmux session keeps running, and mmux attach from any shell brings it back.

Commands you used to start from a Zellij layout, such as a dev server, become processes in mmux.yaml:

processes:
  - name: Dev server
    cmd: npm
    args: ["run", "dev"]
    autostart: false

FAQ

Is mmux built on Zellij?

No. mmux runs its own Rust TUI inside an invisible, per-directory tmux session and needs tmux on your PATH. Zellij is a separate multiplexer with its own server and does not use tmux.

Can I run mmux inside Zellij?

Yes. mmux is a program in a terminal, so it runs in a Zellij pane. Zellij's default config binds Ctrl b to its tmux mode, which overlaps mmux's Ctrl-b leader, so lock Zellij with Ctrl g while you work in mmux.

Which one restores my session after a quit or crash?

Both, in different ways. Zellij saves the layout and the command in each pane every second and recreates them, with each command waiting for Enter before it runs again. mmux restores your agents and terminals: Claude, Codex, Pi and Grok agents resume their conversation, terminals reopen as fresh shells in the directory you left, and processes come back through autostart or a click.

Does Zellij run on Windows? Does mmux?

Zellij runs natively on Windows since 0.44.0 (March 2026) and publishes Windows builds with each release. mmux publishes builds for macOS on Apple Silicon and for Linux on arm64 and x86_64.

Is Zellij free?

Yes. Zellij is MIT licensed and free. Its maintainers also run Zellij.online, a paid hosted session sharing service with a free tier, in closed beta as of October 2026, and state that Zellij itself stays free and open source. mmux is free under the GPLv3.

Sources

  1. Zellij repository: README, license (MIT) and description
  2. Zellij features
  3. Zellij 0.43.0 release notes: web client
  4. Zellij 0.44.0 release notes: Windows, remote attach, read-only tokens, CLI automation, plugin APIs
  5. Zellij 0.45.0 release notes: nested sessions, Kitty graphics, OSC 133, notifications, mobile web UI
  6. Zellij.online and the open source project
  7. Zellij documentation: layouts
  8. Zellij documentation: installation
  9. Zellij 0.45.1 release and its prebuilt binaries
  10. Zellij documentation: session resurrection
  11. Zellij 0.45.1 default config (keybindings)
  12. Zellij documentation: controlling Zellij through the CLI
  13. mmux documentation (usage, configuration, notifications)

Other comparisons

all comparisons

Try mmux

One binary for macOS, Linux and WSL. Run mmux in any project directory.

curl -fsSL https://mmux.org/install.sh | sh