Releases: herdrdev/herdr
Releases Β· herdrdev/herdr
Release list
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
Preview build 2026-07-16-e907e6a36646
Preview build 2026-07-16-e907e6a36646
Built from e907e6a36646 on master.
Base stable: v0.7.4
Compare: v0.7.4...e907e6a
Added
- Configure collapsed sidebar startup state
- Add configurable sidebar token styles
- Support agent environment hints
Fixed
- Hide agent manifest curl windows
- Stop agent wait when pane closes (#1488)
- Preserve plugins during live handoff
- Handle pane graphics stream disconnect race
- Guard cli requests against protocol mismatches (#1453)
Maintenance
- Enable zed lsp
- Wait for multi-client resize propagation
v0.7.4
Added
- Added session-modal popup floating terminal panes for
type = "popup"custom command keybindings and plugin panes, with optional cell or percentage sizing and no changes to the tiled tab layout. (#1125) - Added
ui.copy_on_selectto disable automatic clipboard copying after mouse selection while keeping the selection visible. - Added configurable row layouts for expanded Space and Agent sidebar entries, including built-in display tokens, per-agent overrides, custom metadata tokens, and pane/workspace metadata reporting through the CLI and socket API.
- Added independent
row_gapsettings for expanded Space and Agent sidebar entries. - Copy mode now supports literal smart-case search with
/and?, repeating withnandN, match highlighting, and tmux-style cross-linew/b/eword motions. (#1230) - Added Maki agent support. (#1301, #1302, thanks @tontinton)
- Added a searchable, version-matched configuration reference and a troubleshooting guide covering duplicate terminal key events, modified-arrow shell bindings, updates, remote access, and logs. (#1116, #1370)
Changed
- Expanded Space and Agent sidebar entries now use a packed layout by default; set the corresponding
row_gapto1to restore the previous spacing. - Refreshed the bundled Herdr agent skill for current public workspace, tab, and pane ids and the current CLI/API workflow. (#1297)
- Expanded Japanese and Simplified Chinese CLI documentation with shell completion setup and API schema usage. (#1151)
Fixed
- Collapsed Agent sidebar rows now follow the same ordering and click targets as the expanded panel, and their shortcut numbers are assigned by visible list position instead of repeating across workspaces. (#1168, #1344)
- Shifted indexed bindings such as
prefix+shift+1..9now match terminals that report the corresponding punctuation characters. (#1184) - Plugin-driven tab renames now immediately refresh tab-bar geometry and labels. (#1111, #1179, thanks @kovalov)
- New tabs, splits, layouts, and workspaces configured to follow the foreground directory now start from the focused pane's current working directory. (#1245)
- Amp, Codex, and Claude Code detection now recognizes current active-turn UI variants, including reordered Codex title spinners and Claude
/btwturns. (#1208, #1281, #1366) - Pi lifecycle state now reanchors after native session replacement, avoiding working panes that remain idle or tied to an abandoned session. (#943, #1189, thanks @dmmulroy)
- OMP lifecycle reports are now retried when startup races drop the first report. (#1310)
- WSL now uses Herdr's drawn cursor by default, matching the native Windows workaround for host cursor flicker. (#930)
- Live handoff now preserves explicit named-session socket paths, waits for slower server shutdowns, and flushes API responses before the old server exits. (#1180, thanks @dvic)
- The Windows installer no longer rewrites an existing config file or creates a duplicate onboarding line during first-run setup. (#1162)
- Config diagnostics now reach CLI-only and attached-client startup paths reliably and clearly identify fallback configuration behavior.
- Detached custom command children are now reaped after exit instead of accumulating zombie processes. (#1360)
- Renamed single tabs now remain visible in the Agents sidebar instead of losing their tab label. (#1369)
- Documentation search results are now scoped to the active locale and stable or preview channel.
- Horizontal wheel and trackpad events now reach pane applications that enable mouse reporting. (#1349)
- Copy mode
$and End now stop at the final visible character on the row instead of jumping to the pane edge. (#1405) - Split SGR mouse reports are now reassembled across input reads, and a preceding standalone Escape is preserved instead of being swallowed or leaked as mouse bytes. (#1334, #1382)
- Linux foreground-process discovery now stays within Herdr pane process trees instead of scanning unrelated host processes, reducing CPU use on busy multi-user systems. (#1399)
- Single-codepoint emoji chosen from the Windows emoji picker now reach panes when WezTerm's kitty keyboard support sends them as CSI-u events with associated text. (#1404)
- Outer-terminal focus gained and lost reports now reach the focused pane when its application enables focus reporting, restoring Neovim file autoreload and other focus-aware terminal behavior. (#1337)
- Native Windows servers now detach from the terminal console that launched them, so closing WezTerm, Windows Terminal, or another host terminal no longer stops persistent pane processes. (#1329)
- Windows API clients now remain connected while waiting for initial named-pipe request bytes, so
status server,api snapshot, and other socket commands no longer intermittently fail with BrokenPipe. (#1279) herdr --remotenow installs remote helper binaries without routing the binary stream through a multiline/bin/sh -ccommand, fixing installs for non-POSIX login shells such as xonsh. (#1203, thanks @nhumrich)
Preview build 2026-07-15-50aaa2ec046e
Preview build 2026-07-15-50aaa2ec046e
Built from 50aaa2ec046e on master.
Base stable: v0.7.4
Compare: v0.7.4...50aaa2e
Changed
- Rebuilt preview from the current master branch.
v0.7.3
Fixed
- The session navigator now keeps the active search query when leaving and re-entering search focus, and its footer now shows shortcuts for the current input mode. (#1115, #1140, thanks @liby)
- Re-focusing an already-focused done agent or pane through the socket API now marks it seen instead of leaving stale done status in API responses.
- Windows foreground-process detection now ignores cyclic process-parent snapshots instead of growing memory until the server aborts. (#1083)
- Terminal redraws now hide the cursor inside synchronized output, reducing focused-pane cursor flicker during active redraws. (#967)
- Headless render streams no longer scan visible plain-text URLs during rendering, reducing redraw work while preserving OSC 8 hyperlink metadata.
- The workspace picker once again honors navigate-mode workspace up/down keys, including custom bindings, after
prefix+w. (#1149)
v0.7.2
Added
- Added MastraCode integration support with lifecycle state reports and native thread restore. (#337, #788, thanks @wardpeet)
- Added
ui.sidebar_collapsed_mode = "hidden"to make a collapsed sidebar use zero width while keeping the existing compact rail as the default. (#842) - Added
herdr completion <shell>/herdr completions <shell>to generate shell completion scripts for bash, elvish, fish, PowerShell, and zsh. (#435) - Added
session.snapshotto bootstrap client runtime state in one socket API response before subscribing to events. - Added
herdr api schemato inspect the bundled socket API schema, with--jsonfor the full JSON Schema document and--output PATHfor file output. - Added
layout.updatedsocket events so protocol clients can keep tab layout snapshots current after pane split, resize, swap, move, zoom, and layout mutations. - Added pane scroll metrics to pane socket API responses and
pane.scroll_changedsubscriptions for clients that need to show when a pane is scrolled back. - Added
herdr terminal session observefor read-only live ANSI terminal streams that bridge processes can consume as newline-delimited JSON. - Added
herdr terminal session controlfor bridge processes that need live ANSI frames plus input, resize, scroll, release, and takeover authority. - Added
ui.hide_tab_bar_when_single_tabto hide the tab row when a workspace has one tab. (#448) - Added Japanese and Simplified Chinese website docs.
Changed
- The mobile switcher now starts from an agents-first summary and renders worktrees as a tree, making narrow terminals easier to scan.
- macOS prefix input-source switching now runs on the foreground client, so non-Latin input sources are restored reliably after prefix mode. (#774, #1016, thanks @ppggff)
- Nix packaging now uses
xcbuildinstead of custom Apple SDK wrappers for Darwin builds. (#995, thanks @arunoruto)
Fixed
- Windows clients now send shifted punctuation such as
!,?, and:as literal text to Kitty-keyboard-mode pane apps, fixing Kiro CLI TUI prompts while preserving modified key chords. (#1066, #1105) - Alt-Shift letter chords are now preserved instead of being collapsed into plain uppercase input. (#1088)
- Antigravity background-task waits are now detected even when the UI does not show a
/taskshint. (#755) herdr --remotenow prints clean remote attach failures and SSH authentication guidance instead of Rust Debug-formatted I/O errors when SSH authentication is denied. (#1034)herdr server stopnow stops Windows named-pipe servers instead of failing withnamed pipes do not support I/O timeouts. (#1113)herdr server stopnow waits until both server sockets are unreachable before returning, avoiding an immediate first-start failure when restarting right after replacing the binary.- macOS
herdr --remoteclients now bridge Finder-dropped image files to the remote pane instead of forwarding the local file path as typed text. (#828) - Grok Build agent detection now tracks the current Grok Build UI: panes report working while responses, tools, and subagents run, and blocked on permission prompts and question dialogs, instead of falling back to idle mid-turn. (#1017, #1055, thanks @TonyxSun)
- GitHub Copilot CLI detection now recognizes the newer Esc interrupt prompt as working. (#1119, #1120, thanks @LaneBirmingham)
- Unix local Herdr clients no longer treat empty bracketed paste as a clipboard-image bridge;
herdr --remotekeeps using it for local-desktop image paste over SSH. (#986) - Custom command keybindings now run through
cmd.exe /d /con Windows instead of/bin/sh, sotype = "pane"andtype = "shell"bindings can launch native Windows commands. (#1041) - Plain PageUp/PageDown now reach primary-screen pager apps such as
less -Xand Git diff when they enter application cursor mode, while shell transcripts still use Herdr pane scrollback. (#953) - Copy mode now supports Ctrl-page navigation, keeps the Herdr prefix key available while copying, and restores the copy context correctly after prefix commands. (#681, #885, #1092, thanks @reobin)
prefix+escrollback editor panes now open on Windows without trying to run/bin/sh; Windows usesVISUAL, thenEDITOR, thennotepad.exeas the fallback editor. (#914)herdr pane split --currentnow resolves to the calling Herdr pane instead of the UI-focused pane when run inside a pane. (#902)- Native Windows clients running inside Alacritty now preserve mouse reports and
ctrl+jinput instead of leaking mouse escape sequences into panes.shift+enterremains dependent on whether the outer terminal reports it as a distinct modified Enter key. (#792) - Windows clients now preserve bracketed paste, Backspace, modifier-only keys, host cursor drawing, native clipboard copies, recent pane reads, and wait connections across the native input path. (#670, #795, #907, #920, #930, #962, #963, #1067)
- New tabs and workspaces now follow the focused pane's current directory more reliably, including PowerShell panes that report cwd through prompt shell integration on Windows. (#912, #919)
- Pi and OMP integration state now survives internal session reloads, recovers after resumed sessions such as
omp -c, and reports Ask/tool approval waits as blocked instead of leaving the pane working or stuck on the previous session. (#800, #879, #984, thanks @dmmulroy) - Pi state socket reports are now retried, reducing stale sidebar state when the report races server startup. (#1049)
- OpenCode now reports subagent permission prompts as blocked and handles object-form
session.statusevents. (#838, thanks @soar) - Remote attach now discovers compatible Homebrew, mise, and Nix profile installs before offering to install a sidecar binary to
~/.local/bin/herdr. (#840) herdr --remotesessions now keep the remote server in its own login-independent session and preserve compatible running servers after helper binary updates, so network drops should disconnect only the client instead of killing remote panes.herdr --remotenow reuses one OpenSSH connection across setup probes, installs, server checks, and the final bridge when[remote].manage_ssh_configis enabled, so password-based hosts prompt once instead of once per setup command. (#888)- Foreground agent session reports can now replace stale saved session references, so resumed panes do not stay tied to an older agent session. (#943)
- Kitty graphics panes now repaint streaming image updates reliably and delete replaced host images instead of leaking them. (#947, #948, thanks @DevSrSouza)
- Pane apps that query OSC 12 cursor color now receive a response. (#806)
- ANSI undercurl styles now render in panes. (#895)
- CJK pane border labels, compact keybinding help ranges, and active auto-named tabs now measure by display width, avoiding broken alignment and unreadable labels. (#799, #810, #817, #829)
- Ctrl+/ is now encoded as Ctrl+_, matching terminal expectations for pane apps. (#847)
- PowerShell panes now stay alive after agent Ctrl+C. (#860)
- SGR mouse reports no longer leak into pane input after host-side handling. (#939)
- Wrapped pane links now preserve their target instead of being truncated across soft-wrapped lines. (#1098)
- Linux foreground process-group scans are cached, reducing idle CPU in large sessions. (#936)
- Session autosaves now run off the main loop, reducing UI stalls in busy sessions.
- Worktree removal now focuses the parent workspace after closing the worktree workspace. (#1004)
- Closing a tab from the context menu now exits the menu cleanly. (#945)
- Copy feedback now stays visible above retained pane updates. (#555)
- Windows ARM64 installer fallback now works when the normal checksum path is unavailable. (#897)
Preview build 2026-07-07-f5354780e4ef
Preview build 2026-07-07-f5354780e4ef
Built from f5354780e4ef on master.
Base stable: v0.7.2
Compare: v0.7.2...f535478
Fixed
- Keep cursor hide inside sync output
- Guard windows process tree cycles
- Clear done status on repeated pane focus
- Preserve navigator search commands (#1140)
Maintenance
- Ignore microsoft apt repos in artifact builds
- Clear zig cache before windows checks