Herdr is the background runtime: it owns terminal processes, workspaces, and agent status, and keeps terminals running when a client closes or an SSH connection drops. Herdr GPUI is a separate, unaffiliated Rust/GPUI desktop client that attaches to a Herdr daemon; on macOS and Windows it adds browser tabs beside the daemon's terminal tabs and routes preview feedback back to agents.
Key facts about Herdr and Herdr GPUI
- The
herdrdev/herdrrepository is Apache-2.0 licensed and had 42,490 GitHub stars when checked on 2026-10-06. - Herdr v0.9.3 was published on 2026-09-29 at 19:29 UTC. It was a hotfix for terminal Escape-sequence shortcuts after v0.9.2.
- Herdr v0.9.2 was published on 2026-09-29 at 13:19 UTC. It added agent-reported resume commands, workspace-grouped navigation, and other session controls.
- The unaffiliated
penso/herdr-gpuiproject is an Apache-2.0 Rust/GPUI client with 891 GitHub stars on 2026-10-06. - Herdr GPUI v20261005.1 was published on 2026-10-05 at 07:46 UTC. Its release notes list listening-port detection, SSH-tunnelled remote previews, turn checkpoints, and prompt fan-out.
- Herdr panes are terminals. Herdr GPUI browser tabs are client-side: macOS uses WebKit, Windows uses WebView2, and Linux opens pages in the system browser instead of embedding them.
How Herdr manages terminal agent sessions
Herdr owns terminal processes, split layouts, workspaces, and the status shown for each agent pane. Closing the client or losing an SSH connection does not stop the terminals. A server or machine restart is different: Herdr restores saved layout, and agents that registered a resume command can reopen their session. The original terminal processes do not survive the restart.
Herdr classifies panes as working, blocked, or idle. Agents can use the CLI and socket API to create panes, prompt other agents, and wait for a pane that needs a human answer.
# Prompt an agent in a known Herdr pane
herdr agent prompt w46:p1 "Review the test results in artifacts/logs/"Herdr v0.9.2 made resume state agent-reported rather than tied to a built-in integration. An agent must provide its resume command before Herdr can reopen that session after a restart. Herdr v0.9.3 then fixed terminal shortcuts that send Escape followed by another key, including word navigation on macOS and Escape-based Shift+Enter in Claude Code.
How Herdr GPUI embeds browser tabs
Herdr's daemon and terminal clients do not own browser tabs. Herdr GPUI keeps the browser state in the desktop client, alongside the workspace's Herdr tabs, and saves it in $XDG_STATE_HOME/herdr/gpui/browser-tabs.json. The client draws terminal cells from the daemon over its client socket, while browser pages stay in the GPUI window.
The browser implementation differs by platform. macOS uses WebKit web views and Windows uses WebView2. The project documentation says Linux has no embedded pages: a browser request opens the system browser, and local-file previews and annotations are unavailable there. The Windows build is described as experimental in the project README.
Herdr GPUI v20261005.1 also added a way to find listening ports owned by a workspace and open them in a browser tab. A remote port bound only to loopback can be reached through an SSH tunnel. The same release added turn checkpoints and a way to fan out one prompt to several agents.
How Herdr GPUI sends browser feedback to agents
An agent running in a Herdr pane gets HERDR_ENV=1, HERDR_WORKSPACE_ID, and HERDR_PANE_ID. The companion browser skill uses those values to place a page in the caller's workspace and remember which pane should receive notes.
herdr-gpui browser open ./mockup.html
herdr-gpui browser open --no-focus http://localhost:3000
herdr-gpui browser reload
herdr-gpui browser feedback --wait 600The commands talk to $XDG_STATE_HOME/herdr/gpui/control.sock. A local HTML file is served through the private herdr-preview: scheme. Only the file's directory is available; parent directories, hidden files, and foreign origins are refused, and the file is read again when the agent reloads the tab.
In a browser tab, Annotate lets a reviewer pick an element, select text, or draw a region. On macOS, WebKit captures a screenshot of each pick and stores it under $XDG_STATE_HOME/herdr/gpui/annotations/; Windows notes do not include screenshots. Send to agent combines the page, selector or region, text, HTML snippet, screenshot when available, and reviewer note into one prompt. An agent waiting on browser feedback --wait receives it there. Otherwise Herdr submits the note when the agent's pane is idle, or after two minutes if the agent is still working.
This division matters when reviewing an agent's work. Herdr keeps the process and terminal session alive. Herdr GPUI supplies the visual page, local preview boundary, and the path from a human annotation back to the agent. On Linux, that visual loop stops at the system browser because embedded pages and annotations are not implemented.
Sources
- Herdr repository metadata, including Apache License 2.0 and 42,490 stars: https://api.github.com/repos/herdrdev/herdr (read 2026-10-06)
- Herdr runtime, disconnect, restart, status, CLI, and socket behavior: https://github.com/herdrdev/herdr (read 2026-10-06)
- Herdr v0.9.3 release date and Escape-sequence hotfix: https://github.com/herdrdev/herdr/releases/tag/v0.9.3 (read 2026-10-06)
- Herdr v0.9.2 release date and resume-command changes: https://api.github.com/repos/herdrdev/herdr/releases/tags/v0.9.2 (read 2026-10-06)
- Herdr v0.9.2 release notes: https://github.com/herdrdev/herdr/releases/tag/v0.9.2 (read 2026-10-06)
- Herdr GPUI repository, Rust/GPUI description, and unaffiliated-project notice: https://github.com/penso/herdr-gpui (read 2026-10-06)
- Herdr GPUI repository metadata, including Apache License 2.0 and 891 stars: https://api.github.com/repos/penso/herdr-gpui (read 2026-10-06)
- Herdr GPUI v20261005.1 release date and feature list: https://github.com/penso/herdr-gpui/releases/tag/v20261005.1 (read 2026-10-06)
- Herdr GPUI daemon connection, browser-tab ownership, platform support, and saved browser state: https://github.com/penso/herdr-gpui/blob/main/crates/herdr-gpui/README.md (read 2026-10-06)
- Herdr GPUI browser commands, control socket, and feedback delivery: https://github.com/penso/herdr-gpui/blob/main/skills/herdr-gpui-browser/SKILL.md (read 2026-10-06)
Last verified: 2026-10-06.