Comparison · Terminals

Herdr vs Zellij

TL;DR

Pick Herdr TUI if you mostly run coding agents and want to see, at a glance, which one is working, blocked or done. It's built for that and reads agent state from the screen today.

Pick Zellij if you want a general terminal workspace: layout files, floating and stacked panes, a browser client, WASM plugins and sessions you can resurrect. Agent status in Zellij comes from community plugins for now. A built-in agent Inbox is merged but not released.

Both are free, open source and run natively on Mac, Linux and Windows. Herdr now also ships a separate desktop app, covered below.

or
Download*
Windows SmartScreen warningDirect downloads can show a SmartScreen warning while Pane is unsigned. Pane is fully open source, so you can audit the code and build from source yourself.1. Click More info2. Click Run anyway3. Continue the installerThe PowerShell install downloads the official release directly and avoids most browser download friction.npm global install
Paste that in PowerShell.Linux

Herdr now names three products. This page compares Herdr TUI, the terminal multiplexer, with Zellij, because they solve the same problem. The newer Herdr desktop app gets its own section. Herdr's old compare page put the difference in one line (Wayback copy, 2026-10-27; the live page now redirects to /tui/):

“Zellij is a friendlier workspace for humans in terminals. Herdr is a runtime for agents in terminals: state, waits, direct attach, and an API.”

Facts side by side

Same job, different focus. Herdr knows what an agent is. Zellij has the broader toolkit.

