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 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.
Changed
- 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)
Fixed
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)
- 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)