Added
- 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)
Changed
- 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.
Fixed
- 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)
- Claude Code background-agent wait text in scrollback no longer keeps an idle pane marked working after the background agent has completed.
- Claude Code and Codex transcript or expanded-detail viewers no longer publish a false idle state while the pane is still showing active agent status.
- Claude Code question prompts that use the arrow-glyph selector are now detected as blocked.
- Kiro sub-agent tool approval prompts are now detected as blocked instead of working. (#388)
- Shift-letter prefix bindings such as
prefix+shift+nnow work in legacy SSH terminal sessions that send uppercase letters without separate Shift metadata. (#312) - Idle panes now avoid repeated full foreground-process scans, reducing idle CPU on sessions with many panes. (#439)
- Restored native agent sessions now resume across background workspaces and tabs after the first client provides terminal context instead of waiting until each pane is focused.
- Pane input no longer waits behind the PTY actor's idle read poll, restoring responsive typing at quiet shell prompts. (#379)
- Pane apps that query OSC 4 ANSI palette colors now receive the active terminal palette response, so OpenCode and similar TUIs can enable system-theme behavior inside Herdr. (#387)
- Pane apps that query terminal capabilities with XTGETTCAP now receive supported capability responses, improving feature detection in Neovim and similar terminal apps. (#393)
- Pane text selection now derives its highlight colors from the host terminal or active Herdr palette instead of forcing the theme's blue accent. (#298)
herdr channel set previewandherdr channel set stablenow update direct installs from the selected channel immediately, reject preview on Homebrew and Nix installs before changing config, and show package-manager guidance for managed installs.- Plain
herdr updateand remote binary replacement now ask before stopping running sessions, avoid protocol-heavy prompt text, and leave the current install untouched when the user chooses not to stop active pane processes. Explicit--handoffupdate flows try live handoff without a second handoff prompt. - Remote bootstrap now uses the remote shell only for PATH discovery and runs internal probes through
/bin/sh, soherdr --remotecan detect existing installs when the remote login shell is fish. (#396)