Herdr TUI vs Zellij
Herdr TUIZellij
Latest releasev0.9.5, 2026-10-14 (changelog)v0.45.1, 2026-08-28 (releases)
Agent statusBuilt in. A sidebar shows blocked, working, done or idle. Herdr counts 22 agent CLIs it detects (herdr.dev/tui).Not in a release. Community plugins such as zj-radar and zellaude add it (awesome-zellij). An Inbox that reads OSC 7501 is merged on main, unreleased (#5734).
PersistenceDetach and the server keeps running. After a server restart the layout returns, and agents resume only if they support native session restore (docs).Detach and the server keeps running. Resurrection restores layout and commands after the server exits; commands wait for you to press Enter (docs).
Remote machinesSSH in and run herdr there, or use herdr --remote <host> and saved SSH machines (docs).SSH in and run zellij there. Zellij inside Zellij is first-class since v0.45.0 (notes). You can also attach over HTTPS with zellij attach https://… (v0.44.0).
Web clientNone official. Herdr says it “works on your phone without a mobile app or web dashboard”, over SSH (docs).Built in since v0.43.0. Opt in with zellij web; needs a login token, and HTTPS off localhost. Mobile UI since v0.45.0 (docs).
PluginsWrite them in any language. herdr.dev/tui counts 2,065 community plugins (herdr.dev/tui).WebAssembly, with Rust officially supported and a permissions model (docs). awesome-zellij lists 68 (list).
WindowsNative, “generally available” (docs). x86_64 build; ARM64 runs it under emulation (install).Native since v0.44.0, March 2026 (notes). x86_64 .zip and .msi; no ARM64 build (releases).
LicenseApache 2.0 (repo)MIT (LICENSE)
CostFree. No paid tier published (herdr.dev).Free. The maintainers run a separate paid sharing service, zellij.online, in beta (zellij.dev, zellij.online).
  • Latest release

    Herdr TUI
    v0.9.5, 2026-10-14 (changelog)
    Zellij
    v0.45.1, 2026-08-28 (releases)
  • Agent status

    Herdr TUI
    Built in. A sidebar shows blocked, working, done or idle. Herdr counts 22 agent CLIs it detects (herdr.dev/tui).
    Zellij
    Not in a release. Community plugins such as zj-radar and zellaude add it (awesome-zellij). An Inbox that reads OSC 7501 is merged on main, unreleased (#5734).
  • Persistence

    Herdr TUI
    Detach and the server keeps running. After a server restart the layout returns, and agents resume only if they support native session restore (docs).
    Zellij
    Detach and the server keeps running. Resurrection restores layout and commands after the server exits; commands wait for you to press Enter (docs).
  • Remote machines

    Herdr TUI
    SSH in and run herdr there, or use herdr --remote <host> and saved SSH machines (docs).
    Zellij
    SSH in and run zellij there. Zellij inside Zellij is first-class since v0.45.0 (notes). You can also attach over HTTPS with zellij attach https://… (v0.44.0).
  • Web client

    Herdr TUI
    None official. Herdr says it “works on your phone without a mobile app or web dashboard”, over SSH (docs).
    Zellij
    Built in since v0.43.0. Opt in with zellij web; needs a login token, and HTTPS off localhost. Mobile UI since v0.45.0 (docs).
  • Plugins

    Herdr TUI
    Write them in any language. herdr.dev/tui counts 2,065 community plugins (herdr.dev/tui).
    Zellij
    WebAssembly, with Rust officially supported and a permissions model (docs). awesome-zellij lists 68 (list).
  • Windows

    Herdr TUI
    Native, “generally available” (docs). x86_64 build; ARM64 runs it under emulation (install).
    Zellij
    Native since v0.44.0, March 2026 (notes). x86_64 .zip and .msi; no ARM64 build (releases).
  • License

    Herdr TUI
    Apache 2.0 (repo)
    Zellij
    MIT (LICENSE)
  • Cost

    Herdr TUI
    Free. No paid tier published (herdr.dev).
    Zellij
    Free. The maintainers run a separate paid sharing service, zellij.online, in beta (zellij.dev, zellij.online).

The plugin counts measure different things. Herdr's counts GitHub repos tagged as Herdr plugins. Zellij's 68 is a curated list. No source we found benchmarks one tool against the other.

Keys and config

Both default to Ctrl b. Nest them and Zellij gets the key first.

Zellij is modal. You enter a mode with a chord, then press a key. In the default preset, Ctrl p then n opens a new pane, and Ctrl t then n opens a new tab. A second preset, “Unlock-First (non-colliding)”, makes you unlock the interface before any mode works, so fewer keys clash with the programs inside. Config is KDL, in ~/.config/zellij/config.kdl (docs).

Herdr TUI uses one prefix, ctrl+b by default, like tmux. Press the prefix twice to send a literal Ctrl b to the pane (changelog). Herdr also calls itself mouse-first. Config is TOML, in ~/.config/herdr/config.toml, or %APPDATA%\herdr\config.toml on Windows (docs).

Zellij's default config also binds Ctrl b: it enters Zellij's tmux mode, and a second Ctrl b passes one through to the pane (default.kdl). So with Herdr running inside Zellij on defaults, Herdr only sees its prefix on the second press. Changing one of the two prefixes, or switching Zellij to the unlock-first preset, avoids that. Neither project documents a recommended setup.

Agent status

Herdr TUI guesses from the screen today. Zellij has support for what agents report merged on main (#5734); no release includes it yet.

Herdr TUI reads the screen. It matches each agent CLI's output and process, plus hooks for some agents. Mitchell Hashimoto gives Herdr as an example of this approach: Claude Code counts as working when its window title starts with a spinner character (his post). It works with agents as they ship, but each agent needs its own detection rules.

Zellij v0.45.1 has no agent status. Plugins fill the gap. zj-radar pins a sidebar of Claude Code and Codex panes that are working, done or waiting. zellaude puts Claude Code activity on tabs (awesome-zellij).

What's coming. OSC 7501, the Program Status Protocol Hashimoto published on 2026-10-06, lets an agent report its own state: idle, working, done, blocked or error. Claude Code added support in v2.1.295 (release notes). Zellij merged an Inbox that collects those reports on 2026-10-20 (#5734), but no Zellij release includes it yet. Herdr's new app reads OSC 7501; Herdr TUI v0.9.5 doesn't (discussion #5073).

Running Herdr inside Zellij

It works, and people do it. Expect a key clash and some past freezes.

Zellij is a general workspace and Herdr TUI is an agent dashboard, so some people run Herdr in one Zellij pane. Here's what's on record:

  • Freezes on tab switch. Running Herdr inside Zellij over SSH froze the Herdr pane for 6.7 seconds on every switch back to its tab. Herdr fixed its side on 2026-09-21 (#3266). Zellij's matching issue, a 5 to 10 second hang when focus returns, names Herdr as one trigger and is still open (#5606).
  • Starting Herdr as a pane's first command. Herdr 0.9.0 could fail with “terminal reported a zero-sized grid”. The issue closed as stale on 2026-10-28 without a reproduction (#3777).
  • The Ctrl b clash described above.
  • Session markers. Herdr strips Zellij's session markers from its new panes, so they don't claim the outer session (CLI reference).

The other way round is murkier. Herdr's docs say its agent detection doesn't look inside tmux sessions started in a Herdr pane. They don't mention Zellij, so expect the same and run agents directly in Herdr panes.

The Herdr app

A separate desktop program. It doesn't share agents with Herdr TUI.

Herdr shipped a desktop app in late October 2026, and herdr.dev now leads with it. It was at v0.1.13 on 2026-11-04 (changelog). It runs on herdr-core, a headless runtime, so closing the window leaves terminals running. Herdr's site says the app and Herdr TUI “don't share agents” (herdr.dev).

  • Agent status comes only from agents that report it through OSC 7501. It doesn't read the screen (herdr-core).
  • Worktrees and changes. Worktrees open as spaces under their repo. A Changes panel shows diffs and has a Commit button (app docs).
  • Remote machines. Add any SSH host; remote work keeps running when your laptop sleeps (README).
  • Platforms. macOS on Apple Silicon, Linux x86_64 and arm64 with a Vulkan driver, Windows x64 (README).
  • After a reboot, panes come back as fresh shells in their last folders. Agents aren't restarted (herdr.dev FAQ).

Zellij is heading the same way. Its main branch has a desktop window, now called “Zellij terminal”, with a tray icon (#5652). Like the Inbox, it isn't in a release yet.

Where Pane fits

Pane is a desktop app for running coding agents in parallel, not a multiplexer. Each pane gets its own git worktree, which is its own branch in its own folder, and every terminal tab shows whether its agent is working, blocked, done or idle. Pane reads that from the screen with its own rules, so agents don't need OSC 7501. Changes, diffs and commits sit next to the agent (review and commit). It runs natively on Windows x64 and ARM64, and runs WSL repos inside their distro (Windows and WSL).

One limit to know: local agents stop when you quit Pane, and on Windows and Linux closing the window quits it. For agents that keep running with nothing open, run them on a Remote Pane host. Coming from Herdr? Pane can bring in Herdr panes whose agent reported its session id (import guide). See Pane vs Herdr for the full comparison.

more comparisons

Sources

What we ran
  • → Desk check on 2026-11-06: Zellij v0.45.1 release notes, docs and main branch
  • → Herdr TUI v0.9.5 docs, changelog and issues; Herdr app v0.1.13 README and changelog
  • → Neither tool was installed for this page
Corrections
If anything here is wrong or out of date, tell us and we'll fix it and update the date at the top. Open an issue on GitHub
Sources

frequently asked questions

or
Download*
Windows SmartScreen warningDirect downloads can show a SmartScreen warning while Pane is unsigned. Pane is fully open source, so you can audit the code and build from source yourself.1. Click More info2. Click Run anyway3. Continue the installerThe PowerShell install downloads the official release directly and avoids most browser download friction.npm global install
Paste that in PowerShell.Linux

By Parsa Khazaeepoul, co-founder of Pane. .