Back to Catalog
herdrdev GitHub avatar

herdr

A terminal UI application for managing coding agents and sessions

Demo

Terminal preview
herdr

Overview

Herdr is a terminal multiplexer for managing workspaces, tabs, and split panes from the keyboard.

A Ctrl + B prefix drives layout changes, pane focus, sidebar access, and session detach without leaving the terminal.

the runtime your coding agents live on

Keyboard Shortcuts

Open a new tabCtrl + B, C
Split the current pane verticallyCtrl + B, V
Split the current pane horizontallyCtrl + B, -
Open the workspace pickerCtrl + B, W
Toggle the sidebarCtrl + B, B
Move focus between panesCtrl + B, H / J / K / L
Detach from the sessionCtrl + B, Q

Latest Release

v0.9.0
Released: Sep 7, 2026

Added

  • Manage Local and saved SSH machines from one Herdr window, with a combined agent list, machine-scoped navigation, notifications, and automatic reconnects. Add and manage connections with herdr machine; a disconnected machine does not interrupt the others. (#3670)
  • Multiple clients can now view different workspaces and tabs independently. Different tabs fit their viewing clients; when clients share a tab, the last one to interact with it controls its size. (#3526)
  • Added Muse agent detection for idle, working, approval, and question states. (#2489, thanks @ohk)
  • Sidebar text and metadata tokens can now change color, boldness, and dimming based on their values, using ordered text or numeric rules. (#3693)
  • Custom themes can now define separate light and dark color overrides when automatic theme switching is enabled. (#2324, thanks @aneym)
  • ui.pane_borders = "always" can now frame a single pane when outer borders are enabled. "auto" keeps split-only borders, "off" hides them, and existing boolean values keep working. (#3234, thanks @rsmdt)

Changed

  • Client updates can now leave compatible servers and their running agents untouched. Missing server features disable only the affected action instead of preventing connection. Servers older than endpoint generation 1 need a one-time upgrade. Replacing a remote server asks before stopping its pane processes, with No as the default answer; experimental handoff remains opt-in. (#3509)
  • The terminal UI now runs in each client, reducing redraw work in busy multi-client sessions and keeping themes, menus, copy mode, and other presentation settings local to the viewing machine. (#3487)
  • Idle terminal scrollback now uses less memory without reducing retained history or changing reads and resizing. (#3556)
  • Pane images and the graphics API are now enabled by default in compatible terminals. Set terminal.kitty_graphics = false to disable them; the old experimental.kitty_graphics setting remains accepted.
  • Closing a primary workspace with open worktree workspaces now requires explicit group intent: workspace close --group or workspace.close with close_group: true. Otherwise the whole group stays open. (#2874)
  • New lifecycle event subscriptions now start with live events rather than replaying retained history. API clients should subscribe before taking their initial snapshot to avoid missing changes. (#1270)

Fixed

  • Mouse selections now stay visible and copyable while terminal output continues, including with automatic copying disabled. Ctrl+C and Cmd+C copy a selection even before a delayed mouse release, and a failed copy no longer interrupts the agent. Selection highlights also remain visible when host colors are unavailable. (#3100, #2708, #3684, thanks @moret and @Pimpmuckl)
  • Wayland clipboard copies no longer freeze Herdr while wl-copy serves the selection. (#3014)
  • Live handoff now preserves mouse forwarding for running pane applications. (#3000, thanks @xkrogen)
  • Interrupted pane exits during host shutdown no longer replace the saved session with an empty session or a new default workspace. (#3415)
  • SSH clients whose terminal disappears now detach instead of resizing running panes to a fallback size and triggering expensive history reflow. (#3519)
  • Focusing a workspace now scrolls the sidebar to keep it visible. (#3554)
  • Removing a background worktree workspace no longer changes focus to its parent. Windows worktrees can also be removed while their agent panes are running, without a replacement shell locking the checkout again. (#3098, #3532)
  • Worktree commands can now trust a verified repository for one request with --trust-repository, including accessible Windows repositories owned by another SID, without changing global Git configuration. (#3044)
  • Oversized Kitty images no longer prevent smaller images from appearing, and image replacements no longer redraw or disappear one row at a time. Direct graphics stay bound to the client that owns them. (#3033, #3166, #3549, thanks @kataokatsuki)
  • Pixel mouse coordinates remain correct when pane applications reassert SGR mouse reporting. (#3295)
  • Prefix bindings such as prefix+| now recognize characters produced by macOS Option and custom keyboard layouts, while exact chords keep priority. Arrow navigation also works when terminals such as Alacritty attach text to special-key reports. (#3079, #3328, thanks @vlcinsky)
  • Direct terminal attaches now honor ui.mouse_capture and preserve multiline pastes as one paste instead of submitting each line separately. (#2992, #3054)
  • agent prompt now reliably sends the prompt and Enter before reporting successful submission. With --wait, prompts sent to a non-working agent require observed working or blocked activity, so unrelated state changes cannot complete the wait. Pending submissions fail cleanly if the terminal exits. (#3506, #3685)
  • Long Codex prompts on Windows now wait long enough for the text to arrive be

Related TUIs

Discussions

0 comments
Loading comments...
Alvin By Alvin