Skip to content

Repository files navigation

herdrm icon

herdrm

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!

herdrm — device switcher and a live claude terminal

What it does

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-permissions for claude).
  • Search — ⌘K command palette across agents and spaces on every device.
  • Light & dark, auto-updates via Sparkle, signed and notarized.

Requirements

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

Install

Homebrew

brew install owo-network/brew/herdrm

Manual

Download 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.

Build from source

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)

Architecture

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

Credits

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

Star History

Star History Chart for missuo/herdrm

About

Native macOS console for herdr — all your coding agents and their live terminals, across devices

Resources

Stars

502 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages