Skip to content

Releases: ogulcancelik/herdr

Preview build 2026-06-25-7811d84f15f1

25 Jun 14:45

Choose a tag to compare

Pre-release

Preview build 2026-06-25-7811d84f15f1

Built from 7811d84f15f1 on master.
Base stable: v0.7.1
Compare: v0.7.1...7811d84

Fixed

  • Ignore modifier-only windows input
  • Render cjk pane border labels
  • Preserve alacritty input on windows
  • Detect antigravity background-task wait without /tasks hint

v0.7.1

24 Jun 13:47

Choose a tag to compare

Added

  • Added [update].version_check and [update].manifest_check so background Herdr version checks and remote agent-detection manifest checks can be disabled independently. Manual herdr update and 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, or fence, allowing Herdr to use the named agent's screen manifest when /proc cannot expose the real command. (#679)
  • Added ui.pane_borders and ui.pane_gaps to make split pane dividers and spacing configurable. (#271)

Changed

  • 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)

Fixed

  • 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+V as a clipboard-image paste trigger, so pane apps such as Vim and Neovim receive block-visual Ctrl+V even when the desktop clipboard contains an image. herdr --remote keeps keys.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_switch can also switch Herdr's own UI between configured dark_name and light_name themes. (#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 omp in the same pane, and Herdr can resume it with omp --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)
  • Temporary pane commands launched from API flows no longer steal focus from the previously focused pane after they finish. (#658)
  • Root agent session restore now ignores child process reports that would otherwise overwrite the saved session for the owning pane. (#712)
  • Kitty file-transfer media queries are now answered, allowing pane apps that rely on kitty graphics file support to detect image/file media capability correctly. (#732)
  • Idle or slow clients no longer block server writes to other clients while the blocked client is waiting for output. (#726)
  • GitHub Copilot CLI ask_user accept prompts are now detected as blocked so the Agents panel shows that the pane is waiting for input. (#725)
  • Pane reads now skip wide-character spacer cells, avoiding duplicated or malformed output around double-width characters. (#698)
  • Split pane border intersections now use the active pane color consistently. (#742, thanks @cullendotdev)
  • The Windows installer checksum fallback no longer depends on Get-FileHash, improving compatibility with constrained PowerShell environments. (#751)
  • Pi launched through npm wrappers on Windows is now detected as Pi instead of a generic wrapped process. (#754)
  • Windows builds now force the system ConPTY path through a vendored portable-pty patch, avoiding the bundled-path startup failure seen in affected Windows environments. (#761)
  • Key release events that fall back to encoded input no longer double-send text into pane apps. (#769)
  • Remote clients now allow a longer initial handshake, improving herdr --remote startup over high-latency links. (#753)

Preview build 2026-06-22-24c7377de01c

22 Jun 12:16

Choose a tag to compare

Pre-release

Preview build 2026-06-22-24c7377de01c

Built from 24c7377de01c on master.
Base stable: v0.7.0
Compare: 517ca81...24c7377

Added

  • Add plugin marketplace blacklist
  • Add plugin marketplace
  • Add background update check toggles
  • Sync theme with host appearance
  • Sort agent panel by priority

Fixed

  • Use active pane color for border intersections (#742)
  • Skip wide spacer cells in pane reads
  • Detect copilot ask_user accept prompt
  • Block idle client writer
  • Enable kitty file media
  • Check out existing branches for worktree create
  • Support devin hook on python 3.9
  • Release pi and omp agents on shutdown
  • Add configurable pane gaps
  • Protect root agent restore sessions
  • Preserve focus after temporary pane commands
  • Support agent env hints
  • Preserve windows terminal multiline paste
  • Defer api worktree operations
  • Reanchor lifecycle hook generations
  • Emit plugin lifecycle events from ui worktree flows
  • Scope image paste shortcut to remote
  • Handle cjk branch truncation
  • Isolate omp hook state to ui sessions
  • Restore omp sessions after same-pane restart
  • Satisfy windows clippy
  • Hold lone escape while awaiting host color reply
  • Stabilize flaky plugin capture tests and auto-trigger website deploy

Maintenance

  • Install bun in preview preflight
  • Skip named pipe timeout on windows
  • Add windows target lint to local check

v0.7.0

15 Jun 16:20

Choose a tag to compare

Added

  • 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 in plugin.list, offline registry fallback, and a human-readable default plugin list with --json for 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 devin hooks that report session ids for restore with devin --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 across pane.move.
  • Added pane.move and herdr pane move to 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.

Changed

  • Bumped the client/server protocol version to 14 for pane.move compatibility. (#299)
  • Public workspace, tab, and pane ids are now short stable handles such as w1, w1:t1, and w1:p1; closed tab and pane ids no longer retarget later resources. (#569)

Fixed

  • pane.send_keys and pane.send_input.keys now accept Herdr key-combo strings such as ctrl+h, ctrl+j, ctrl+k, and ctrl+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 nested claude -p startup 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~ through ESC[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)
  • Pane resize keybindings now shrink panes again instead of only being able to grow them. (#562)
  • Windows pane cursor rendering is now stable instead of showing a misplaced or flickering cursor. (#556)
  • Tab identity is now preserved across restored sessions.
  • Idle panes now poll their PTY less frequently, reducing CPU use while sessions are inactive.
  • Captured pane URL clicks, including plugin link handlers, now use Ctrl-click on macOS too because captured terminal mouse reports do not expose Cmd-click separately from plain click. (#307)

Preview build 2026-06-15-517ca8163f7c

15 Jun 18:22

Choose a tag to compare

Pre-release

Preview build 2026-06-15-517ca8163f7c

Built from 517ca8163f7c on master.
Base stable: v0.7.0
Compare: v0.7.0...517ca81

Maintenance

  • Fix preview release baseline after stable
  • Add plugin trust and security guidance

Preview build 2026-06-12-7ba4bfe90e7a

12 Jun 04:45

Choose a tag to compare

Pre-release

Preview build 2026-06-12-7ba4bfe90e7a

Built from 7ba4bfe90e7a on master.
Base stable: v0.6.10
Compare: 7d6eaf5...7ba4bfe

Added

  • Add agent manifest update command

Fixed

  • Stabilize windows pane cursor rendering
  • Allow resize keys to shrink panes
  • Stop lifecycle authority detection thrash (#565)
  • Stop marking codex background terminals as working

Maintenance

  • Bump website open graph card url
  • Refresh website open graph cards
  • Add v0.6.10 hotfix changelog entry
  • Pin github actions to shas
  • Link windows beta docs in sidebar
  • Finalize release docs and add runtime blog

v0.6.10

11 Jun 10:21

Choose a tag to compare

This is a hotfix release for v0.6.9. See the v0.6.9 notes for the full feature release.

Fixed

  • Lifecycle-authority agent integrations such as Pi and OpenCode no longer trigger a repeated detection reset loop that could flood logs, drive high CPU, and make the UI lag or stop responding. (#560, #565, thanks @dzevs)

v0.6.9

10 Jun 20:57

Choose a tag to compare

Fixed

  • 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 output instead of the literal Working label. (#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+n were 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)
  • Nested agent session reports from child terminals no longer overwrite the owning pane's restored agent session id. (#511)
  • Headless servers now avoid repeated scrollback rendering work for inactive panes, reducing CPU in large sessions. (#512)
  • Mouse-click handling now respects ui.prompt_new_tab_name, so mouse-created tabs follow the same naming prompt setting as keyboard-created tabs. (#521, thanks @imrajyavardhan12)
  • Pasting now works in modal text inputs, including rename prompts, command prompts, and worktree dialogs. (#302)
  • Linux clipboard image reads now validate image payloads before accepting them, preventing malformed clipboard data from reaching pane image paste flows. (#534)

Added

  • Added remote auto-updates for agent detection manifests, with per-agent validation, local override precedence, herdr server agent-manifests diagnostics, and explain output showing remote manifest status.
  • Added herdr server update-agent-manifests to fetch remote agent detection manifests immediately, reload the running server, and print the updated manifest status.
  • Added herdr agent explain to show the manifest source, matched rule, evaluated matcher and region evidence, visible evidence flags, skipped-update reason, and idle fallback reason for live panes or saved screen fixtures.
  • Added herdr integration install kimi for Kimi Code CLI hooks that report lifecycle state and session ids through Herdr's socket API. When native agent session restore is enabled, Herdr can resume Kimi panes with kimi --session <id>. (#431, #463, thanks @wbxl2000)
  • Added herdr integration install droid for Factory Droid hooks that report session ids through Herdr's socket API. When native agent session restore is enabled, Herdr can resume Droid panes with droid --resume <id>.
  • Added herdr integration install kilo for Kilo Code CLI plugins that report lifecycle state and session ids through Herdr's socket API. When native agent session restore is enabled, Herdr can resume Kilo panes with kilo --session <id>.
  • Added herdr integration install cursor for Cursor Agent CLI hooks that report session ids through Herdr's socket API. When native agent session restore is enabled, Herdr can resume Cursor panes with cursor-agent --resume <id>. (#506, thanks @udirom)
  • Added directional pane swap with prefix+shift+h/j/k/l, a pane context-menu swap action, pane layout/neighbor/edge/focus/resize socket APIs, matching CLI commands, and optional pane split --ratio support. (#330, #421)
  • Added herdr pane zoom and the pane.zoom socket API to toggle, set, or clear tab-local pane zoom from scripts and integrations.
  • Added toast ergonomics controls for delayed agent notifications, in-app toast placement, copied-to-clipboard feedback, and the notification.show socket API with herdr notification show and optional none, done, or request sounds. (#486)

Changed

  • OpenCode installed with the current Herdr plugin now reports lifecycle state directly instead of relying on screen manifest detection. Kimi Code CLI 0.14.0 or newer now reports full lifecycle state through hooks, including interrupts. Droid and Qoder CLI now report native session identity while leaving lifecycle state to screen manifest detection.

Preview build 2026-06-10-7d6eaf5f26d1

10 Jun 18:38

Choose a tag to compare

Pre-release

Preview build 2026-06-10-7d6eaf5f26d1

Built from 7d6eaf5f26d1 on master.
Base stable: v0.6.8
Compare: 38f3b29...7d6eaf5

Added

  • Gate kimi integration install behind minimum agent version
  • Add manifest-based detection engine
  • Distribute agent detection manifests

Fixed

  • Remove pty taint from agent detection

Maintenance

  • Fix windows tilde env provider
  • Make worktree tilde expansion env-independent
  • Symlink CLAUDE.md to AGENTS.md
  • Clarify scrollback behavior for alternate-screen apps
  • Apply cargo fmt
  • Publish updated agent detection manifests

Preview build 2026-06-10-38f3b290deed

10 Jun 04:41

Choose a tag to compare

Pre-release

Preview build 2026-06-10-38f3b290deed

Built from 38f3b290deed on master.
Base stable: v0.6.8
Compare: 3e2bdba...38f3b29

Fixed

  • Validate clipboard image payloads
  • Support paste in modal inputs
  • Respect prompt_new_tab_name in mouse click handlers (#521)
  • Migrate legacy windows bin backups

Maintenance

  • Publish agent detection manifests