A native macOS console for herdr — see every coding agent across all your machines, and jump straight into its live terminal.
Warning
Early stage software without full test coverage — expect bugs. PRs are very welcome!
herdr is the runtime your coding agents live on: a background server that owns their terminals, keeps them running, and knows which one is working, blocked, or done. herdrm puts a native macOS window on top of it:
- All your devices, in parallel — local herdr plus any number of remote
machines over SSH (the remote socket is forwarded through
ssh -L, so everything works identically). Every device stays connected with automatic reconnect; the sidebar aggregates them all, with a tinted name chip marking where each row lives, and the bottom-left switcher filters by device. - Spaces & Agents sidebar — every herdr workspace and every agent (claude, codex, gemini, grok, opencode, …) with live status: blocked agents bubble to the top, working ones spin, done ones get a check.
- Live terminal — selecting an agent attaches directly to its PTY
(
herdr agent attach). Full TUI, precise cursor, no chat wrapper. - Notifications — a system notification when any agent on any device finishes or needs your input; clicking it jumps straight to that agent. Agents you're actively watching never notify.
- New Agent — starts an agent in any space on any device. The picker only
offers CLIs actually installed on that device, and enables each agent's own
bypass-permissions flag by default (e.g.
--dangerously-skip-permissionsfor claude). - Search — ⌘K command palette across agents and spaces on every device.
- Light & dark, auto-updates via Sparkle, signed and notarized.
- macOS 14+
- herdr installed locally (herdrm starts the local server itself if it isn't running) and running on your remote machines
- For remote devices: OpenSSH access through your SSH config/agent, Tailscale SSH, or a password stored in the macOS login Keychain. Tailscale SSH requires Tailscale 1.98.0 or newer on the remote host for Unix-socket forwarding.
brew install owo-network/brew/herdrmDownload the latest herdrm-x.y.z.zip from
Releases, unzip, and drag
herdrm.app into /Applications. Either way the app updates itself from then on.
brew install xcodegen
make build # xcodegen + xcodebuild → build/Build/Products/Debug/herdrm.app
make run
make kit-test # HerdrKit integration tests (needs a running local herdr)Packages/HerdrKit— Swift package: NDJSON-over-Unix-socket RPC client for the herdr socket API, SSH tunnel management, device store.Sources/HerdrM— SwiftUI app; the terminal embed is SwiftTerm.
- herdr — the terminal workspace manager for coding agents that this app is a console for.
- Heeler — the iOS herdr client; herdrm borrows its domain model and transport patterns.
- waku — the sidebar design reference.
- SwiftTerm — terminal emulation.
- Sparkle — auto-updates.
- Lobe Icons and Simple Icons — agent and OS brand icons.