herdr
Changelog
Terminal runtime for multiple coding agents
This page shows at most the 100 most recent releases from official sources. It does not claim to be a complete version history.
Latest Version:v0.9.1
Shown Releases:57
Source:GitHub Releases
Latest Releases (57)
v0.9.1New
v0.9.1
September 16, 2026
- •Control agents, panes, workspaces, and worktrees on saved SSH machines with
herdr --machine <label-or-id>. Commands use the saved machine's session without needing an open Herdr window. Update Herdr on both machines to use CLI forwarding; failed remote commands never fall back to Local. (#3918) - •Connect to Windows SSH hosts from Linux, macOS, or Windows. Interactive setup can install or update the complete Windows package after confirmation; background reconnects never install updates. (#3651, #3701, #3661, #3687, thanks @JJLiebig)
- •Edit names, filters, and search text at the cursor instead of only at the end. Herdr inputs now support character and word movement, Home/End, deletion, and familiar Ctrl+A/E/K/U/W/Y shortcuts, including Unicode text. (#1803, #3698, thanks @markjaquith)
- •Added Letta Code detection and native conversation restore, including default conversations. Its experimental integration is installed through
herdr integration install letta, not the Settings integration list or JSON integration API. (#3106, #3107, thanks @just-cameron) - •Hold Ctrl over a link to highlight it before opening it. Wrapped URLs and OSC 8 links remain clickable even when their beginning or end is outside the viewport. (#1282)
- •Sidebar token rules can now hide matching tokens and their separators with
hide = true; rows disappear when no tokens remain. (#3925) - •Workspace keyboard navigation now spans connected machines in sidebar order, with a visible highlight before Enter switches machines. Collapsed machine and worktree groups remain navigable without accidentally sending actions to the wrong machine. (#3754)
- •Experimental live handoff can now transfer more than 64 panes when the sending server includes this update. An older running server still has its old limit for the first upgrade; this does not change update installation order or make live handoff non-experimental. (#3393, #3411, thanks @kataokatsuki)
- •On Linux and macOS, terminal observers that stop accepting output are disconnected after 30 seconds without write progress. Their pane and other clients keep running; an interrupted stream may end without a final close record. (#3612)
- •Windows terminal cleanup now explicitly resets mouse-reporting modes. The remaining standalone Git Bash detach report in #3748 is still under investigation; do not treat this release as a confirmed fix for that report. (#4055, thanks @JJLiebig)
- •Remote typing, switching, and popup interaction no longer resend the entire pane screen for small changes. Busy SSH sessions use less bandwidth, and idle attached clients avoid unnecessary redraw work. (#3769, #3745, #3822)
- •A stalled SSH machine no longer traps the client away from Local. Clicking a local workspace or agent cancels the unfinished remote switch, and a recovered remote workspace refreshes without an away-and-back selection. Stale screens from before a reconnect are not reused. (#3903, #3842)
- •Idle SSH connections use less CPU without losing final output. Repeated connection failures back off instead of reconnecting rapidly, and supported idle bridges clean up without stopping remote panes. (#3728, #4083)
- •Large pastes no longer disconnect the client with an output-queue error. (#3833)
- •SSH setup now shows authentication instructions and useful errors, including Tailscale login URLs and host-key failures, rather than appearing to hang or only reporting a lost connection.
machine addalso accepts options before the SSH target. (#3606, #3731, #3883)
v0.9.0
v0.9.0
September 7, 2026
- •Manage Local and saved SSH machines from one Herdr window, with a combined agent list, machine-scoped navigation, notifications, and automatic reconnects. Add and manage connections with
herdr machine; a disconnected machine does not interrupt the others. (#3670) - •Multiple clients can now view different workspaces and tabs independently. Different tabs fit their viewing clients; when clients share a tab, the last one to interact with it controls its size. (#3526)
- •Added Muse agent detection for idle, working, approval, and question states. (#2489, thanks @ohk)
- •Sidebar text and metadata tokens can now change color, boldness, and dimming based on their values, using ordered text or numeric rules. (#3693)
- •Custom themes can now define separate light and dark color overrides when automatic theme switching is enabled. (#2324, thanks @aneym)
- •
ui.pane_borders = "always"can now frame a single pane when outer borders are enabled."auto"keeps split-only borders,"off"hides them, and existing boolean values keep working. (#3234, thanks @rsmdt) - •Client updates can now leave compatible servers and their running agents untouched. Missing server features disable only the affected action instead of preventing connection. Servers older than endpoint generation 1 need a one-time upgrade. Replacing a remote server asks before stopping its pane processes, with No as the default answer; experimental handoff remains opt-in. (#3509)
- •The terminal UI now runs in each client, reducing redraw work in busy multi-client sessions and keeping themes, menus, copy mode, and other presentation settings local to the viewing machine. (#3487)
- •Idle terminal scrollback now uses less memory without reducing retained history or changing reads and resizing. (#3556)
- •Pane images and the graphics API are now enabled by default in compatible terminals. Set
terminal.kitty_graphics = falseto disable them; the oldexperimental.kitty_graphicssetting remains accepted. - •Closing a primary workspace with open worktree workspaces now requires explicit group intent:
workspace close --grouporworkspace.closewithclose_group: true. Otherwise the whole group stays open. (#2874) - •New lifecycle event subscriptions now start with live events rather than replaying retained history. API clients should subscribe before taking their initial snapshot to avoid missing changes. (#1270)
- •Mouse selections now stay visible and copyable while terminal output continues, including with automatic copying disabled. Ctrl+C and Cmd+C copy a selection even before a delayed mouse release, and a failed copy no longer interrupts the agent. Selection highlights also remain visible when host colors are unavailable. (#3100, #2708, #3684, thanks @moret and @Pimpmuckl)
- •Wayland clipboard copies no longer freeze Herdr while
wl-copyserves the selection. (#3014) - •Live handoff now preserves mouse forwarding for running pane applications. (#3000, thanks @xkrogen)
v0.8.2
v0.8.2
August 19, 2026
- •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.
v0.8.0
v0.8.0
August 3, 2026
- •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)
- •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.
v0.7.5Breaking Change
v0.7.5
July 21, 2026
- •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 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) - •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)
- •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)
v0.7.4
v0.7.4
July 15, 2026
- •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)
- •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)
- •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)
v0.7.3
v0.7.3
July 8, 2026
- •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
v0.7.2
July 7, 2026
- •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.
- •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) - •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)
v0.7.1
v0.7.1
June 24, 2026
- •Added
[update].version_checkand[update].manifest_checkso background Herdr version checks and remote agent-detection manifest checks can be disabled independently. Manualherdr updateand bundled/local detection manifests still work when the background checks are disabled. (#677) - •Added
HERDR_AGENT=<agent>as a Linux foreground-process hint for agents hidden behind wrappers such as VMs, Bubblewrap, orfence, allowing Herdr to use the named agent's screen manifest when/proccannot expose the real command. (#679) - •Added
ui.pane_bordersandui.pane_gapsto make split pane dividers and spacing configurable. (#271) - •Removed the Agents panel workspace/all filter. The panel now always shows all agents, defaults to grouped-by-space ordering, and can switch to priority ordering with
ui.agent_panel_sort = "priority". (#318) - •User keybindings now displace conflicting built-in defaults during config load, so overriding a default binding no longer leaves both actions attached to the same key. (#747)
- •Worktree creation now checks out an existing local branch when the requested branch already exists instead of failing by trying to create it again. (#729)
- •Worktree operations started through the socket API and plugin/UI flows now defer long-running Git work until the app runtime can drive it, keeping clients responsive and preserving plugin lifecycle events for worktree-created panes. (#657, #662, #686)
- •OMP, OpenCode, Pi, Devin, and other official hook integrations now scope lifecycle and session reports to the intended root agent process more reliably, reducing stale or cross-process session adoption after restarts, nested commands, and new sessions. (#614, #712, #719, #765)
- •Windows Terminal multiline text paste now reaches pane apps as one bracketed paste, so OMP, Pi, and similar prompts no longer submit each pasted line separately. Plain Esc, Shift+Enter, mouse, focus, resize, and Unicode paste handling are preserved on the Windows client path. (#670)
- •Local Herdr clients no longer treat raw
Ctrl+Vas a clipboard-image paste trigger, so pane apps such as Vim and Neovim receive block-visualCtrl+Veven when the desktop clipboard contains an image.herdr --remotekeepskeys.remote_image_paste = "ctrl+v"by default. (#647) - •Herdr now refreshes cached host terminal colors when terminals report a light/dark color-scheme change, so pane apps that query OSC 10/11 no longer need detach/attach to see updated default colors. Opt-in
[theme].auto_switchcan also switch Herdr's own UI between configureddark_nameandlight_namethemes. (#675) - •Full-lifecycle hook agents can now recover when an old release/report sequence belongs to a previous agent generation. Herdr keeps process-exit validation active under lifecycle authority and re-anchors hook sequence guards after fresh session references or proven process exits. (#684)
- •OMP now reports a native session reference, so an OMP pane reappears in the Agents panel after exiting and rerunning
ompin the same pane, and Herdr can resume it withomp --resume=<session>. Previously the released lifecycle hook stayed suppressed until a server restart. (#614) - •Host terminal color query (OSC 10/11) replies that arrive split at their escape introducer no longer leak as text like
11;rgb:...into the focused pane, most visible when launching agents that probe terminal colors on startup. (#549) - •Long CJK Git branch names in the sidebar now truncate by display width instead of overflowing or cutting at the wrong cell boundary. (#644)
v0.7.0
v0.7.0
June 15, 2026
- •Added local plugin v1 support with
plugin.link/list/unlink/enable/disable, manifest-declared actions, event hooks, managed plugin panes, link handlers, command logs, keybinding integration, and authoring docs under Preview docs. - •Added
herdr plugin install <owner>/<repo>[/subdir...],plugin uninstall, source metadata inplugin.list, offline registry fallback, and a human-readable defaultplugin listwith--jsonfor scripts. - •Added
herdr plugin config-dir <id>and automatic plugin config/state directory creation so plugin setup docs can point users at a stable config path. - •Added Devin CLI automatic detection plus
herdr integration install devinhooks that report session ids for restore withdevin --resume <id>. Devin state remains screen-detected because Devin hooks do not cover every permission cancellation and user interrupt transition. (#606, #622, thanks @minatoaquaMK2) - •Added supporting plugin host APIs for
pane.current,pane.process_info,client.window_title.set/clear,layout.export/apply, plugin pane placement, plugin invocation context/env injection, and plugin pane ownership acrosspane.move. - •Added
pane.moveandherdr pane moveto relocate a running pane into another tab, a new tab, or a new workspace without restarting its terminal process. (#299) - •Tabs containing a zoomed pane are now marked in the tab bar so the zoom state is visible from other tabs.
- •Bumped the client/server protocol version to 14 for
pane.movecompatibility. (#299) - •Public workspace, tab, and pane ids are now short stable handles such as
w1,w1:t1, andw1:p1; closed tab and pane ids no longer retarget later resources. (#569) - •
pane.send_keysandpane.send_input.keysnow accept Herdr key-combo strings such asctrl+h,ctrl+j,ctrl+k, andctrl+l. (#613, thanks @dmmulroy) - •Config startup and reload now warn about unknown top-level table sections, including a
[toast]hint that points to[ui.toast], instead of silently ignoring them. - •Claude Code session restore now accepts real
/clear,/resume, and compacted session identity changes while still ignoring nestedclaude -pstartup sessions that inherit the pane environment. (#620) - •Auto-named tab labels now stay compact after closing, moving, or creating tabs while public tab ids remain stable.
- •F1-F4 key presses sent as
ESC[11~throughESC[14~now reach pane apps instead of being dropped. (#574) - •Numeric keypad keys sent through the kitty keyboard protocol now enter their digits and operators instead of being dropped. (#570)
v0.6.9
v0.6.9
June 10, 2026
- •Copy mode page scrolling now stops at the same top and bottom boundaries as normal pane scrolling instead of overshooting or getting stuck near the edges. (#459, #460, thanks @reobin)
- •Clipboard-copy feedback no longer stays visible after the related selection state has gone stale. (#443)
- •The session navigator now uses live workspace labels, so renamed workspaces and cwd-derived labels stay current while navigating. (#377)
- •Hermes Agent integration installs now preserve flat plugin-list settings instead of rewriting them into nested lists. (#479)
- •Host-terminal focus redraws now stay pending until the client can send them, so panes refresh after focus returns even when redraw delivery was briefly busy.
- •Numeric keypad keys that send VT100 application-keypad escape sequences now enter their digits and operators instead of being dropped. (#493)
- •Codex panes now stay marked working when the live status header uses reasoning-summary text such as
Investigating code outputinstead of the literalWorkinglabel. (#501) - •Codex blocker detection now ignores stale prompt text outside the live prompt region, reducing false blocked states from old scrollback.
- •Native pane URL clicks now use Cmd-click on macOS and Ctrl-click on other platforms. (#307)
- •Worktree open, create, and remove actions now work from bare repositories instead of assuming a normal checkout. (#497)
- •Pane mouse handling no longer sends empty PTY writes for mouse events that produce no terminal input. (#496)
- •Pane output now renders flag emoji and other multi-codepoint grapheme clusters as complete symbols instead of blank cells. (#243)
- •Starting Herdr with no restored workspaces, or closing the last workspace, now opens a default workspace instead of leaving the client on an empty screen where direct keybindings such as
cmd+nwere shown but ignored. (#366) - •Resizing restored panes no longer aborts the server when libghostty-vt reflows a terminal whose pre-resize cursor row is past the new height. (#465)
- •Full-screen TUIs such as Neovim now receive resize-generated terminal responses after Herdr internal pane resizes, so grown panes redraw without waiting for extra input. (#471)
v0.6.8
v0.6.8
June 4, 2026
- •Fixed a Herdr server crash triggered by pane output containing complex Unicode, emoji, or decomposed accent graphemes. Affected sessions could lose running pane processes or crash again after restore if the same saved pane output was replayed. (#453)
- •Direct installs managed by mise now update through the mise install path instead of failing to replace the active binary.
- •Claude Code panes that are actively thinking or streaming no longer flicker to blocked because of custom status text. (#409)
- •Claude Code panes now detect running shell-command status more reliably.
- •OpenCode installed through pnpm is now detected as
opencodeinstead of being missed because the packaged executable is namedopencode.exe. (#447) - •Added opt-in macOS input-source switching during prefix mode with
experimental.switch_ascii_input_source_in_prefix, so users typing with a non-Latin IME can run prefix commands through an ASCII-capable input source and return to the previous input source when prefix mode ends. (#400, #434, thanks @sf-jin-ku)
v0.6.7
v0.6.7
June 3, 2026
- •Added a compact collapse control to the expanded sidebar so mouse users can collapse and expand the sidebar from visible controls. (#278, #291, thanks @turgaybulut)
- •Added an opt-in preview update channel with
herdr channel set preview,[update].channel, automated preview manifests, and GitHub prerelease publishing for users who want fixes before stable releases as Herdr transitions toward less frequent, more stable releases. - •Added a remote SSH bridge keepalive fallback.
herdr --remotenow generates a temporary SSH config that includes the user's SSH config first, then addsServerAliveIntervalandServerAliveCountMaxonly when the user has not already configured keepalives. Set[remote].manage_ssh_config = falseto disable this. (#354, #355, thanks @SunskyXH) - •Added
ui.right_click_passthrough_modifierso a configured modifier such asctrlcan forward right-click hold and drag gestures to mouse-reporting pane apps while normal right-click still opens Herdr's pane menu. (#148) - •Added Kilo Code CLI automatic detection for idle, working, and blocked terminal states. (#270)
- •Added
herdr integration install copilotfor GitHub Copilot CLI hooks that report prompt, tool, post-approval progress, permission,ask_user,exit_plan_mode, idle, session-exit state, and session ids through Herdr's socket API. When native agent session restore is enabled, Herdr can resume Copilot panes withcopilot --resume=<id>. (#232, #386, thanks @LaneBirmingham) - •Native agent session restore is now enabled by default for supported panes with current official integrations. Set
[session] resume_agents_on_restore = falseto disable it. - •Claude Code, Codex, and OpenCode integrations now report session identity only. Native state for those agents comes from Herdr's screen detection, while Pi, OMP, GitHub Copilot CLI, Hermes Agent, Qoder CLI, and custom socket integrations can still report state.
- •Large long-running sessions no longer hit the frame-streaming crash fixed by the vendored libghostty-vt update. (#276)
- •Copy mode now preserves linewise selection after
shift+vwhile moving the cursor. (#360, #389, thanks @reobin) - •Leaving copy mode now restores the previous scroll position, or returns to the bottom when copy mode started at the bottom. (#398, #410, thanks @reobin)
- •Git branch labels now resolve correctly in repositories that use Git's reftable ref format instead of showing
.invalid. (#384, #423, thanks @LaneBirmingham) - •The official Nix flake now builds on macOS by providing Darwin SDK discovery helpers and Darwin cctools to the vendored libghostty-vt build. (#405, #407, thanks @DeevsDeevs)
- •Commands launched after
--, such asherdr agent start ... -- opencode --session <id>, now preserve child argv flags instead of parsing them as Herdr flags. (#383) - •Pane apps that request any-motion mouse tracking now receive hover/move events, making Textual-style TUI mouse interaction more reliable inside Herdr. (#419)
v0.6.6
v0.6.6
May 31, 2026
- •Custom command keybindings now accept an optional
descriptionfield to provide user-defined descriptions shown in the keybind help panel instead of the default'custom command'label. (#362) - •The OpenCode integration no longer treats
session.createdorsession.updatedplugin events as idle signals, so active sessions stay marked working until OpenCode reportssession.statusorsession.idle. (#351) - •New interactive panes now use login-shell startup on macOS by default so Homebrew and other login PATH setup is available, with
terminal.shell_mode = "non_login"as an opt-out. (#350) - •Claude Code panes no longer stay blocked after stale permission-prompt reports when the visible screen has returned to idle or working state. (#349)
- •Codex panes no longer stay working because stale
esc to interrupttext remains above a visible idle prompt, and visible approval-review work is now preserved as working. (#352) - •Sidebar Git status refresh now deduplicates workspaces from the same checkout and reuses cached ahead/behind results when refs have not changed, reducing idle CPU from repeated
gitpolling. (#353) - •Update prompts, toasts, and docs now distinguish installing a new binary from stopping or reattaching a running Herdr session to use it.
- •Large restored sessions no longer leave restored or newly split panes without shells after startup, and live handoff keeps PTY ownership bounded to one master fd per pane. (#357)
- •Pane shutdown no longer warns that a pane is still alive after the direct child has already exited and been reaped. (#338)
- •Closing the last pane or tab in a parent worktree workspace now shows the existing confirmation before closing the whole worktree group. (#369)
v0.6.5
v0.6.5
May 29, 2026
- •Added pane copy mode at
prefix+[with keyboard navigation, visual selection, and clipboard yank support. (#231) - •Added
foreground_cwdto pane and agent API/CLI responses so integrations can inspect the active foreground process directory without changing the existing pane/workspacecwdsemantics. (#345) - •Added read-only
agent_sessionmetadata to pane and agent API/CLI responses when official integrations report native session references. - •Live handoff now preserves terminal state when transferring supported running panes to a replacement server.
- •WSL clipboard writes now prefer OSC 52 before WSLg clipboard tools, so mouse selection and double-click copy populate Windows clipboard history in Windows Terminal. (#333)
- •Incomplete host terminal OSC default-color replies no longer get misread as Alt-key input and forwarded into panes, preventing interactive prompts such as
gh auth login --webfrom aborting on splitESC ]input. (#279, #306, #344) - •Workspace rename prompts and background notifications now use live cwd-derived workspace labels instead of stale session labels. (#332)
- •
herdr session stopno longer fails on zero-duration socket timeouts when the stop deadline is nearly exhausted. - •Update preview instructions now wrap long package-manager commands instead of truncating the shell command suffix.
- •Restored native agent resume panes now fall back to a shell when the resumed agent exits instead of closing the whole pane.
v0.6.3
v0.6.3
May 27, 2026
- •Added native agent session restore behind
[session] resume_agents_on_restore, allowing supported Pi, Claude Code, Codex, OpenCode, and Hermes panes with current official integrations to restart into their previous agent conversation after a Herdr server restart. (#233) - •Added opt-in pane screen history across full server restarts with
[experimental] pane_history = trueand Settings > Experiments > pane screen history. (#217, #248, thanks @icedac) - •Added a session navigator at
prefix+gwith a searchable workspace/tab/pane tree, agent state filters, mouse switching, and keyboard navigation. (#157) - •Added configurable navigate-mode movement bindings for workspace and pane navigation keys. (#193)
- •Added a configurable
last_panekeybinding action for tmux-style back-and-forth navigation to the last focused pane across workspaces and tabs. It is unset by default. (#287) - •Added scrollback support to direct agent terminal attaches. Mouse wheel and plain PageUp/PageDown now scroll the attached terminal viewport, while terminal apps that request mouse or alternate-scroll input still receive those events. The client/server protocol is now version 11.
- •Added
ui.redraw_on_focus_gainedto keep the existing full redraw on outer-terminal focus gain by default while allowing users to opt out of the visible refresh. (#282) - •Added
ui.mobile_width_thresholdto configure the terminal width at which Herdr switches to the mobile single-column layout. (#317) - •Added
--handoffforherdr updateandherdr --remoteto opt into live server handoff for supported running servers. Plain update and remote attach use the normal restart/stop flow by default. - •Added
pane.report_metadataandherdr pane report-metadataso user hooks can customize pane titles, displayed agent names, compact status labels, and visible state labels without taking over integration-owned lifecycle or session state. (#36) - •Added tmux-style double-click token copy in panes, with temporary copy feedback and mouse passthrough preserved for terminal apps that request mouse input. (#142, #296, thanks @babymastodon)
- •Added Ctrl-click URL opening inside panes for OSC 8 hyperlinks and visible
http://orhttps://URLs when the host terminal sends the modified click to Herdr. (#307) - •Added Qoder CLI detection, terminal state heuristics, and
herdr integration install qoderclihook support. (#308, #309, thanks @wayneleelwc) - •Remote bootstrap now downloads exact-version release assets for Homebrew and Nix clients instead of copying package-manager-managed local binaries into
~/.local/bin/herdr. - •
website/latest.jsonnow stores asset URLs for archived releases underreleases[version].assets, so remote bootstrap can fetch the current client version even when Homebrew and the top-level latest release are temporarily out of sync.
v0.6.2
v0.6.2
May 23, 2026
- •Added optional Nix flake support for building, running, installing, and developing Herdr with Nix. (#208, #221, #264)
- •Added
terminal.new_cwdto choose whether new panes, tabs, and workspaces follow the source pane/workspace, start in$HOME, use Herdr's process directory, or use a fixed path. - •Added
herdr integration install ompfor OMP's.ompextension directory. The extension reports OMP pane state through Herdr's socket API without relying on nativeompprocess detection. - •Added CLI and socket API support for Git worktrees with
herdr worktree list/create/open/remove, optional worktree provenance on workspace responses, and client/server protocol version 10. - •GitHub Copilot CLI sessions now use tested terminal heuristics for approval prompts, freeform input, plan review, and thinking states in the Agents panel. (#232, #256, thanks @LaneBirmingham)
- •Kiro approval prompts are now detected as blocked in the Agents panel. (#255)
- •Workspace labels now follow the live pane working directory after directory changes.
- •Remote clients using local keybindings no longer show stale server keybinding warnings from the remote host.
v0.6.1
v0.6.1
May 22, 2026
- •Added
ui.mouse_scroll_linesto configure how many pane scrollback lines each mouse wheel notch scrolls. The default remains 3. (#236) - •Added
--remote-keybindings local|serverforherdr --remote. Remote attach now uses the launching client's local keybindings by default without copying config files to the remote host; use--remote-keybindings serverto keep the remote server's keybindings. The client/server protocol is now version 9. - •Added
experimental.reveal_hidden_cursor_for_cjk_ime = false(opt-in),experimental.cjk_ime_agents = [](optional allow-list), andexperimental.cjk_ime_cursor_shape = "steady_block"to expose the focused pane's cursor anchor to the outer terminal even when the pane requested?25l, restoring macOS IME candidate-window tracking for TUIs that paint their own cursor (Claude Code, pi, codex). Whencjk_ime_agentsis non-empty, the reveal applies only to focused panes whose detected agent matches one of the listed names. When the pane reports no cursor position, the anchor falls back to the pane's top-left so a stable IME hint is always available. Trade-off when enabled: an extra hardware cursor may appear in the outer terminal for apps that hide the cursor without painting a replacement. (#149, thanks @ChihGodlee) - •Added explicit sidebar Git worktree groups plus native worktree creation, existing checkout open, and safe checkout cleanup flows, configured by
[worktrees].directory,keys.new_worktree, optionalkeys.open_worktree, and optionalkeys.remove_worktree. (#137) - •Added named-session reattach and stop command hints so detach and update guidance point back to the active session. (#199, thanks @Golden-Pigeon)
- •Pane apps that query OSC 10/11 default foreground/background colors now receive the host terminal colors, so OpenCode and similar TUIs can detect light terminal themes inside Herdr. (#253)
- •Codex Plan mode question prompts now override stale integration
workingreports when the visible terminal UI is clearly waiting for an answer, stale hook authority is cleared when foreground process detection sees Codex exit back to the shell, and Claude Code cancellations now recover from stale hookworkingreports when the idle prompt returns. (#249) - •Keybinding parsing now accepts non-ASCII printable keys such as
ö,é, andğ, including UTF-8 Alt chords. (#247) - •Kimi Code CLI sessions now use structural terminal detection for approval prompts and live thinking/tool status, improving working and blocked state reporting in the Agents panel. (#215)
- •Antigravity CLI (
agy) sessions are now detected, and their terminal UI now reports working and blocked states in the Agents panel. (#207) - •Cursor Agent sessions launched as
cursor-agentor symlink aliases such asagentare now detected, and their terminal UI now reports working and blocked states in the Agents panel. (#225) - •Agent detection now ignores runtime argument strings when identifying foreground processes, reducing false positives from helper commands and wrapped processes. (#238)
- •In-app notifications now stay below interactive floating overlays, so dialogs and menus remain readable and clickable while a toast is visible. (#228)
- •
herdr --remotenow offers to restart the remote server after installing or replacing a remote binary, or when the running server version differs, even if the client/server protocol is still compatible.
v0.6.0Breaking Change
v0.6.0
May 20, 2026
- •Added keybinding v2 with explicit
prefix+...syntax, array bindings per action, configurable prefix-mode pane focus, tab switching, and direct modified chords for users who opt in. (#154, #201, #202, #219) - •Added
herdr config reset-keysto back upconfig.tomland remove custom keybindings so built-in v2 defaults apply on restart or config reload. (#154) - •Added an integrations tab in settings and first-run onboarding so users can install recommended agent integrations from inside Herdr.
- •Added update badges on the sidebar menu, settings menu item, and integrations settings tab when installed integrations are outdated.
- •Added
terminal.default_shellto choose the executable used for new interactive panes. When unset, Herdr still falls back to$SHELL, then/bin/sh. (#196) - •Added native Kiro CLI detection with idle and working state heuristics. (#185)
- •Keybinding conflict warnings now stay visible and show one readable yellow row per conflicting binding.
- •Update prompts that need to stop a running server now default Enter to yes and show
[Y/n]. - •Pending release notes no longer open automatically on startup; the latest notes remain available from the menu.
- •Running
herdr serverdirectly now prints socket and log paths and explains that normal TUI users should runherdr. - •Kitty graphics virtual Unicode placeholders now render image placements instead of leaving placeholder cells behind. (#136)
- •Clipboard image reads are now capped to Herdr's image payload limit, preventing oversized local clipboard images from being read into memory.
- •The install script now reads Herdr's public latest-release manifest, so fresh installs use the same binary URLs as
herdr update. - •The Claude Code integration no longer lets subagent completion hooks report durable
working, preventing delayed recap or subagent completion events from reviving an idle pane. (#198) - •Remote clients now bridge local clipboard images into the remote pane by staging them as temporary image files and pasting the remote path, so Claude Code image paste works over
herdr --remote. (#205)
v0.5.12
v0.5.12
May 19, 2026
- •The Claude Code integration no longer reports successful or failed post-tool hooks as
working, and installing the updated integration removes Herdr's deprecated post-tool hook entries from existing Claude settings. (#198) - •The Codex integration now reports native
PermissionRequesthooks asblocked, so permission prompts no longer stay pinned asworkingafter a tool-use hook. (#198) - •Workspace and tab rename prompts now handle Backspace, Ctrl+Backspace, Alt+Backspace, Cmd+Backspace, Ctrl+H, Ctrl+W, and Ctrl+U as editing shortcuts instead of inserting stray characters or clearing unexpectedly. (#204)
v0.5.11Breaking Change
v0.5.11
May 19, 2026
- •Added the
terminalbuilt-in theme, which uses the host terminal's ANSI palette for Herdr UI colors. (#140, #146, thanks @babymastodon) - •Added Hermes Agent foreground-process detection with basic idle, working, and blocked heuristics. (#144)
- •Added a Hermes Agent plugin integration for direct state reporting. (#144)
- •Added
ui.sidebar_min_widthandui.sidebar_max_widthto configure the sidebar's expanded resize bounds. Defaults remain 18 and 36 columns; existing configs are unchanged. (#132, #135, thanks @ChihGodlee) - •Running the internal
herdr clientcommand from inside Herdr now respects the nested-launch guard, and the command is no longer advertised in root help. (#187) - •The Herdr agent skill now refuses to claim pane ownership unless it is running inside Herdr. (#152)
- •Terminal-style docs code blocks now keep their copy button in the top-right corner. (#190)
- •The sidebar
newworkspace button now aligns with the sidebar's left padding. (#189) - •Herdr now preserves
session.jsonsymlinks when saving persistent session state. (#139, #147, thanks @cloudmanic) - •Alt+Backspace is now preserved when forwarded into panes. (#155, #165)
- •Directional pane focus now works while a tab is zoomed. (#151, #167)
- •Agent detection now prefers the foreground process group leader, reducing false matches from child helper processes. (#161, #172)
- •Remote attach now uses a matching
herdralready available on the remotePATHbefore installing a new copy. (#170) - •Modified Enter input such as Shift+Enter is now preserved in supported terminals. (#168)
- •Sidebar agent entries now show user-assigned agent names when available. (#145)
v0.5.10
v0.5.10
May 17, 2026
- •Added indexed keybind families under
[keys.indexed]for jumping directly to workspace, tab, or visible agent positions 1-9. - •Added hook-owned custom agent status labels, so integrations can show short visual states like
indexingwithout changing semantic agent status. - •Added terminal-backed agent commands and socket API methods for listing, reading, sending to, renaming, focusing, waiting on, attaching to, and starting agent terminals.
- •Added direct terminal attach with
herdr agent attach <target>andherdr terminal attach <terminal_id>. - •Added
ui.prompt_new_tab_name = falsefor creating new tabs immediately with generated names instead of opening the rename dialog. (#123) - •Added optional
keys.edit_scrollbackto open the focused pane's retained scrollback in$EDITORinside a temporary zoomed pane. (#122) - •Renamed the focused pane fullscreen keybinding to
keys.zoom;keys.fullscreenremains supported as a legacy alias. - •Grok Build is now detected as
grok, with basic working, blocked, and idle state detection. Conflicting known-agent hook labels are ignored once native foreground-process detection identifies a different known agent. (#133) - •Terminal cursor shapes now forward through attached clients. (#116)
- •Herdr now redraws immediately when the outer terminal regains focus.
- •GitHub Copilot is now correctly detected when its process name is
copilot. (#118) - •Integration installs now respect
PI_CODING_AGENT_DIR,CLAUDE_CONFIG_DIR, andCODEX_HOMEwhen choosing Pi, Claude Code, and Codex config paths. (#121) - •Split pane resize hit areas no longer overlap the first content column or row, making text selection work from the start of right and bottom panes. (#120)
- •Dragging text selections near pane edges now autoscrolls into scrollback, and selection state now clears correctly when switching workspaces, tabs, or panes. (#128, #129, thanks @leeeanh)
- •Zoomed panes now keep their border visible in tabs that contain multiple panes. (#115)
v0.5.9Breaking Change
v0.5.9
May 15, 2026
- •Added experimental Kitty graphics rendering for local panes and attached clients behind
experimental.kitty_graphics, including support for larger graphics frames. - •Added
ui.toast.delivery = "system"for OS-level background notifications, usingnotify-sendon Linux andterminal-notifierorosascripton macOS. - •Added light variants for Catppuccin, Tokyo Night, Gruvbox, One, Solarized, Kanagawa, and Rosé Pine themes.
- •Added
ui.mouse_capture = falsefor tmux-style mouse behavior, letting the terminal handle normal clicks while still forwarding mouse input to pane apps that request it. - •Moved experimental settings into
[experimental]. - •PageUp and PageDown now scroll Herdr pane scrollback for normal panes while still forwarding keys to full-screen or mouse-reporting apps.
- •Enhanced tilde key sequences now parse correctly, improving compatibility with terminals that emit them.
- •
herdr integration install codexnow enables the current Codex[features] hooks = trueflag and migrates the deprecated top-levelcodex_hooksflag. - •
advanced.allow_nestedhas moved toexperimental.allow_nested; update configs that allow nested Herdr launches. - •The client/server protocol is now version 5. Stop and restart any running v0.5.8 server before attaching with this release.
v0.5.8
v0.5.8
May 12, 2026
- •Added manual pane labels through
herdr pane rename, thepane.renamesocket API, an optionalkeys.rename_panebinding, and the right-click pane menu. - •Added
ui.show_agent_labels_on_pane_borders, which can show detected or reported agent names in split pane borders when no manual pane label is set. - •Added
herdr integration status [--outdated-only]so installed agent integrations can be checked for legacy or outdated versions. - •Added an optional
keys.open_notification_targetbinding for jumping to the pane behind the current notification. - •Added optional
keys.previous_agentandkeys.next_agentbindings for cycling through sidebar agent entries. - •Scrolling over the tab bar now switches tabs directly, including overflowing tab bars.
- •Indexed terminal palette colors now render correctly for 256-color terminal apps.
- •Hook-based agent integrations now reject stale out-of-order reports and base notifications on effective agent state, reducing duplicate or stuck state changes.
- •Background tabs now resize when the outer terminal size changes, preventing stale pane dimensions when switching back to them.
- •Client shutdown now drains queued control messages more reliably.
- •Pane cursors are now hidden while scrolled back, and omitted while the mobile switcher is open.
- •Mobile agent switcher entries now include tab context, making agents easier to identify on narrow terminals.
- •macOS foreground job detection now uses process groups, improving agent state tracking for foreground commands.
- •Remote SSH no longer fails before connecting when macOS temporary bridge socket paths exceed Unix socket length limits. (#103, thanks @moonsphere)
- •Nix-wrapped agent commands are now detected by their underlying agent entrypoint.
v0.5.7
v0.5.7
May 10, 2026
- •Added ANSI-formatted pane reads to the CLI and socket API with
herdr pane read --format ansi/--ansi, preserving colors and styles for visible and recent pane output. - •The agents panel now highlights the currently focused agent entry, matching the active workspace styling. (#84, thanks @soomtong)
- •Git branch and ahead/behind refreshes now run off the main loop, preventing slow Git status checks from freezing the UI.
- •Update and startup flows now detect incompatible running servers earlier and give clear stop/restart guidance instead of trying to attach with a mismatched client/server protocol.
- •
herdr updatenow downloads and prepares the new binary before stopping a running server, reducing the chance of interrupting an active session when download or install preparation fails.
v0.5.6
v0.5.6
May 9, 2026
- •Added the
vesperbuilt-in theme. (#71, thanks @nexxeln) - •Added
herdr --remote <ssh-target>, so you can use Herdr as a thin client for remote servers without SSHing in first. Herdr connects over SSH, bootstraps a matching remoteherdrbinary when needed, starts the remote server automatically, and streams an efficient terminal view back to your local terminal. - •Updated the bundled
libghostty-vtengine and removed the custom Linux C++ runtime link workaround from static builds. - •CLI workspace, tab, and pane creation now preserve the current focus by default; pass
--focusto switch to the newly created item. - •OSC 8 hyperlinks emitted inside panes now remain clickable after Herdr renders them, including titled markdown-style links.
- •Agent panel scope now defaults to
alland is saved to config when changed, so choosingcurrentorallsurvives session resets and upgrades. - •Native agent hook state now clears when the detected native agent exits, preventing stale hook-reported status from sticking to a pane.
- •Clicking an in-app agent toast now jumps to the relevant pane and clears the toast after focus.
v0.5.5
v0.5.5
May 6, 2026
- •Added a mobile layout for narrow terminals, making it practical to SSH into your machine and run herdr from your phone.
- •Non-ASCII terminal input is no longer dropped when UTF-8 characters arrive split across multiple reads.
- •Native agent detection now clears agents after their foreground process exits and control returns to the shell, preventing stale agent status in the sidebar.
- •Pane contents no longer shift horizontally when scrollback appears, keeping the scrollbar gutter stable.
v0.5.4
v0.5.4
May 2, 2026
- •Visible active-tab panes that finish while the outer terminal is unfocused are now marked as seen when you return to herdr, preventing stale done/attention indicators.
- •IME candidate windows and mobile SSH cursor tracking now stay anchored to the focused pane during client redraws, including apps that hide the cursor, instead of drifting to sidebar or repaint positions.
Showing 30 of 57