HerdrGUI

A native client for Herdr, written in Rust on Zeron's GPUI shell

Herdr owns the agents.
HerdrGUI gives them a face.

Same session, two faces. Your agents keep running in Herdr whether you watch them through its TUI or through this window. The GUI never owns a process: it speaks Herdr's own socket protocol, and reads each agent's own on-disk log as a structured conversation.

Built on Zeron, so it keeps its fine design and super-smooth feel: every pane, tab and drag glides. And it is Rust all the way down, so it is genuinely fast.

Requires Herdr. It is not bundled; HerdrGUI offers Herdr's installer when it can't find it, and starts herdr server when none answers. One exe, no installer, local only.

HerdrGUI on a demo Herdr session: two workspaces in the sidebar, a finished agent transcript on the left, a blocked agent's waiting card in the middle and a terminal pane on the rightHerdrGUI (light theme) on a demo Herdr session: two workspaces in the sidebar, a finished agent transcript on the left, a blocked agent's waiting card in the middle and a terminal pane on the right
Rustnative and fast, no web view
One exeabout 23 MiB, no installer
Local onlyno cloud, no accounts
~1.9 scold start
Windows x64macOS and Linux untested

Not in the exe, on demand: code highlighting for 25 languages is a separate download you pick per language.

One session, two faces

The same session, attached by both clients at once. Herdr shows cells; HerdrGUI renders the same cells natively and, where an agent leaves a log, a conversation next to them.

What you doHerdrHerdrGUI
Read what the agent didA conversation built from the agent's own log: thinking, tool calls and text, followed live.
Herdr TUI: the agent pane as the raw terminal screen of the /healthz task, still workingHerdr TUI: the agent pane as the raw terminal screen of the /healthz task, still working
HerdrGUI: the same pane as a structured conversation: the user's message, a thought-process group with the file edits and commands, the reply, and a Working timerHerdrGUI (light theme): the same pane as a structured conversation — user message, thought process, file edits and the agent's reply
Answer a blocked agentA waiting-for-you card with the last screen lines and an answer box. The sidebar dot turns yellow.
Herdr TUI: the blocked agent's approval prompt as plain terminal textHerdr TUI: the blocked agent's approval prompt as plain terminal text
HerdrGUI: the same blocked agent: the pending command, a Question row and a waiting-for-input card with the prompt's last lines and an answer boxHerdrGUI (light theme): the same blocked agent with a waiting-for-input card, last screen lines and an answer box
Split a paneThe new pane is drawn at once, then evened out. Neighbours share one draggable divider.
Herdr TUI: the shell pane split in two, the new empty pane on the rightHerdr TUI: the shell pane split in two, the new empty pane on the right
HerdrGUI: the same split, the fresh pane drawn at once with its own composerHerdrGUI (light theme): the same split, the fresh pane drawn at once with its own composer
Start an agentPick a project, CLI, model and thinking level in the composer; the first message starts it.
Herdr TUI: a shell pane where you type the CLI command yourselfHerdr TUI: a shell pane where you type the CLI command yourself
HerdrGUI: a new pane is a shell plus a composer with a model chip and send buttonHerdrGUI (light theme): a new pane is a shell plus a composer with a model chip and send button
Move things aroundDrag tabs to reorder, drag panes across tabs and workspaces, drop a file to type its path.
Herdr TUI: the tab strip after moving the review tab in front of backendHerdr TUI: the tab strip after moving the review tab in front of backend
HerdrGUI: the same reorder: review first, backend second, in the title bar's tab stripHerdrGUI (light theme): the same reorder — review sits first with its two panes, backend second with three

Both clients attach to the same session at the same time, live both ways. A pane with no readable log still shows its terminal; nothing is made up.

What only the GUI does

Five things a terminal can't draw.

01

Structured transcripts

Each agent's own log, rendered as a conversation: thinking, tool calls and text, followed live as the log is written. Not a screen scrape, so scrolling, searching and copying work like text.

Codex · Pi · opencode · Devin1

Transcript close-up: user message card, thought process, file edits and the agent's reply rendered as a conversationTranscript close-up: user message card, thought process, file edits and the agent's reply rendered as a conversation
02

Waiting for you

When an agent blocks, a card embeds the last 12 screen lines with an answer box, the sidebar dot turns yellow and a chime plays. Ctrl+. jumps to the next agent waiting for you.

The waiting-for-you card: the blocked agent's question, its last screen lines, and an answer boxThe waiting-for-you card: the blocked agent's question, its last screen lines, and an answer box
03

A real model picker

Each CLI's own model list and thinking levels in the composer. A new pane is only a shell with its composer; your first message starts the CLI you picked, with exactly that model.

The model picker open in the composer: model list, reasoning level and service tierThe model picker open in the composer: model list, reasoning level and service tier
04

Files panel

A browsable file tree from disk with a live watch, beside the conversation. Herdr has no file API at all.

The files panel: workspace file tree beside the conversationThe files panel: workspace file tree beside the conversation
05

Conversation or terminal, in place

Switch any pane between its conversation and the real terminal, in the same spot, and back again whenever you like. Nothing restarts; it is the same process.

The same pane twice: conversation view on the left, the real terminal on the rightThe same pane twice: conversation view on the left, the real terminal on the right

Find out more: every GUI-only feature

Same capability, refined

Everything Herdr does with workspaces, tabs, panes and agents, walked from the outside in.

  1. Workspace

    A persistent sidebar in tree or two-line style, status dots per workspace, folder-named workspaces. Repositories group their worktrees; create or open existing ones from the menu.

  2. Tab

    A title-bar strip: drag to reorder, close, pane count pill. Tabs switch instantly, and a new tab draws its placeholder at once instead of a blank while Herdr builds it.

  3. Pane

    A split draws the new pane immediately, then evens out. Neighbours share one draggable divider. Drag a pane across tabs and workspaces, or onto another pane to swap. A right-click menu covers split, zoom, rename, move and close.

  4. Agent

    An agents list with CLI logo, status dot and working timer, across all workspaces. Start one from "+": project, then CLI, then the first message starts it. @pane message chips send text to other panes.

  5. Terminal

    The same cells, rendered natively: selection and copy, mouse forwarding, wheel, IME and CJK input, clickable links.

The status bar at the foot of the sidebar tells you whether Herdr is running, and offers its update and your app's update in one click.

What Herdr does that we don't (yet)

An honest list. It is also why Herdr stays a separate install.

On the roadmap

SSH and multiple machinesThe next milestone. Saved machines are listed; connecting isn't built.
Multiple named sessionsOne session per window today.
Herdr's key surfacePrefix key, navigate mode, hjkl. Zeron shortcuts, Ctrl+K and Ctrl+. cover the common cases.
Kitty graphicsNot rendered in panes or transcripts.
Named agentsMessaging by @ chip exists; no UI for stable names.
Transcript depthSubagent nesting, branch trees, token streaming, images and diffs. Readers are message-granular and text-first.

Decided out

  • Plugin system and marketplace.
  • Screen-scraping agent detection. The GUI reads the agents' own logs instead.
  • Popup surfaces, which add little in a GUI.

Be aware

  • HerdrGUI needs Herdr installed.
  • 1 Transcript readers verified live: Codex, Pi, opencode, Devin. Claude, Cursor and Grok readers are included but unverified.

Feedback

Bugs, rough edges and ideas are welcome. The repository link goes here once it is public.