github herdrdev/herdr v0.8.2

latest release: preview-2026-08-19-b5c4a0176e91
5 hours ago

Added

  • CLI help now points coding agents to Herdr's plain-text guide, documentation index, and built-in control skill.
  • Added Qwen Code detection for idle, working, and user-confirmation states, plus optional native session restore. (#2730, #2743)
  • Herdr now keeps the outer terminal window title in sync with the session through ui.window_title, so window managers and terminal tab bars show the active workspace and the host the panes actually run on. (#2627, thanks @dhh)
  • The desktop tab bar now has configurable right-aligned status entries for zoom state, hostname, date/time, literal text, and asynchronously refreshed command output.
  • Optional keys.move_tab_previous and keys.move_tab_next bindings now reorder the active tab in place, wrapping at either end. (#2561, thanks @dhh)
  • Optional keys.resize_pane_left, keys.resize_pane_down, keys.resize_pane_up, and keys.resize_pane_right bindings now resize the focused pane in one keystroke without entering resize mode. (#2558, thanks @dhh)
  • Windows clients can now use herdr --remote to attach to Herdr servers on Linux and macOS. (#2329)
  • Cursor Agent CLI, MastraCode, Hermes Agent, and Grok CLI integrations now install and run natively on Windows.
  • Panes can now route normal right-click gestures to mouse-reporting applications through the pane menu, herdr pane input, pane.input.set, or the pane split --right-click pane launch option.
  • ui.pane_outer_borders can now keep or hide the outside edges of split-pane borders independently from internal dividers. (#2535, thanks @dhh)
  • theme.custom.sidebar_bg can now give the desktop sidebar its own background without changing built-in theme defaults.
  • Settings and ui.status_indicators = "symbols" can now use distinct static shapes for blocked, working, done, idle, and unknown agent states. (#2260)
  • Navigate-mode selection rows now use a dedicated per-theme cursor color, customizable via theme.custom.selection_bg, so the cursor stays distinguishable from the active Space and Agent highlight.
  • Copy mode now supports B, E, and W motions over whitespace-delimited big words. (#2270, thanks @jplew)
  • The plugin marketplace now discovers valid manifests at repository roots and subdirectories, groups multiple plugins under each repository, and publishes their versions and exact default-branch commits.

Changed

  • Windows support is now generally available through stable releases and uses the stable update channel by default. Existing preview installs stay on preview until explicitly switched.
  • Headless servers now use a configurable 120×40 virtual terminal instead of 80×24 when no client is attached, giving newly created panes a practical default size. (#2828)
  • Desktop tab labels are now centered in their tabs, so the active-tab highlight has symmetric padding. (#2570, thanks @dhh)
  • Experimental pane graphics now support bounded named layers, acknowledged full-RGBA primary-layer direct file frames on audited local terminals, owned BGRA fallback, exact pixel mouse input, and placement-only resize replay.

Fixed

  • Unix CLI commands now exit quietly when a downstream pipe closes instead of panicking with exit 101. (#2994)
  • The terminal theme now keeps the active Space row fill visible when the Navigate cursor lands on it, in both expanded and collapsed sidebars. (#2987)
  • Busy multi-pane sessions now avoid redundant hidden-pane wakeups and full terminal-state formatting in pane-scaled paths, preventing CPU regressions from high-rate background output, scrollbars, and enhanced keyboard modes. (#2550, #2901, #2962)
  • Chinese IME commits now reach panes on macOS when the focused application requests printable key-release events. (#2924)
  • Windows now recognizes Ctrl+1 through Ctrl+9 keybindings instead of decoding those key records as control characters. (#2910)
  • PowerShell panes now keep their process-reported working directory synchronized with the shell's logical location. (#2879, thanks @Pimpmuckl)
  • Foreground typing no longer waits behind render cadence consumed by output from panes in hidden tabs. (#2890)
  • The Windows ARM64 installer now waits for x64 emulation to release the verified executable before activating the downloaded release. (#2916)
  • On Unix, Ctrl-click URL openers are now reaped after they exit, preventing defunct child processes from accumulating on long-running servers. (#2903)
  • Windows updates now reuse only verified local packages, avoiding security-tool download blocks while preserving checksum validation. (#2751, #2816, thanks @Pimpmuckl)
  • Herdr no longer sends the full OSC 4 palette query burst under WSL, preventing reply fragments from leaking into the shell through ConPTY. (#2440)
  • Qwen Code panes now use locale-independent terminal-title states and localized confirmation fallbacks, preventing active or blocked turns from appearing idle. (#2756)
  • Claude Code panes now recognize and strip every half-circle title spinner frame, preventing active turns from appearing idle and keeping titles clean. (#2707, #2709, #2760, #2762)
  • Copilot prompts now focus the target pane before sending input, so background panes do not silently drop prompts. (#1698, #2734, thanks @xkrogen)
  • Agent hooks now invoke the running Herdr binary instead of whichever binary appears first on PATH. (#2722, thanks @Pimpmuckl)
  • Closing a terminal running herdr --remote no longer produces a local client core dump while the remote session stays alive. (#2424)
  • Active Space and Agent rows now use dedicated theme colors that remain visible when the host terminal background matches the selected Herdr theme. (#2792)
  • agent prompt now rejects agents already waiting at approval or question dialogs with agent_blocked, without sending text or Enter. (#2788)
  • agent start now waits for new pane shells and first-run agent prompts to become ready instead of racing them or reporting premature readiness. (#2410, #2537, #2773, #2774, thanks @Pimpmuckl)
  • prefix+e now preserves logical lines when opening soft-wrapped scrollback in an editor. (#2733)
  • Alternate-screen pane reads avoid unnecessary ANSI formatting work, reducing read latency for TUI agents. (#2387, #2426)
  • Tab bar clicks are now properly registered when using Ghostty in native fullscreen. (#796, #2736, thanks @HackAttack)
  • Prefix keybindings now disambiguate layout-aware shifted punctuation, so a shifted \ no longer triggers prefix+| on keyboard layouts where the same key produces both characters. (#2674)
  • Remote clients now continue redrawing at very large terminal sizes instead of freezing when a full ANSI frame exceeds the transport limit. (#2670)
  • Windows Git status refreshes now reuse repository configuration instead of repeatedly triggering security scans for WSL repositories. (#2643, #2688, thanks @Pimpmuckl)
  • Windows idle agent detection now shares process snapshots across panes, reducing CPU use in sessions with many Git Bash panes. (#2459, #2494, #2642, #2651, thanks @Pimpmuckl)
  • Embedded bare repositories now derive the correct repository name and worktree location. (#2657, #2660)
  • Root-repository workspaces now retain their saved labels across update restarts. (#2594, #2727)
  • Elevated Windows panes no longer expose PowerShell's administrator decoration as the terminal title. (#2632, thanks @Pimpmuckl)
  • Modal name inputs now anchor the host IME cursor to the text field instead of the pane behind the dialog. (#1755, #2569, thanks @kataokatsuki)
  • Session Navigator movement ignores modified j, k, and arrow keys instead of consuming unrelated pane input. (#1981, #2377, thanks @atomsbaza)
  • OpenCode panes now track the root conversation selected in their own TUI for native restore without adopting activity from attached clients. (#2450)
  • Server stop requests now bypass pane and API traffic, preventing busy sessions from blocking shutdown or admitting a client while shutdown is pending. (#2612)
  • Fish Ctrl+Alt keybindings now work in panes after legacy Alt-prefixed control bytes are decoded with both modifiers. (#2514)
  • Windows recent-history reads no longer perform redundant snapshots, restoring recent output while reducing read cost. (#962, #2474, thanks @Pimpmuckl)
  • The Windows installer now activates releases with an atomic directory swap, preventing interrupted updates from leaving an empty release directory. (#2356, #2530, thanks @Pimpmuckl)
  • herdr config check now reports unknown built-in theme names instead of silently accepting them. (#2452)
  • macOS herdr --remote clients now keep the accepted bridge socket blocking, preventing an immediate disconnect after the protocol handshake. (#2478, thanks @mathijshenquet)
  • Prefix keybindings now preserve Shift in WezTerm Kitty keyboard mode, so commands such as config reload no longer trigger their unshifted action. (#2435)
  • Pane applications now receive modifyOtherKeys releases and shifted alternate reports without dropped releases or leaked Ctrl+Tab sequences. (#2296, #2302, #2303)
  • Detaching now restores host keyboard reporting, preventing enhanced keyboard sequences from leaking into the shell after Herdr exits. (#2393, #2395)
  • Default mouse reports are decoded instead of leaking escape bytes into the focused pane. (#2309, #2312)
  • BEL characters emitted by pane programs now reach the outer terminal so its audible and visual bell settings can react. (#2453)
  • Stable direct installs, self-updates, and remote helper downloads now require and verify the SHA-256 digest published for each GitHub release asset.
  • pane read and pane wait-output now accept --flag=value and options before or after the pane ID. (#2183, thanks @KyleCo76)
  • pane current, pane get, and pane layout --current now resolve the calling pane instead of another client's focused pane. (#2297, #2298)
  • Configs containing the retired Herdr-written ui.agent_panel_scope setting no longer report it as an unknown key after upgrades. (#2292)
  • Claude Code confirmation prompts using Enter to confirm · Esc to cancel now report blocked instead of idle. (#2268)
  • Kiro CLI prompts now have positive idle detection instead of remaining in an unknown state. (#2301, thanks @smileynet)
  • Cursor's Run Everything footer no longer produces a false blocked state. (#1763, #2220, thanks @Nagi-ovo)
  • Versioned Python agent wrappers such as python3.13 are now detected. (#2188, thanks @plarson)
  • Pi state reporting now ignores RPC, JSON, and print-mode helper processes that are not interactive TUI sessions. (#2159, thanks @rhjoh)
  • Collapsed workspace and Agent rows keep their status and active indicators visible, including with ten or more workspaces. (#2216, #2239, #2382, thanks @ianks)
  • Sidebar agent lists keep scrolling when differently sized clients are attached to the same session. (#2255, thanks @aiworkflowpro)
  • The Session Navigator now searches renamed single-tab labels. (#2320)
  • New splits return focus to the pane they were opened from. (#2266, thanks @jondkinney)
  • Halfwidth Katakana voiced and semi-voiced marks now render in the correct cell. (#2257, thanks @kazunari-kamata)
  • Ctrl-clicking a URL no longer forwards its release after the browser takes host focus, preventing duplicate tabs. (#2290, #2291, thanks @kataokatsuki)
  • OSC 4 palette overrides now render with the requested color instead of forwarding the palette index. (#2162, thanks @hamidi-dev)
  • Host terminal appearance is re-queried when focus returns, keeping automatic light and dark themes current. (#2416, #2417)
  • The bundled and installable Herdr agent skill now matches this stable release's CLI and lifecycle behavior. (#2847)
  • pane send-keys and agent send-keys now preserve Shift when sending shift+tab, allowing agent permission modes to be cycled programmatically. (#1561, thanks @keinstn and @tomohisa)

Don't miss a new herdr release

NewReleases is sending notifications on new releases.