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.


A native client for Herdr, written in Rust on Zeron's GPUI shell
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.

Not in the exe, on demand: code highlighting for 25 languages is a separate download you pick per language.
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 do | Herdr | HerdrGUI |
|---|---|---|
| Read what the agent didA conversation built from the agent's own log: thinking, tool calls and text, followed live. | ![]() ![]() |
![]() ![]() |
| Answer a blocked agentA waiting-for-you card with the last screen lines and an answer box. The sidebar dot turns yellow. | ![]() ![]() |
![]() ![]() |
| Split a paneThe new pane is drawn at once, then evened out. Neighbours share one draggable divider. | ![]() ![]() |
![]() ![]() |
| Start an agentPick a project, CLI, model and thinking level in the composer; the first message starts it. | ![]() ![]() |
![]() ![]() |
| Move things aroundDrag tabs to reorder, drag panes across tabs and workspaces, drop a file to type its path. | ![]() ![]() |
![]() ![]() |
Five things a terminal can't draw.
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.


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.


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.


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


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.


Everything Herdr does with workspaces, tabs, panes and agents, walked from the outside in.
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.
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.
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.
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.
The same cells, rendered natively: selection and copy, mouse forwarding, wheel, IME and CJK input, clickable links.
An honest list. It is also why Herdr stays a separate install.
| SSH and multiple machines | The next milestone. Saved machines are listed; connecting isn't built. |
|---|---|
| Multiple named sessions | One session per window today. |
| Herdr's key surface | Prefix key, navigate mode, hjkl. Zeron shortcuts, Ctrl+K and Ctrl+. cover the common cases. |
| Kitty graphics | Not rendered in panes or transcripts. |
| Named agents | Messaging by @ chip exists; no UI for stable names. |
| Transcript depth | Subagent nesting, branch trees, token streaming, images and diffs. Readers are message-granular and text-first. |
Bugs, rough edges and ideas are welcome. The repository link goes here once it is public.