10x Design in Claude Code and Codex

TL;DR
An Ask HN reply asked what Herdr fills that pi and plain tmux scripts don't already cover. We compared all three against their own documentation - including the places where Herdr genuinely loses.
Direct answer
An Ask HN reply asked what Herdr fills that pi and plain tmux scripts don't already cover. We compared all three against their own documentation - including the places where Herdr genuinely loses.
Best for
Developers comparing real tool tradeoffs before choosing a stack.
Covers
Verdict, tradeoffs, pricing signals, workflow fit, and related alternatives.
| Source | What it covers |
|---|---|
| HN item 49399188 | The challenge: "Does herdr worth it? Harnesses like pi ship most of these features" |
| earendil-works/pi | pi monorepo - MIT, TypeScript, 95,873 stars (August 23, 2026) |
| pi coding-agent README | Modes, extensions, skills, packages, philosophy |
| pi tmux doc | pi's official guidance for running under tmux |
| herdrdev/herdr | Herdr repo - Apache-2.0, Rust, 31,765 stars (August 23, 2026) |
| herdr.dev/docs/agents | Detection model, supported agents, state rollups |
| herdr.dev/docs/agent-automation | The CLI automation primitives compared below |
| herdr.dev/docs/persistence-remote | Named sessions, SSH remote attach, direct attach |
| multiplex-term/Multiplex | Third-party Vision Pro/iPad/iPhone client for SSH, tmux, and herdr |
| zellij-org/zellij | Landscape reference - 35,068 stars (August 23, 2026) |
Last updated: August 23, 2026
On August 22, 2026, an Ask HN post put the sharpest possible question to the Herdr hype cycle: "Does herdr worth it? Harnesses like pi ship most of these features." The asker's argument, in full: "What's the gap it fills that they don't? Agent Multiplexing (per tab) is already implemented in claude code, codex, pi (with plugins)." The thread collected one substantive reply - "Harnesses are the new Javascript web framework hotness" - and little else. One point, one joke, one genuinely hard question.
This is Part 3 of our Herdr series, and it is the honest one. Everything below traces to fetched documentation and repository data pulled August 23, 2026. Where a cell in a comparison is not documented by the vendor, it says so. We also cover where Herdr loses outright, because it does.
The HN question quietly compares three things that are not the same kind of object:
So the real question is not "which one wins." It is: when you run several agents at once, who assembles the fleet - you, with scripts, on top of tools that stay ignorant of each other - or a layer that claims to know what an agent is?
Notably, pi's official answer to "how do I run five pis" is literally tmux. That partially vindicates the HN asker before the comparison even starts. What it does not settle is the cost of the glue, which is where the differences live.
pi (earendil-works/pi) sits at 95,873 stars as of August 23, 2026 - nearly three times Herdr's count - and is one year old this month. It is a TypeScript monorepo shipping five packages: the coding-agent CLI, an agent runtime (pi-agent-core), a unified multi-provider LLM API (pi-ai, covering Anthropic, OpenAI, Google, DeepSeek, xAI, OpenRouter, and dozens more, plus subscription logins for Claude Pro/Max, ChatGPT Plus/Pro, and GitHub Copilot), a differential-rendering TUI library, and telemetry contracts.
Its verified feature surface relevant to this debate:
-p, --mode json), RPC over stdin/stdout (--mode rpc), and an embeddable SDK. This matters enormously - a pi process can report its own state as structured events instead of being inferred from screen pixels./tree, /fork, /clone), manual and automatic compaction, steering and follow-up message queues while the agent works.Two caveats cut against it in a fleet context. First, pi ships no built-in permission system at all - the docs tell you to containerize it (Docker, a Gondolin micro-VM, or OpenShell). Second, everything multi-agent is DIY by design: extensions can build it, packages might provide it, but nothing in the core spawns, names, watches, or waits on other agents.
Herdr (herdrdev/herdr) sits at 31,765 stars, is written in Rust, ships as one binary under Apache-2.0, and publishes docs at version 0.8.2. The architecture: a background server owns the terminals; your terminal is a client. Close the lid, drop the network, kill the client - panes keep running, and the server restores session shape after a full restart.
The parts that matter for the comparison:
[update] manifest_check = false). Local overrides go in ~/.config/herdr/agent-detection/<agent>.toml.pane run, pane send-text, pane send-keys, pane wait-output --regex; and agent-level agent start --kind, agent prompt --wait --until idle|done|blocked, agent wait, agent read. Waits resolve against the classified lifecycle, not raw text. When an agent prompt targets a blocked agent, Herdr returns agent_blocked instead of typing into a dialog.herdr --remote workbox turns your local install into a thin client over SSH (bridging even image paste into the remote session), named sessions isolate independent servers, and a read-only terminal session observe stream emits framed ANSI records for third-party bridges - which is exactly what Multiplex, a 9-star Swift client for Vision Pro, iPad, and iPhone, consumes alongside tmux and plain SSH.Any honest comparison starts from what a competent tmux setup already delivers in 2026: persistent sessions that survive disconnects, send-keys for scripted input, capture-pane for reading output, status bars, hooks and run-shell for automation, and a control mode (tmux -C) that desktop clients integrate against. Twenty years of maturity means it is on every server you SSH into, its behavior is fully documented and boringly stable, and it adds no new trust surface to your machine.
What tmux structurally cannot do, no matter how good your dotfiles are:
That is precisely the gap Herdr productizes. The question the HN thread really asks is whether that gap is worth a new dependency.
From the archive
Aug 23, 2026 • 7 min read
Aug 23, 2026 • 8 min read
Aug 23, 2026 • 10 min read
Aug 23, 2026 • 10 min read
Capability claims below come from each project's own documentation, fetched August 23, 2026. "Not documented" means we could not verify it in the official sources above.
| Capability | Herdr 0.8.2 | pi | tmux + scripts |
|---|---|---|---|
| Category | Agent-aware multiplexer | Coding agent harness | Terminal multiplexer |
| License | Apache-2.0 | MIT | ISC |
| Stars (Aug 23, 2026) | 31,765 | 95,873 | ~37k-year project, not comparable (see note) |
| Survives disconnect/lid close | Yes - server owns panes, restores session shape | Process dies; JSONL sessions resumable via -c/-r | Yes - canonical feature |
| Run multiple agents side by side | Yes - workspaces, tabs, panes with per-pane agent identity | Not built in - "spawn pi instances via tmux" per its README | Yes, as anonymous panes |
| Knows working vs blocked vs idle | Yes - screen manifests plus authoritative lifecycle hooks; agent explain shows evidence | Knows its own turn state internally; exposes it via JSON/RPC modes, not pane inference | No - bytes only |
| Wait on agent completion from a script | Yes - agent prompt --wait --until done, agent wait --until blocked | Per-process: JSON event stream and RPC protocol give ground truth for that one instance | No native primitive - poll capture-pane in a shell loop |
| Cross-agent notification policy | Yes - workspace rollups, configurable notifications | Not documented | Bells and activity flags, per pane |
| Guardrails against typing into a dialog | Yes - returns agent_blocked rather than sending input | N/A - single agent owns its own input flow | No - your script sends blind |
| Structured state source | Inferred from terminal, upgraded by installed hooks | Native - events from the process itself | None - text parsing throughout |
| Remote access | herdr --remote thin client over SSH; third-party mobile/spatial clients emerging | Runs wherever a terminal runs; no remote-attach concept of its own | SSH + control mode, decades of clients |
| Extensibility | Executable plugins with manifest actions and event hooks; marketplace pre-launch | Deepest in-process story: TypeScript extensions, skills, npm/git packages | Shell configs, hooks, plugin manager ecosystem |
| Provider/model surface | Agnostic - hosts whatever CLI you launch | Unified API across dozens of providers and three subscription flows | Agnostic |
| Trust surface | Server binary plus automatic manifest updates from herdr.dev (opt-out available) | No permission system; containerization advised; strict dependency pinning | None beyond your own dotfiles |
Note on the stars row: tmux predates GitHub stars culture and lives on its own infrastructure, so the number is omitted rather than invented. The honest reading of the two modern counts: pi is currently the far larger project; Herdr is the smaller, newer, faster-moving one (docs went 0.5.x to 0.8.2 within recent months).
One more landscape data point. Zellij (35,068 stars) is the other multiplexer people name in this conversation. Its core remains a general-purpose workspace - agent awareness arrives only through third-party plugins like zj-radar (31 stars, a sidebar showing Claude Code and Codex status) and zellij-claude-teams (40 stars, a tmux shim). Nothing agent-native is built in. Meanwhile Claude Code and Codex continue adding their own parallel-session features, which is the trend the HN asker leaned on - but those are per-vendor silos. Neither tells you anything about the other tool running in the next pane.
| Profile | Pick | Why |
|---|---|---|
| Solo dev, 2 agents, one repo, likes watching them work | pi alone, or pi in two tmux panes | Two terminals need no state authority. pi's session branching and model breadth are the actual upgrade here; a fleet layer is dead weight |
| Solo dev, 4 to 10 agents, several repos, tired of polling | Herdr | Rollups, named-target waits, and blocked detection replace a pile of capture-pane greps you would otherwise maintain forever |
| Fleet operator, 10+ agents, overnight runs, checking from anywhere | Herdr plus its integrations | Agents driving agents through the socket API, --until blocked waits for human-in-the-loop gates, remote thin-client attach, and third-party mobile clients are all aimed exactly at this |
| Already deep in pi | Stay - consider adding Herdr underneath | This is not a rivalry. Herdr's --kind list includes pi, its detection table gives pi lifecycle-hook authority and native session restore, so pi remains the brain while Herdr becomes the room |
| Already deep in tmux + scripts | Keep tmux; port waits selectively | Your glue works. Move completion detection to Herdr only when a silent misclassification or an overnight run costs you more than a dependency would |
The synthesis the HN thread missed: pi and Herdr compose because they attack opposite halves of the problem. pi makes one agent excellent and self-reporting; Herdr makes twenty heterogeneous agents legible. The asker's claim that pi "with plugins" ships Herdr's features is true only in the sense that TypeScript is Turing-complete - the extensions can express it, but you would be building, testing, and maintaining a private multiplexer. Whether that is worth avoiding depends entirely on fleet size.
If this piece were marketing, it would end above. It is not, so here is where Herdr loses, fairly stated:
idle, not blocked, until a manifest learns that screen shape. Misclassification affects visible status and waits, though the docs state it should not cause Herdr to send input or act destructively. pi's JSON/RPC modes, by contrast, report state from inside the process. Ground truth beats inference whenever both exist - Herdr's own hook system is an admission of this.[update] manifest_check = false) and it is detection rules rather than code execution, but a default network dependency for classification behavior deserves scrutiny, especially next to pi's aggressively pinned, shrinkwrapped supply chain.agent prompt --wait today is a bet on the project's trajectory - which is exactly what our earlier ecosystem analysis weighed.None of these kill the product. They define its honest boundary: Herdr wins when heterogeneity and scale make manual glue expensive, and loses when they do not.
Not directly. pi is a coding agent - one process driving one agent session across dozens of providers. Herdr is a multiplexer that hosts many agents in persistent panes and classifies their state. They overlap only in the phrase "agent harness." Herdr's own documentation treats pi as a supported resident: it can launch pi with --kind pi, read its lifecycle, and restore its sessions.
Functionally yes for agent fleets - detach, reattach, panes, and a ctrl+b prefix all work as tmux users expect. Literally no: Herdr documents running inside tmux as an outer environment, and tmux remains the right tool where ubiquity and stability matter more than agent awareness.
Yes, and unusually well. Herdr's agents table grants pi "lifecycle hooks when installed; otherwise screen manifest" authority with both state and session roles - the same tier as its Claude Code and Codex support. Running pi inside Herdr pairs pi's structured internals with Herdr's fleet view.
Ask HN user abeauvois asked whether Herdr is worth it given that Claude Code, Codex, and "pi (with plugins)" already implement per-tab agent multiplexing. The thread drew one notable reply joking that harnesses are the new web frameworks. Our verdict: the premise is half right - pi ships the pieces, not the product, and the per-vendor tab features in Claude Code and Codex do not span tools.
Only if you run agents from more than one vendor. Native tabbing is a silo: it knows about Claude Code sessions, not the Codex or Gemini CLI pane beside them. Herdr's entire value proposition is a uniform state vocabulary across heterogeneous agents.
Be everywhere and never surprise you. tmux is preinstalled or one command away on effectively every server, its behavior is frozen-solid and fully documented, and it carries no vendor network calls. If your scripted setup already handles completion detection acceptably, switching buys you polish, not capability.
Herdr is Apache-2.0 licensed on GitHub, distributed as a single Rust binary via curl script, Homebrew, mise, and Windows PowerShell. The docs and README list no pricing. pi is MIT licensed. tmux is ISC. All three are free.
All star counts, versions, and feature claims were fetched from the linked repositories and documentation on August 23, 2026, one day after the HN thread appeared. Both projects move quickly - treat anything time-sensitive here as a snapshot and check the sources table.
Part 1 of this series took apart Herdr's architecture pane by pane, Part 2 turned it into a working fleet setup, and our plugin ecosystem analysis measured what its YC-batch velocity actually proves. Read them together, then make the call the HN thread couldn't: the harness question is not which tool is best - it is how many agents you run before the glue you wrote yourself becomes the second job.
Read next
How Herdr went from an unnoticed solo project to 31,000 GitHub stars and Y Combinator: the architecture behind agent-aware terminals, and the orchestration gap it fills that tmux does not.
10 min readThe hands-on guide to running a fleet of coding agents on Herdr: verified install and config steps, three fleet patterns pulled from real projects, the extension ecosystem, and the gaps nobody advertises.
9 min readWithin weeks of going public, Herdr collected policy gates, OS-level agent surfaces, editor bridges, a plugin marketplace, and a YC acceptance letter. We measured the ecosystem layer to test what that velocity actually proves about where agent tooling lands next.
8 min readTechnical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
A hosted infinite canvas your headless AI agents drive over MCP. Any MCP-speaking agent - Claude Code, Codex, Cursor, or...
View ToolAnthropic's agentic coding CLI. Runs in your terminal, edits files autonomously, spawns sub-agents, and maintains memory...
View ToolOpen-source terminal agent runtime with approval modes, rollback snapshots, MCP servers, LSP diagnostics, and a headless...
View ToolThe TypeScript toolkit for building AI apps. Unified API across OpenAI, Anthropic, Google. Streaming, tool calling, stru...
View ToolDeep comparison of the top AI agent frameworks - LangGraph, CrewAI, Mastra, CopilotKit, AutoGen, and Claude Code.
AI AgentsConfigure Claude Code for maximum productivity -- CLAUDE.md, sub-agents, MCP servers, and autonomous workflows.
AI AgentsWhat MCP servers are, how they work, and how to build your own in 5 minutes.
AI Agents
Check out CopilotKit on GitHub at https://go.copilotkit.ai/copilotkit to view the demo + more featured in this video. While you're there, star their repository and support open source. Building...

Visit and star️ CopilotKit's GitHub repo https://go.copilotkit.ai/coagents for all the resources and examples you need to get started with CoAgents; Explore, at your own pace, the next...

How Herdr went from an unnoticed solo project to 31,000 GitHub stars and Y Combinator: the architecture behind agent-awa...

The hands-on guide to running a fleet of coding agents on Herdr: verified install and config steps, three fleet patterns...

Within weeks of going public, Herdr collected policy gates, OS-level agent surfaces, editor bridges, a plugin marketplac...

Four agents, same tasks. Honest trade-offs from a developer shipping production apps with all of them.

OpenClaw has 247K stars and zero MCPs. The best tools for AI agents aren't new protocols - they're the CLIs developers h...

How a one-developer protest against bloated coding harnesses became a 95,000-star agent toolkit: pi's five-package archi...

New tutorials, open-source projects, and deep dives on coding agents - delivered weekly.