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)