Releases: herdrdev/herdr
Release list
v0.8.2
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_previousandkeys.move_tab_nextbindings 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, andkeys.resize_pane_rightbindings now resize the focused pane in one keystroke without entering resize mode. (#2558, thanks @dhh) - Windows clients can now use
herdr --remoteto 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 thepane split --right-click panelaunch option. ui.pane_outer_borderscan now keep or hide the outside edges of split-pane borders independently from internal dividers. (#2535, thanks @dhh)theme.custom.sidebar_bgcan 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, andWmotions 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+1throughCtrl+9keybindings 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 --remoteno 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 promptnow rejects agents already waiting at approval or question dialogs withagent_blocked, without sending text or Enter. (#2788)agent startnow 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+enow 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 triggersprefix+|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+Altkeybindings 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
recentoutput 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 checknow reports unknown built-in theme names instead of silently accepting them. (#2452)- macOS
herdr --remoteclients 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 readandpane wait-outputnow accept--flag=valueand options before or after the pane ID. (#2183, thanks @KyleCo76)pane current,pane get, andpane layout --currentnow resolve the calling pane instead of another client's focused pane. (#2297, #2298)- Configs containing the retired Herdr-written
ui.agent_panel_scopesetting no longer report it as an unknown key after upgrades. (#2292) - ...
Preview build 2026-08-19-b5c4a0176e91
Preview build 2026-08-19-b5c4a0176e91
Built from b5c4a0176e91 on master.
Base stable: v0.8.2
Compare: v0.8.2...b5c4a01
Changed
- Rebuilt preview from the current master branch.
Preview build 2026-08-18-9fac51722653
Preview build 2026-08-18-9fac51722653
Built from 9fac51722653 on master.
Base stable: v0.8.0
Compare: 1147e60...9fac517
Added
- Make Windows generally available
- Plugin marketplace discovery shelves — trending and new arrivals
Fixed
- Preserve macOS IME commits in report-all mode (#2947)
- Isolate hidden pane render cadence (#2892)
- Retry Windows installer activation after transient locks (#2921)
- Raise timeout on docs release integration test for slow builders
- Link agents to config reference data
- Reap ctrl-click url openers (#2906)
- Sync powershell process working directory (#2879)
- Match Windows Ctrl+digit keybindings (#2913)
Maintenance
- Publish preview documentation
Preview build 2026-08-17-1147e60bc0a4
Preview build 2026-08-17-1147e60bc0a4
Built from 1147e60bc0a4 on master.
Base stable: v0.8.0
Compare: d78e3d3...1147e60
Added
- Make headless terminal size configurable (#2829)
- Guide agents to Herdr resources
- Publish agent-readable documentation
- Add qwen code detection and restore (#2743)
- Keep the outer terminal window title in sync with the session (#2627)
- Add move tab keybind actions (#2561)
- Add configurable tab bar status (#2586)
- Add direct pane resize keybindings (#2558)
- Add direct pane frame streaming (#2523)
- Make outer pane borders configurable (#2535)
- Add per-pane right-click routing (#2504)
- Support all agent integrations on windows (#2496)
- Rebuild compare page in new design with runtime positioning
- Track star history for trending and new plugin surfaces
- Add big-word motions (#2270)
- Support remote attach to unix hosts (#2329)
- Add optional sidebar background
- Add distinct status indicators (#2282)
- Index marketplace manifests
Fixed
- Keep agent skill aligned with stable releases
- Skip host palette queries under wsl (#2852)
- Keep default active rows subtle and add navigate cursor color (#2838)
- Handle remote terminal hangup (#2827)
- Detect qwen localized active states (#2818)
- Use verified local packages for windows updates (#2816)
- Speed up alternate-screen history reads (#2426)
- Keep active sidebar rows visible (#2794)
- Publish channel-aware documentation indexes
- Apply llms patch during website builds
- Reject prompts to blocked agents (#2790)
- Detect all claude half-circle spinner frames (#2762)
- Wait for new pane shell readiness (#2774)
- Keep tab and sidebar clicks when the terminal reports a stray drag (#2736)
- Support high-dpi direct file frames (#2680)
- Preserve logical lines in scrollback editor (#2735)
- Focus Copilot before prompting (#2734)
- Strip claude title spinner frames (#2709)
- Use the running binary in agent hooks (#2722)
- Preserve workspace labels for root repositories (#2727)
- Synchronously terminate cancelled status commands
- Detect claude 2.1.228 half-circle busy spinner
- Disambiguate shifted punctuation keybinds (#2676)
- Compact large terminal redraws (#2675)
- Reduce idle agent detection CPU (#2651)
- Make just build cross-platform (#2647)
- Derive repo name for embedded bare layouts (#2660)
- Wait for agent prompt readiness (#2537)
- Ignore modified j/k/up/down in session navigator (#2377)
- Strip elevated terminal title decoration (#2632)
- Prioritize shutdown requests (#2624)
- Track opencode tui session selection (#2455)
- Anchor the host cursor to modal name inputs (#2569)
- Center tab labels for symmetric highlight padding (#2570)
- Avoid abort on terminal hangup (#2427)
- Preserve alt-prefixed control keys (#2543)
- Improve plugins page readability on dark ground
- Reclaim scrollbar gutter in alternate screen (#2538)
- Make windows installer swaps atomic (#2530)
- Forward pane terminal bells (#2498)
- Share Git Bash agent candidate scans (#2494)
- Report unknown theme names (#2488)
- Avoid redundant Windows recent-history snapshots (#2474)
- Preserve shift in kitty alternate reports (#2479)
- Restore blocking bridge streams (#2485)
- Verify stable release checksums
- Publish stable release checksums
- Refresh host appearance on focus (#2417)
- Ignore Cursor Run Everything status (#2220)
- Add positive idle detection for kiro-cli prompt (#2301)
- Restore keyboard reporting on detach (#2395)
- Recognize versioned Python agent wrappers (#2188)
- Accept --flag=value and reordered options in pane read/wait-output (#2183)
- Keep plugin marketplace counts current
- Render OSC 4 palette overrides instead of forwarding the index (#2162)
- Avoid ctrl-tab escape sequences in legacy panes
- Repair contributor gate handling
- Highlight active agent in collapsed sidebar (#2382)
- Update author X profile
- Accept retired agent panel scope (#2295)
- Preserve modifyOtherKeys key releases (#2303)
- Make issue gate structural
- Render halfwidth katakana voiced marks (#2257)
- Return focus to the pane a split was opened from (#2266)
- Search single-tab names in navigator (#2320)
- Parse default mouse reports (#2312)
- Resolve pane query --current from caller (#2298)
- Keep pending url clicks across host focus loss (#2291)
- Detect claude confirmation prompts
- Copy heading links to clipboard
- Preserve sidebar scroll across clients (#2280)
- Preserve shift-tab in pane automation (#2259)
- Allow corrections to published versions
Performance
Maintenance
- Sync localized configuration updates
- Update contributor list
- Refresh english documentation
- Clean up homepage
- Remove automatic issue gate
- Serialize media player environment access (#2619)
- Guard pane-scaled render performance
- Approve dhh as contributor
- Update website
- Document custom agent integrations
- Update canonical repository references
- Restore approved contributor gate
- Remove project-local worktree extension
- Refresh readme and sponsors
- Publish preview documentation
v0.8.0
Added
- Added
herdr --skillto print the agent skill bundled with the running Herdr binary. - Added
ui.pane_scrollbars = falseto hide terminal pane scrollbars and reclaim their reserved column. (#2167) - Added
ui.tab_bar_position = "bottom"to place the desktop tab row below terminal panes. (#2117) - Added live filtering to the keybind help with
/, Backspace, andCtrl+U. (#1825, #1832, thanks @corrius) - Added Windows support for
experimental.switch_ascii_input_source_in_prefixwith Korean IMEs. (#1802, #1823, thanks @joonhwan) - Added Grok CLI session reporting and native restore with
grok --resume <id>. (#1800, #1807, thanks @carlesso) - Added Antigravity CLI session reporting and native restore with
agy --conversation <id>. (#1011, #1571, #2087, thanks @ludoo) - Added automatic text history reads for idle alternate-screen agents, with the application viewport restored after collection.
- Added
workspace.move_block, theworkspace.reorderedevent, and atomic worktree-group reordering. (#1694) - Added a Simplified Chinese README. (#1990, thanks @patrick-xin)
Changed
- Experimental options are no longer exposed in the Settings TUI and remain available through the config file.
- Agent status indicators now use the same static workspace marks across the sidebar, navigator, and mobile views, eliminating continuous spinner rendering while agents work.
- Hidden pane output no longer triggers unnecessary TUI rendering.
- Windows preview downloads now include Herdr and a modern app-local ConPTY runtime in one archive. (#1533, #1644, #1828)
- Worktree parents and children now stay packed together in the sidebar, including while groups are reordered.
- Public documentation now separates stable, preview, and immutable versioned release snapshots.
- Repository and installation links now use
herdrdev/herdrafter the GitHub organization migration. - Relicensed Herdr from AGPL-3.0-or-later to Apache-2.0.
Fixed
- Pane applications now receive semantic light/dark query responses and live Mode 2031 updates when the host appearance changes. (#714)
- Remote attach now falls back to
shwhen the login shell cannot perform path discovery. (#1201) - PTY output continues to be read while pane input is temporarily blocked. (#1295)
- Worktree CLI help and docs no longer advertise the redundant
--jsonflag; worktree commands remain JSON-only and continue accepting the flag for compatibility. (#2171) - OpenCode 2 preview panes now appear as OpenCode agents and use the existing OpenCode status detection. (#2169)
- Pane text copied through VS Code Remote Tunnels now reaches the viewing machine's clipboard instead of overwriting the remote host clipboard. (#2015)
- Windows agent detection now follows Git Bash-launched agents across emulated
execprocess boundaries. (#2107) - Detached Windows servers and pane processes now survive logout from the OpenSSH session that started them. (#2008)
- Windows
agent startnow launches agents without native arguments instead of timing out on an invalid empty PowerShell argument list. (#2072) - Headless servers now resume restored agent sessions without waiting for a TUI client to attach. (#2064)
- Vibe and other Kitty-keyboard pane applications now receive shifted letters and punctuation when they request associated text. (#2020)
- Kitty-keyboard pane applications now receive printable key releases without duplicate text input. (#1746)
- Kitty graphics remain visible during host repaints. (#1628)
- Pane applications now receive correct XTWINOPS terminal and cell-size query responses. (#835)
- WSL clients query the host cell size when the terminal ioctl reports no pixels, keeping graphics sharp instead of using the 8x16 fallback. (#2146, #2160, thanks @WakaTaira)
- Linux runtimes without terminal foreground process groups can opt into child-group agent detection with
HERDR_PROCESS_DETECTION=child-groups. (#1982) - Installing the Herdr agent skill with the
skillsCLI no longer copies the entire repository. (#2022) - Nix builds now include the bundled agent skill required by
herdr --skill. (#1889, #1890, thanks @olafkfreund) - Agent prompts now wait briefly after sending text before pressing Enter, preventing prompts from remaining in agent composers without starting a turn. (#1878)
- Empty clipboard writes from pane applications no longer erase existing clipboard contents or show a copied confirmation. (#1893)
- Plain mouse movement no longer triggers continuous full renders while preserving Herdr menu hover and pane application mouse tracking. (#1865)
- Extended-button drags now preserve Herdr hover state while applications receive the drag.
ui.copy_on_select = falsenow retains drag and double-click word selections without copying;Ctrl+C, orCmd+Cwhen the host terminal forwards it, copies and clears the selection. (#1782)- Pane and agent read responses now report
truncated: truewhen older terminal rows were omitted. (#1717) - Pane applications that query OSC 4 palette colors now inherit the host terminal palette. (#1752)
- Ctrl-clicking a pane URL no longer forwards an unmatched mouse release to alternate-screen applications, preventing duplicate browser tabs. (#1761)
- Known-agent integrations now leave pane ownership to confirmed process exit, so restarting Pi with the same saved session restores lifecycle state even with custom working UI. (#1648, #1792)
- Nested or ephemeral Codex sessions no longer replace the owning pane's resumable session. (#1789, #1927, thanks @Pimpmuckl)
- Pi RPC, JSON, and print processes no longer claim pane lifecycle state intended for Pi TUI sessions. (#2159, thanks @rhjoh)
- Hermes state now comes from screen detection while its plugin reports resumable session identity, avoiding stale lifecycle authority from incomplete hooks.
- OMP integration install, status, and uninstall now respect
PI_CONFIG_DIRwhenPI_CODING_AGENT_DIRis not set, and installation refuses extension-directory collisions with Pi. (#1696) - OMP integrations now preserve Windows absolute session paths for native restore. (#2092, thanks @art-wiedzmin)
- Claude integration updates preserve existing settings key order and formatting. (#2066)
- Physical Escape key records on native Windows now bypass raw VT report framing, so pane applications receive Escape immediately and reliably. (#1736)
- Native Windows key presses, grouped repeats, and releases now preserve their physical lifecycle and stay with the pane that received the initial press. (#2077)
- Windows
pane send-keysandagent send-keysnow deliver semantic Escape as a complete key tap, preventing a following key from being interpreted as an Alt chord. - Shift+Enter now reaches native Windows pane applications with its modifier intact. (#1743, #1909, thanks @Pimpmuckl)
- Ctrl+_ input bytes now decode as Ctrl+_ instead of Ctrl+-. (#2164, #2165, thanks @Sertug17)
- Prefix and navigate modes now recognize non-US shifted keybindings while retaining legacy US punctuation support. (#1870)
- Closing a non-focused workspace no longer changes the focused workspace. (#1328, #1877, thanks @yianL)
- A background workspace that closes after its last pane exits no longer moves focus or hides the current workspace. (#1621, #1912, thanks @season179)
- Directional pane focus now keeps Navigate mode active. (#1850, #1993, thanks @we11adam)
- Closing a workspace's last tab through the CLI or API now closes the workspace like the TUI does. (#1760, #1899, thanks @season179)
- Linked worktree workspaces retain their labels during Git metadata refreshes.
- Clients repaint after transient terminal resizes instead of leaving stale or missing rows.
- Repeated workspace Git discovery and foreground-cwd checks no longer block rendering or API handling. (#1838, #2206)
- Relative plugin commands now resolve from the plugin root. (#1949)
- Windows installation preserves inherited
PATHand related environment variables. (#1947) - Windows agent process discovery preserves the owning parent agent across wrapper processes. (#1514)
- The Rose Pine
surface_dimcolor remains visible when the outer terminal uses a matching theme. (#1946, #2002, thanks @brabli) - CLI socket commands now report a clear
server_not_runningerror instead of a raw I/O error. (#1941, #1963, thanks @season179) - Non-UTF-8 CLI arguments now produce a usage error instead of panicking. (#2207, thanks @VialFlorian)
- Copy-mode
enow crosses long soft-wrapped CJK lines when a read window ends on a wide glyph. (#2145, thanks @kiakiraki) - Clients restore terminal state when they receive SIGHUP or SIGTERM. (#2041, thanks @MattJColes)
- Windows now shows
systemnotifications and completes MP3 notification sounds without leaving PowerShell players waiting for a timeout. (#1330)
Preview build 2026-08-04-d78e3d3b5126
Preview build 2026-08-04-d78e3d3b5126
Built from d78e3d3b5126 on master.
Base stable: v0.8.0
Compare: v0.8.0...d78e3d3
Fixed
- Keep collapsed workspace status visible (#2239)
Maintenance
- Refine cpu optimization blog post
Preview build 2026-07-29-44b3adb12552
Preview build 2026-07-29-44b3adb12552
Built from 44b3adb12552 on master.
Base stable: v0.7.5
Compare: 0f10e14...44b3adb
Added
- Print bundled agent skill and hint next cli steps
- Switch IME to ASCII in prefix mode on Windows (Korean IME) (#1823)
- Filter keybind help (#1832)
- Add grok cli integration for native session restore (#1807)
- Publish versioned release documentation
Fixed
- Preserve parent agent ownership
- Preserve windows path variables during install
- Restore system notifications and sound playback (#2019)
- Preserve navigate mode after pane focus (#1993)
- Restore python3 commit hook
- Select windows python command in commit hook (#1994)
- Count ptmx master fds under devpts layouts (#1984)
- Preserve linked worktree workspace labels
- Ignore nested codex session reports (#1927)
- Resolve relative plugin commands from plugin root
- Keep focus on the current workspace when another self-closes (#1912)
- Make native windows checks reliable (#1925)
- Close workspace when api closes its last tab (#1899)
- Preserve shift-enter in windows panes (#1909)
- Delay agent prompt submission
- Ignore empty clipboard writes
- Restrict unapproved pull requests to bug fixes
- Include SKILL.md in the package fileset (#1890)
- Repaint after transient terminal resizes
- Preserve prefix mode for modifier events
- Preserve focus when closing a non-focused workspace (#1877)
- Support non-us shifted keybindings (#1876)
- Improve sidebar worktree hierarchy and reordering (#1873)
- Avoid renders for passive mouse motion (#1872)
- Add rust-analyzer to development shell
- Copy retained mouse selections with keyboard shortcuts
- Run pi worktree ext on background
- Bundle modern ConPTY on Windows (#1828)
- Harden hermes lifecycle detection
- Report truncated pane reads
- Make known-agent exit process-owned
- Answer XTWINOPS size queries in panes
- Prefer branded homepage search image
- Consume handled url click gestures
- Preserve kitty graphics during host repaints
- Inherit host palette in pane queries (#1759)
- Preserve kitty printable key releases
- Preserve physical escape on windows
- Respect OMP config directory override
- Keep reading while pty input is blocked
- Fall back to sh for remote path discovery
Performance
- Skip rendering hidden pty updates
- Replace agent spinners with static status marks
- Avoid full pane renders for spinner animation (#1868)
- Eliminate repeated workspace git discovery (#1842)
Maintenance
- Remove flaky sound timing assertion
- Remove approved contributor bypass
- Add simplified chinese readme (#1990)
- Update sponsor acknowledgements
- Harden pull request workflow execution
- Gate pull request review by scope
- Consolidate project skills
- Define maintainer and agent contribution workflows
- Relicense herdr under apache-2.0
- Centralize new terminal cwd selection
- Name darwin nix toolchain inputs
- Simplify macos input source ownership
- Clarify opencode event state mapping
- Simplify cursor session reporting
- Simplify kimi lifecycle reporting
- Simplify qoder session reporting
- Replace pane mouse and clipboard internals
- Add alternate-screen output fallback
v0.7.5
Breaking Changes
- Installed and linked plugins, including their enabled state, are now global to the current user instead of isolated by Herdr session. Plugins installed only in a named session on Herdr 0.7.3 must be installed or linked again. (#1174)
Added
- Added a live-agent CLI facade with named
start, atomicprompt, logicalsend-keys, and server-ownedwaitworkflows. Agent startup targets an existing pane without changing topology, validates the requested interactive agent kind and strict agent name, and accepts native arguments after--. - Added transient declarative Agent view queries through
agent.view.set/clear; filtered and sorted views now define sidebar, mobile, mouse, and agent-keybind navigation order. - Added one-shot plugin
[[startup]]hooks for restoring plugin-owned state after server startup and live handoff. - Added per-token foreground, bold, and dim styling to expanded Space and Agent sidebar row layouts.
- Added
ui.sidebar_start_collapsedto launch Herdr with the sidebar collapsed. (#1463) - Added
ui.prompt_new_workspace_nameto ask for a workspace name before interactive TUI creation. - Added macOS support for the
HERDR_AGENT=<agent>foreground-process hint, allowing agents hidden behind host-visible wrappers such asnonoto use the named agent's screen manifest. (#679)
Changed
- Agent commands now accept only a unique live agent name or the pane ID currently hosting that agent. Names are cleared when the occupant exits, is released, or is replaced. The old top-level
waitcommands were replaced byagent waitandpane wait-output, andagent sendwas replaced byagent send-keys. - The session navigator now uses connected tree glyphs, groups matches by workspace, and automatically selects the first result when a search begins. (#1611)
Fixed
- CLI requests now return a machine-readable
protocol_mismatcherror when the client and server protocols differ, while recovery commands remain available. (#1435) - Linux sound notifications now terminate and reap audio players that do not exit, preventing unavailable audio from leaving CPU-bound
mpg123processes behind. (#1622) - Oversized bracketed text pastes are now rejected with a client-local notification instead of disconnecting the client. (#1665)
- Agent prompt waits now report
agent_prompt_stalledafter five seconds without an observed state change instead of waiting indefinitely after an ineffective submission. herdr config checknow reports unknown config keys with their full paths instead of treating ignored typos as valid configuration. (#1573)- Codex panes with customized static terminal titles now fall back to the live working footer instead of remaining idle, while OSC activity remains preferred. (#1563)
- Grok panes now preserve working and blocked state from terminal signals and pinned background-work status instead of falling back to idle mid-turn.
- OpenCode lifecycle reports are now serialized so out-of-order plugin events cannot leave an idle pane marked working. (#1519)
- Kimi question prompts now report blocked until the user answers or dismisses them.
- Pi lifecycle reporting now uses settled events, preventing transient message boundaries from publishing an idle state mid-turn.
- The Pi, OMP, OpenCode, and Kilo Code integrations can now be installed on Windows and report lifecycle state and native session identity through Herdr's named-pipe API. (#1531)
- Named agent prompts now honor live bracketed-paste mode before sending Enter, preserving OpenCode text such as
A != Binstead of triggering shell mode. (#1525) - New panes, tabs, layouts, and workspaces using
new_cwd = "follow"now inherit the foreground process-group leader's working directory instead of an unrelated helper process directory. (#1472) - Cached pane working directories no longer trigger repeated filesystem checks, avoiding slow sidebar rendering on network filesystems such as Ceph. (#1603)
- Windows foreground-process snapshots are now shared across panes, reducing idle CPU use in sessions with many panes. (#1158)
- Terminal diff streams now batch contiguous writes, reducing the visible wave effect while scrolling pane history. (#283)
- A standalone Escape arriving beside another key is now preserved as its own input instead of being combined into a fabricated Alt chord. (#541)
- Pane viewports that were following live output now continue following after a resize.
- Mouse selections now remain visible when
ui.copy_on_select = falsewhile clipboard writes stay disabled. (#1471) - Workspace close confirmation now shows the current workspace name instead of a stale or unrelated label. (#1364)
- Plugin command arrays now preserve whitespace-only arguments. (#1594, #1613)
- Plugins can now be installed or linked while no Herdr server is running. (#1670)
- Remote attach now discovers Herdr installed in mise's canonical tool path before offering to install a sidecar binary. (#1201)
- Noninteractive update, plugin, integration, sound, custom-command, and Git subprocesses no longer flash console windows on Windows. (#1468)
- Live handoff now preserves installed plugins and no longer lets the next plugin installation overwrite the existing registry. (#893)
herdr agent waitnow returnsagent_not_runningpromptly when its target pane closes instead of waiting for the full timeout. (#1439)- Pane graphics streams now shut down cleanly when a client disconnect races stream teardown.
Preview build 2026-07-21-0f10e1453a7f
Preview build 2026-07-21-0f10e1453a7f
Built from 0f10e1453a7f on master.
Base stable: v0.7.5
Compare: v0.7.5...0f10e14
Fixed
- Add agent automation to docs sidebar
Preview build 2026-07-17-813fec141faa
Preview build 2026-07-17-813fec141faa
Built from 813fec141faa on master.
Base stable: v0.7.4
Compare: e907e6a...813fec1
Fixed
- Prevent remaining subprocess console flashes
- Detect grok background work from pinned status
- Detect grok state from terminal signals
- Follow foreground process group leader cwd
- Preserve selection when auto-copy is disabled (#1496)
- Suppress noninteractive process windows
Performance
- Adopt libghostty integration improvements
Maintenance
- Support headless console runners
- Gate Greptile reviews by contributor approval
- Update vendored libghostty-vt
- Extract active tab surface rendering