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)