<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/herdr-vs-tmux-vs-zellij-e6vrzrfp1" -->

---
title: Herdr vs tmux vs Zellij | daily.dev
description: A practical comparison of three terminal multiplexers - tmux, Zellij, and Herdr - covering persistent sessions, layouts, plugins, remote SSH workflows, and...
canonical: https://daily.dev/posts/herdr-vs-tmux-vs-zellij-e6vrzrfp1
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Herdr vs tmux vs Zellij | daily.dev
og:description: A practical comparison of three terminal multiplexers - tmux, Zellij, and Herdr - covering persistent sessions, layouts, plugins, remote SSH workflows, and...
og:url: https://daily.dev/posts/herdr-vs-tmux-vs-zellij-e6vrzrfp1
og:image: https://api.daily.dev/og/posts/e6VRzRFP1.png
og:image:alt: Herdr vs tmux vs Zellij
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Herdr vs tmux vs Zellij

**[Flavio Copes](https://daily.dev/sources/flaviocopes)** · 9 min read · 7 upvotes · 0 comments

## Summary

A practical comparison of three terminal multiplexers - tmux, Zellij, and Herdr - covering persistent sessions, layouts, plugins, remote SSH workflows, and session restoration. tmux is the mature, scriptable Unix default requiring manual configuration; Zellij offers polished defaults, KDL layouts, and WebAssembly plugins for human terminal use; Herdr is a newer tool built specifically around running and coordinating multiple coding agents, with agent lifecycle awareness, direct attach to a single agent, and an API for agent control. Includes command examples for starting sessions, detaching/reattaching, and nesting considerations.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://flaviocopes.com/herdr-vs-tmux-zellij>

## Questions this post answers

### What's the difference between Herdr and tmux for running coding agents in the terminal?

Herdr adds an agent-aware layer on top of persistent terminal sessions, classifying processes inside panes as working, blocked, done, idle, or unknown, while tmux only sees panes as generic terminal programs. Herdr lets you target an agent by name, wait for a specific state like blocked, and attach directly to one agent, whereas tmux requires manually sending keystrokes and polling.

_Developers juggling multiple coding agents can compare these tradeoffs before picking a terminal runtime on daily.dev._

### Does Zellij support restoring terminal sessions after the server process exits?

Yes, Zellij has built-in session resurrection that serializes the layout and commands, optionally saving pane viewports and scrollback, and resurrected commands wait for confirmation before running again by default. This differs from tmux, which is not designed as a checkpoint for arbitrary processes once its server exits, and from Herdr, which restores workspace shape but restarts arbitrary shells as new processes.

_Anyone weighing session persistence across tmux, Zellij, and Herdr can dig into these differences on daily.dev._

### Can I nest tmux or Zellij inside Herdr, or run Herdr inside another multiplexer?

Nesting is possible but discouraged unless there is a clear reason, since nested prefix keys, mouse handling, colors, and resize events can become confusing. A useful exception is connecting to a remote server already running tmux while using Herdr locally, deciding which layer owns persistence versus interface. If Herdr needs to detect a coding agent, avoid placing another multiplexer between the Herdr pane and that agent, since Herdr may only see the multiplexer as the foreground process.

_Developers setting up layered terminal workflows can weigh these tradeoffs on daily.dev before combining tools._

## Similar posts on daily.dev

- [Herdr vs cmux: which one should you use?](https://daily.dev/posts/herdr-vs-cmux-which-one-should-you-use--83gnvf30u) · Flavio Copes · 0 upvotes · 0 comments
- [A Terminal Workspace](https://daily.dev/posts/a-terminal-workspace-dl6ikn0y4) · Atomic Spin · 0 upvotes · 0 comments

---

Tags: [#ai-agents](https://daily.dev/tags/ai-agents), [#ssh](https://daily.dev/tags/ssh), [#bash](https://daily.dev/tags/bash)

[View this post on daily.dev](https://daily.dev/posts/herdr-vs-tmux-vs-zellij-e6vrzrfp1)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Herdr vs tmux vs Zellij","url":"https://daily.dev/posts/herdr-vs-tmux-vs-zellij-e6vrzrfp1","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/herdr-vs-tmux-vs-zellij-e6vrzrfp1"},"datePublished":"2026-08-23T07:21:36.633Z","dateModified":"2026-09-14T08:46:15.934Z","description":"A practical comparison of three terminal multiplexers - tmux, Zellij, and Herdr - covering persistent sessions, layouts, plugins, remote SSH workflows, and...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/081d07d9acd59ac0d11e1cd566e2bc88?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/081d07d9acd59ac0d11e1cd566e2bc88?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Flavio Copes","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Flavio Copes","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/1f2dbd275797411bbd37bfdaaf0951a9","url":"https://daily.dev/sources/flaviocopes"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/herdr-vs-tmux-vs-zellij-e6vrzrfp1","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":7},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ai-agents,ssh,bash","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Flavio Copes","item":"https://daily.dev/sources/flaviocopes"},{"@type":"ListItem","position":3,"name":"Herdr vs tmux vs Zellij"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/herdr-vs-tmux-vs-zellij-e6vrzrfp1#faq","mainEntity":[{"@type":"Question","name":"What's the difference between Herdr and tmux for running coding agents in the terminal?","acceptedAnswer":{"@type":"Answer","text":"Herdr adds an agent-aware layer on top of persistent terminal sessions, classifying processes inside panes as working, blocked, done, idle, or unknown, while tmux only sees panes as generic terminal programs. Herdr lets you target an agent by name, wait for a specific state like blocked, and attach directly to one agent, whereas tmux requires manually sending keystrokes and polling. Developers juggling multiple coding agents can compare these tradeoffs before picking a terminal runtime on daily.dev."}},{"@type":"Question","name":"Does Zellij support restoring terminal sessions after the server process exits?","acceptedAnswer":{"@type":"Answer","text":"Yes, Zellij has built-in session resurrection that serializes the layout and commands, optionally saving pane viewports and scrollback, and resurrected commands wait for confirmation before running again by default. This differs from tmux, which is not designed as a checkpoint for arbitrary processes once its server exits, and from Herdr, which restores workspace shape but restarts arbitrary shells as new processes. Anyone weighing session persistence across tmux, Zellij, and Herdr can dig into these differences on daily.dev."}},{"@type":"Question","name":"Can I nest tmux or Zellij inside Herdr, or run Herdr inside another multiplexer?","acceptedAnswer":{"@type":"Answer","text":"Nesting is possible but discouraged unless there is a clear reason, since nested prefix keys, mouse handling, colors, and resize events can become confusing. A useful exception is connecting to a remote server already running tmux while using Herdr locally, deciding which layer owns persistence versus interface. If Herdr needs to detect a coding agent, avoid placing another multiplexer between the Herdr pane and that agent, since Herdr may only see the multiplexer as the foreground process. Developers setting up layered terminal workflows can weigh these tradeoffs on daily.dev before combining tools."}}]}
```

