Why You Need a “Multi-Agent Workbench”

The real pain only shows up after you’ve installed Claude Code, Codex, OpenCode, and Pi Agent: you have to keep flipping between multiple terminal panes just to know who’s working, who’s waiting for your approval, and who’s done. Stack a few windows on top of each other and their state is a black box; switch away mid-task and you’re afraid of missing some critical prompt from an Agent.

Herdr (GitHub) is built for exactly this scenario — it runs Agents in real terminal Panes and shows working / blocked / done status in the same interface, making multi-agent development truly observable, resumable, and schedulable. For its architecture, comparison with tmux / Zellij, installation, and single-Agent onboarding, see the earlier write-up: Herdr Terminal Workspace Manager: A Runtime Built for AI Coding Agents. This post focuses on the practical workflow of parallel multi-agent collaboration.

Herdr's product positioning: let a team of AI coding assistants truly collaborate — a control plane for coding agents

1. Concepts First: Workspace / Tab / Pane / Agent

Herdr has only four core concepts. Once you internalize this mapping table, the whole product makes sense:

Herdr Concept Maps to in a Code Project Quantity
Workspace The entire codebase A Herdr instance can host 1~N of them
Tab A specific task 1~N per Workspace
Pane An Agent session 1~N per Tab, split horizontally or vertically
Agent The intelligence running in the Pane (Codex / Pi / Claude Code…) One per Pane

So in Herdr’s default interface, the left sidebar is the Workspace + Agent status aggregate view, and the right side is the operation area:

Herdr default interface: spaces list on the left + Pane operation area on the right, with menu / agents / priority entries floating at the bottom

A single Tab can run multiple Panes simultaneously. In the image below: Pi Agent in the top-left, OpenAI Codex in the bottom-left, an empty terminal on the right — three real terminal processes running in parallel:

Pi and Codex running side-by-side in the same Tab; the Pane border automatically labels the current Agent name

Tip: Right-click a Pane border → Rename to give each Pane a recognizable name (e.g. Architect / UI / Logic / Test / Integrator). The sidebar will automatically group by name and sort by status (hollow = idle, yellow = running, red = blocked), so you can see everything across workspaces at a glance.

2. UI and Interaction: Friendly to Both Mouse and Keyboard

Herdr treats “mouse users” and “keyboard users” as first-class citizens — you never have to pick one.

2.1 The Mouse Can Do Everything

