GUI-only release. macOS 14.2+ universal signed/notarized DMG; x86_64 and ARM64 Linux .deb, .rpm, Arch packages and tarballs (glibc 2.39+); Authenticode-signed Windows x86_64 and ARM64 installers and zips; installed copies update in the app. Requires an existing Herdr daemon. Source: 98916c3.
[v20261109.1] - 2026-11-09
Added
- [herdr-2] Swap, step through, and equalize Herdr 2 panes from the keyboard
- [herdr-2] Add tab and pane menus with rename to Herdr 2 tabs
- [herdr-2] Start new Herdr 2 terminals in their workspace's folder
- [menus] Hide the menu bar on Linux and Windows
- [workspaces] Keep several Herdr 2 workspaces in the app
- [workspaces] Show Git details and checkpoints on Herdr 2 workspaces
- [teleport] Move a worktree's Herdr 2 tabs with it
- [teleport] Rebuild Herdr 2 tabs in the destination's Herdr 2
- [remote] Split, zoom, and close Herdr 2 tabs from the phone
- [remote] List Herdr 2 workspaces under their repository and branch
- [remote] Show the workspaces Sheprd keeps for Herdr 2 on the phone
- [remote] Size and scroll Herdr 2 terminals from the phone
- [remote] Show Herdr 2 workspaces' changes, checks, and PRs on the phone
- [cloud] Install the pinned herdr-core on new machines and sandbox images
- [browser] Open pages for agents in Herdr 2 terminals on SSH hosts
- [automations] Run automation agents on Herdr 2
- [herdr-2] Search code and open the editor from Herdr 2 panes
- [herdr-2] Show the Git and pull request chips for Herdr 2 panes
- [remote] Put sheprd-acp beside remote control on paired machines
- [devices] Install Herdr 2 on a saved device from its menu
- Ring the bell and copy OSC 52 text from Herdr 2 terminals
- Show kitty graphics images in Herdr 2 terminals
- [remote] Start Herdr 2 for a phone's new work on machines without Herdr 1
- [remote] Notify the phone when an agent in a terminal waits or finishes
- [remote] Put the release's sheprd-acp on Linux machines paired with a phone
- Open links and take dropped files in Herdr 2 terminals
- Apply Herdr's terminal settings and restore Herdr 2 scrollback
- [herdr-2] List the processes of a Herdr 2 terminal with
sheprd processes - [herdr-2] Show the listening ports of Herdr 2 terminals
- [herdr-2] Run
sheprdcommands from Herdr 2 terminals - [remote] Put a phone's new Herdr 2 tabs and chats in the workspace it chose
- [remote] Keep a phone's new Herdr 2 workspace as a Sheprd workspace
- [remote] Rename Herdr 2 tabs, panes, chats, and workspaces from the phone
- [core] Find, clear, and edit scrollback in Herdr 2 panes
- [herdr-core] Show which agent runs in each Herdr 2 terminal
- [herdr-core] Name agents Sheprd does not know by the name they report
- [herdr-core] Play agent sounds and count Herdr 2 agents on the badge
- [core] Copy mode and scrollback selection in Herdr 2 panes
- [core] Scroll Herdr 2 panes smoothly through their scrollback
- [core] Annotate text selected in Herdr 2 panes
- [herdr-2] List Herdr 2 panes in Go To
- [herdr-2] Move Herdr 2 panes to a new tab or another tab
- [herdr-2] List Herdr 2 tabs in Go To above their panes
- [overview] List Herdr 2 agents beside this computer's Herdr 1 agents
- [overview] Reply to Herdr 2 agents from the Overview
- [chat] Move a Herdr 2 terminal agent into a chat
- [chat] Label a Herdr 2 terminal moved into a chat so every client finds it
- [remote] Move an agent in a Herdr 2 terminal into a chat from the phone
- [hosts] Keep Herdr 2 workspaces on SSH, cloud, and WSL hosts
Changed
- [window] Move the agent skill offer out of window commands
- [herdr-2] Read the shown pane's branch with the kept checkouts
- [herdr-core] Name the agent identity module identity
- [window] Keep the browser skill offer in its own module
- [browser] Build Herdr 2 tab locations with their constructor
- [herdr-core] Drop the window's own queue of Herdr 2 agent news
- [overview] Name Herdr 2 agents with the shared agent_name
Fixed
- [herdr-2] End a closed tab's terminals and keep panes through a reconnect
- [herdr-2] End a closed workspace's terminals once the core answers
- [herdr-2] End a pane split off just before its tab closed
- [herdr-2] Equalize a row of more than ten Herdr 2 panes evenly
- [herdr-2] Keep another window's Herdr 2 tab changes when this one saves
- [logs] Keep sheprd-session's events in the app log
- [workspaces] Focus, folders, and late shells of Herdr 2 workspaces
- [workspaces] Give each new Herdr 2 workspace its shell
- [workspaces] Open local projects and Go To entries in Herdr 2 from any host
- [workspaces] Hide Herdr 1's tabs while a Herdr 2 workspace is in front
- [workspaces] Checkpoints menu and local watch for Herdr 2 workspaces
- [workspaces] PR badges, restore warnings, and checkpoint hosts for Herdr 2
- [mods] Keep the focused workspace of hosts not shown
- [workspaces] Keep given names and tell mods the Herdr 2 tab shown
- [teleport] Reach the app's own core and keep Herdr 2 tabs changed mid-move
- [acp] Build again after two merges defined the same id reader
- [teleport] Wait out a Herdr 2 handoff and close tabs whose panes ended
- [teleport] Find a host's Herdr 2 where the app finds it
- [teleport] Never leave a moved Herdr 2 program without a tab
- [teleport] Open a move's Herdr 2 tabs even after its window closed
- [teleport] Keep a move's Herdr 2 tabs in its own session
- [remote] Answer a phone's split once it lands, and close the desktop tab
- [remote] End a closed Herdr 2 tab's terminals before Sheprd drops it
- [remote] End a split that lands while a phone closes its Herdr 2 tab
- [remote] Show the new shell after a phone splits a Herdr 2 tab
- [remote] Bound the phone questions Sheprd queues while answers run
- [remote] Keep fresh checkout readings when the cache is full
- [sidebar] Turn a conflicted pull request's badge red on the next refresh
- [remote] List kept Herdr 2 workspaces first beside the desktop's spaces
- [remote] Keep a phone's hold and scroll position honest on Herdr 2
- [remote] Keep a scrolled view in place when a full-screen program exits
- [remote] Keep Herdr 2 terminals at the phone's size after a stream recovers
- [remote] Return the desktop's size when a phone's hold fails to let go
- [remote] Keep the desktop's size when a phone closes one of its views
- [remote] Keep a phone's scroll place when a Herdr 2 pane rewraps
- [cloud] Add herdr-core in its own setup step, even where Herdr was there
- [cloud] Keep setting up a machine when its herdr-core step cannot start
- [cloud] Keep a Daytona sandbox's SSH config while herdr-core installs
- [browser] Serve each Herdr 2 page request once and only where shown
- [automations] Wait on blocked Herdr 2 agents and stop with the run
- [automations] Read Git's whole output so a chatty hook keeps its worktree
- [automations] Say an agent's terminal is here when another host is shown
- [automations] Join the Herdr 2 core the app uses
- [automations] Free a Herdr 2 agent's slot when its program dies
- [herdr-2] Look up the pull request of the shown Herdr 2 checkout
- [herdr-2] Keep a Herdr 2 workspace's folder when its first pane moves
- [herdr-2] Open review files beside the Herdr 2 pane the review came from
- [review] Copy notes from a Herdr 2 review instead of sending to Herdr
- [review] Open edits beside the pane that last opened the review
- [remote] Find sheprd-acp installed after the daemon, and only a runnable one
- [remote] Keep a host pairing going when its sheprd-acp copy fails
- [devices] Keep a connected Herdr 2 host's tabs and run one install at a time
- [devices] Refresh Herdr 2 in every window after install, count live agents
- [herdr-2] Keep a terminal asked for while herdr-core installs
- [herdr-2] Dial a host once after installing its herdr-core
- Ring Herdr 2 bells only for the workspace shown
- Hold back a muted host's Herdr 2 bells
- Keep the Herdr 2 stand-in shell quiet while its workspace is hidden
- [herdr-2] Keep the keyboard on a Herdr 2 pane both windows left open
- [herdr-2] Open a Herdr 2 pane a full tab cannot take in a tab of its own
- [herdr-2] Keep a Herdr 2 divider drag on the split it started on
- [herdr-2] Keep Herdr 2 pane menus, names, and closes right across windows
- Bound Herdr 2 image placements' source and cursor moves
- Keep text after an unfinished Herdr 2 image and name placements uniquely
- Scroll a tall Herdr 2 image's whole height
- Refuse a Herdr 2 image whose size overflows instead of crashing
- Keep replaced Herdr 2 images and size one-sided ones whole
- [remote] Start Herdr 2 when a phone opens a machine with nothing running
- [remote] Wait a minute after a failed Herdr 2 start before a view retries
- [remote] Leave Herdr 2 unstarted when Herdr 1 is on the login PATH
- [remote] Start a herdr-core found only on the login shell's PATH
- Keep Herdr 2 images' shape as they scroll and stop markers piling up
- [remote] Alert for each pane's agent and open terminals from any alert
- [remote] Name session panes' agents as their tabs do, and leave chats out
- [remote] Open terminal alerts in the web app while offline
- [remote] Keep a finished terminal agent's elapsed time on the phone
- [release] Verify older releases without the host chat archive
- [updater] Refuse a host chat archive that holds more than its builds
- Open Herdr 2 links from the fallback shell and only on a release over them
- Keep Herdr 2 file drops and editor links on the right machine
- Open Herdr 2 file links with quotes in their name in the editor
- Open wrapped web links and newly made files in Herdr 2 panes
- End a wrapped Herdr 2 web link at the blank the terminal wrapped
- End a full-row Herdr 2 web link at its newline
- Underline Herdr 2 links only under the pointer's own pane
- Keep a passthrough right-drag free of its modifier in Herdr 2 panes
- Copy concealed Herdr 2 text as the blanks it shows
- [herdr-2] Refuse to list processes of a terminal on another machine
- [herdr-2] List Herdr 2 ports in every port view
- [herdr-2] Send commands to the window holding the calling terminal
- [herdr-2] Return page notes to Herdr 2 terminals without a Herdr session
- [herdr-2] Send commands from the stand-in shell to its window
- [herdr-2] Keep the stand-in shell shown when a page splits beside it
- [herdr-2] Show the port chips of the Herdr 2 workspace in front
- [herdr-2] Exit 8 for work commands in Herdr 2 workspaces beside Herdr
- [herdr-2] Keep Herdr 2 ports with the local daemon whose tab holds them
- [herdr-2] Open pages and wait for notes where the Herdr 2 terminal is
- [herdr-2] Keep a watched terminal's ports in the workspace driving it
- [herdr-2] Keep page notes from the stand-in shell for feedback
- [remote] Give every phone-started Herdr 2 terminal its desktop tab
- [remote] Keep a phone's later tabs in the workspace it just made
- [remote] Find a phone's workspace while the desktop shows another host
- [remote] List a phone's work in one row per workspace
- [remote] Keep a phone's new workspace when its first chat closes
- [remote] Put a phone's primary-session work in the primary session
- [remote] Keep a closed phone tab closed after Sheprd restarts
- [remote] Keep a phone tab's labels until Sheprd has saved the tab
- [remote] Clear Herdr 2 tab names and rename the right workspace
- [remote] Build Herdr 2 tab locations with the fields main now has
- [herdr-2] Share tab names across windows and badge remote tabs
- [herdr-2] Keep a tab open when closing a pane that already exited
- [herdr-2] Warn again when typing into a disconnected Herdr 2 pane
- [herdr-2] Ignore menu actions on a pane that already exited
- [herdr-2] Drop a cleared Herdr 2 tab name from the tab strip
- [core] Keep Herdr 2 history commands working from the palette and after exit
- [core] Refuse to edit a remote Herdr 2 pane's scrollback in $EDITOR
- [core] Keep an ended Herdr 2 pane when editing its scrollback
- [core] Open an ended Herdr 2 pane's scrollback editor in its own workspace
- [core] Keep the start of long input when clearing a Herdr 2 pane
- [herdr-core] Find agents behind runtime options and package entry points
- [herdr-2] Mark an SSH host's agents in the sidebar from its own terminals
- [herdr-2] Recognize agents started with bun run or deno run
- [herdr-2] Recognize agents started with nodejs
- [herdr-2] Name no agent in a terminal whose program is gone
- [herdr-2] Keep typing in a Herdr 2 tab when another window closes its pane
- [herdr-core] Sound each Herdr 2 agent change once, from any window
- [herdr-core] Keep each Herdr 2 agent's sound with its own news
- [herdr-core] Sound a hidden stand-in shell's finished turn
- [core] Keep Herdr 2 selections and smooth scrolls true to the text
- [core] Never copy other text than was selected in a Herdr 2 pane
- [core] Keep dictation out of a Herdr 2 pane while it is in copy mode
- [core] Copy a Herdr 2 search match only as it was found
- [core] Never copy rewrapped text after a Herdr 2 pane is resized
- [core] Drop copy mode's mark when a Herdr 2 pane's rows shift under it
- [core] Select the row drawn under the pointer while a Herdr 2 pane slides
- [core] Never copy text from Herdr 2 output newer than the copy checked
- [core] Drop copy mode's mark and a pending copy when a Herdr 2 pane clears
- [core] Keep Herdr 2 copy mode working after its pane reconnects
- [core] Keep Herdr 2 notes with the tab and selection they belong to
- [core] Quote only the selected text in Herdr 2 notes, under any window frame
- [core] Leave the palette its keyboard when a Herdr 2 note's quote arrives
- [core] Annotate the text copy mode marked in a Herdr 2 pane
- [core] Close a Herdr 2 note when zooming another pane hides its own
- [core] Say a Herdr 2 selection was copied only once it reaches the clipboard
- [core] Keep a new Herdr 2 selection when an earlier copy lands late
- [herdr-2] Give the keyboard back to what held it as a pane menu closes
- [herdr-2] Keep kills a closed window left unended for the other windows
- [herdr-2] Keep a Herdr 2 pane's name when it cannot move
- [herdr-2] Open Herdr 2 tab and pane menus where they were asked for
- [core] Drop files onto a Herdr 2 pane again
- [core] End a closed Herdr 2 pane after its window closes while offline
- [core] Keep a Herdr 2 kill queued until a window can reach its host
- [overview] Open a Herdr 2 agent's row in its own workspace
- [chat] Refuse to move a focused pane on another host's Herdr 2
- [chat] Stop a Herdr 2 move into a chat once chats are turned off
- [nix] Include the pinned herdr-core release in the flake's source
- [chat] Type a Herdr 2 chat line only into the terminal's own shell
- [overview] Type a reply only while its Herdr 2 agent still has the terminal
- [chat] Refuse to move a Herdr 2 agent that is its terminal's own program
- [remote] List a moved Herdr 2 agent as a chat only while its chat runs
- [remote] Offer moving Herdr 2 agents into chats on this computer only
- [herdr-2] Give the keyboard to the pane left when a menu's pane exits
- [ios] Type Chinese, Japanese, and Korean input methods into the terminal
- [ios] Keep the input method's caret at the end of its composition
- [ios] Drop an unpicked composition when the terminal keyboard goes away
- [ios] Show an input method's composition in place of the top key row
- [ios] Edit compositions where the input method says, and keep ^C working
- [ios] Type Japanese input's full-width space instead of dropping it
- [ios] Press Enter for a typed line that has a full-width space
- [ios] Give an input method one character beside a position
- [hosts] Drop a kept workspace whose host turns out to have no herdr-core
- [hosts] Name no Herdr 1 workspace in a saved host's Herdr 2 tab
Documentation
- [ssh] Say Session restore's host switch is for Herdr tabs, not Herdr 2
- [remote] Describe how a phone's Herdr 2 work reaches its workspace