Create a Workspace, switch Tabs, split the screen, focus a Pane, resize borders, copy selected text — all doable with the mouse. Selecting text auto-copies it to the clipboard — no Ctrl+C needed. Ctrl + click opens links inside a Pane (supports OSC 8, http://, https://, including links truncated by newlines).

2.2 Keyboard Uses tmux-Style Prefixes

Vim users get a tmux-style Ctrl+B prefix:

Settings → Pane labels option to toggle Agent border labels

After pressing Ctrl+B to enter prefix mode, common actions:

Action Keybinding
Split vertically prefix + v
Split horizontally prefix + -
New Tab prefix + c
Next / previous Tab prefix + n / prefix + p
Workspace navigation prefix + w
New Workspace prefix + shift + n
Detach client prefix + q
View all bindings prefix + ?

Press prefix + ? to show the full keybindings cheatsheet

2.3 Status Indicators for a Global View

The dots in the sidebar are the soul of Herdr. Color meanings:

Status Color Meaning
idle Hollow circle Done / waiting, already viewed
working Solid yellow Currently running
blocked Solid red Needs your approval or an answer
done Solid green Done but you haven’t viewed it yet

In Settings → Indicators, you can also switch between solid / hollow / half-circle styles. Combined with Pane labels, you can instantly tell which Agent is waiting on you.

2.4 Integrations: First-Time Setup

Herdr doesn’t ship with status hooks for every Agent out of the box. The first time you launch a given Agent, go to Menu → Integrations, find the Agent with a + → click the plus → it auto-pulls and installs the corresponding plugin → the status turns green with a checkmark. After that, the sidebar can accurately surface blocked / done signals.

3. Two Killer Features: Session Persistence + Remote Sessions

3.1 Quit and Come Back — Conversations Don’t Get Lost

Herdr is a client-server architecture: Agents run in real terminal processes on the backend Server; the UI client is just a rendering layer. Press prefix + q to exit the client, and the Server and all Agents keep running. Next time you run herdr to reconnect, your original layout, status, and Panes are fully restored.

After a normal Pi Agent conversation, exiting Herdr and restarting — the original Pane and context are fully preserved

Note: After a server/machine reboot, Herdr will restore the layout, but the original processes don’t survive across reboots. Long-running tasks need the Agent’s own session-resume capability (Pi, Claude Code, etc. all support this).

3.2 Remote Sessions: One Window, Multiple Machines

1
herdr remote <user>@<host>

This command attaches a remote SSH host to the current Herdr instance, and any Agents running remotely get merged into the sidebar. Install any SSH client on your phone, connect, and the TUI adapts to the narrow screen — essentially a free phone-side monitor.

4. Hands-On Demo: 5 Agents Building a Subscription WebApp in Parallel

Here’s a complete multi-agent collaboration demo: the goal is to use 5 Agents in the same Workspace to build, in parallel, a subscription expense management WebApp.

4.1 Role Assignment

Agent Task Model
Architect Unify data structures, API contracts, test boundaries OpenAI Codex (gpt-5.5 high)
UI Agent Implement the interface and interactions Pi Agent
Logic Agent Implement data models, business logic, storage Pi Agent
Test Agent Write and run tests, cover core modules Pi Agent
Integrator Spin up the service, do end-to-end integration OpenAI Codex

The Workspace is split into two Tabs:

  • Tab 1 (Architecting): Architect + Integrator side by side
  • Tab 2 (Imp Team): UI / Logic / Test — three Panes in a horizontal/vertical layout

After right-clicking Rename on each Pane, the sidebar groups by name:

Demo starting point: Tab 1 is Architect + Integrator, Tab 2 is UI/Logic/Test, each Pane has a name label

4.2 Phase 1: Architect Lays Down the Protocol First

Key principle: Don’t let UI / Logic / Test start in parallel directly — you must first have the Architect produce a shared protocol (data schema, module boundaries, interface signatures, test boundaries). Otherwise three Agents will each do their own thing, and integration will inevitably fall apart.

In the Architect Pane, give this prompt:

You are an Architect Agent. We’re building a Web App to track subscription services and expenses. Based on my understanding of subscription apps, first unify the interface spec:

  • Data model: Subscription (name, price, currency, billing cycle, next charge date, auto-renew, notes)
  • APIs: list / add / edit / delete / stats
  • Storage: localStorage (array form)
  • UI components: subscription list, add/edit form, stats cards
  • Type file: types/subscription.ts, imported everywhere

Only produce the architecture contract document — no implementation code.

Once Architect is done, jump to the Imp Team Tab and have UI / Logic / Test start parallel implementation against the same contract.

4.3 Phase 2: UI / Logic / Test in Parallel

All three Panes start simultaneously. While running, each Pane’s indicator color:

Three Panes in Tab 2 running simultaneously: UI writing the form, Logic writing the data model, Test writing test cases

Small detail: Architect / Integrator use a left-right split, so the full prompt is directly visible; UI / Logic / Test are stacked vertically with tight vertical space per Pane — Pi Agent automatically collapses the prompt into a summary view — this is Pi’s “paste-collapse” feature, not Herdr truncating it.

A few red blocked states will pop up along the way (needing your nod or a choice):

  • Logic Agent asks whether the currency field should be restricted to ISO 4217
  • UI Agent asks about form field ordering
  • Test Agent asks how test fixtures should be generated

Recommended handling: default to the Agent’s recommended option for all of them. Don’t over-intervene — otherwise you’ll single-handedly drag down the parallel efficiency.

After watching for a while, the three Agents have each completed their core modules:

UI Agent outputs React/Vue form components, Logic Agent outputs the localStorage wrapper, Test Agent outputs Vitest cases

4.4 Phase 3: Integrator Does End-to-End Integration

Switch to the Integrator Pane in Tab 1 and give a “consolidate per the shared contract” prompt:

Integrate the code from the three Agents into a runnable WebApp: install dependencies, npm run build, start http-server on 8000, run all tests, and curl / and /api/stats to verify.

Integrator will run, in order: install dependencies → build → start service → run tests → self-check. It may still trigger red blocked along the way (e.g. npm install -g http-server needs permission) — just let it through as usual.

4.5 Final Result

After successful integration, open http://localhost:8000 in the browser and you’ll see this WebApp:

Final subscription management WebApp: three stats cards on top (monthly spend / annual cost / upcoming charges), a new-entry form on the left, the full subscription list on the right, rows due within 3 days highlighted in orange

Feature list (verified working):

  • Add subscription: name, price, currency, billing cycle, next charge date, auto-renew, notes
  • Edit / delete subscriptions
  • Auto-aggregated stats: monthly spend, annual cost, upcoming charges within 3 days
  • Rows due within 3 days highlighted in orange
  • Data persisted to localStorage

The whole flow from “writing prompts” to “running” — 5 Agents working in parallel — and a single human just makes decisions and approves blocked steps.

5. Four Lessons for Reusing This Collaboration Pattern

5.1 Architect First, Then Parallel, Then Integrator

This is the key. Going straight to three parallel implementation Agents without an Architect will cause naming conflicts, mismatched interfaces, and tests failing on edge cases at integration 90% of the time. The Architect’s output is the contract for the other three.

5.2 Pane Name = Team Role

Don’t let Agents guess their role. Explicitly name each Pane Architect / UI / Logic / Test / Integrator. The sidebar auto-aggregates by role, and you can see the team setup across Tabs at a glance.

5.3 Write Prompts Like Contracts, Not Requirements

In parallel scenarios, the more a prompt looks like a contract, the better:

  • Data schema: pin down field names in a TypeScript interface
  • Interface signatures: give function name + parameter types + return type
  • Test boundaries: list “these scenarios must be covered”
  • No implementation: let the Agent figure it out

5.4 For Red Blocked: “Prefer the Recommendation, Intervene When Needed”

During parallel work, lots of “Do you want to do it this way?” prompts show up. Default to the Agent’s recommended approach, and only step in when:

  • It involves external destructive operations (delete files, install global packages, restart services)
  • The security policy the Agent proposes doesn’t match your expectations
  • Multiple Agents’ approaches conflict (this is the signal that Architect didn’t do its job)

6. What Real Pain Points Does This Solve

Compare it to the everyday multi-agent development pain:

Pain Point Without Herdr With Herdr
Who’s waiting for you Flip through four windows to scan A red “blocked” in the sidebar is instantly visible
SSH disconnect / terminal close Long-running task is dead prefix + q, then reconnect and continue
Projects on multiple machines Open separate terminal sets per machine One window + herdr remote
Checking from your phone Impossible Any SSH client + TUI
Coordination between Agents Manually copy results around Socket API (see Herdr architecture article)

If you’re running ≥2 AI coding agents at the same time, Herdr is almost a must-install. Pi Agent users can additionally install the pi-herdr-agents extension, which lets an Agent directly use the socket API to spawn other Panes — multi-agent orchestration now has a native runtime foundation.


One command to install, ten minutes to get going, five teammates working in parallel. Give yourself a week after installing — odds are you won’t go back.

Website: herdr.dev · Docs: herdr.dev/docs · Chinese Quick Start: herdr.dev/zh-cn/docs/quick-start · Repo: github.com/herdrdev/herdr