| What it is | Single Go binary: daemon, CLI, terminal inbox, phone web app | Terminal multiplexer and runtime for agents (Rust) | Mac desktop “attention board” for agents | iOS/Android/web app, desktop app and CLI wrapper | Built into Claude Code; drive sessions from the Claude apps | Terminal sessions in your browser | A few lines of hook config and curl |
|---|
| License | ✓Yes: Apache-2.0 | ✓Yes: Apache-2.0 | –No: Proprietary | ✓Yes: MIT | –No: Proprietary | ✓Yes: MIT | Yours |
|---|
| Price | Free | Free; Herdr Cloud on a waitlist | Free download (pricing not stated) | Free; voice is paid | Included in Claude Pro, Max, Team, Enterprise | Free | Free |
|---|
| Platforms | macOS, Linux (Windows on the roadmap) | macOS, Linux, Windows (beta) | macOS, Apple Silicon | iOS, Android, web; desktop on macOS, Windows, Linux | Claude iOS/Android apps and claude.ai | macOS app; Linux via npm | Anywhere curl runs |
|---|
| Agents | Claude Code, Codex | 22+ agent CLIs | Claude Code, Codex, Cursor, OpenCode | Claude Code, Codex (Grok in the new runtime) | Claude Code only | Any CLI (not agent-aware) | Whatever you script |
|---|
| Keep your terminal and how you launch agents | ✓Yes: Yes — official hooks; any terminal, even inside tmux or herdr | ◐Partly: Agents run inside herdr panes | ◐Partly: Reads sessions from disk; sessions it starts run in tmux | ◐Partly: Start agents through happy (or its own runtime) | ✓Yes: Yes — /rc in a running session | ◐Partly: Start sessions with the vt prefix | ✓Yes: Yes |
|---|
| Your rules before every tool call | ✓Yes: YAML + CEL, user and repo files, any deny wins | –No: No documented policy engine | –No: No | –No: No user-written rules | ◐Partly: Claude’s own allow/ask/deny permission rules | –No: No | –No: Not unless you write it |
|---|
| Approve from your phone | ✓Yes: Yes — each device signs its decisions | –No: No first-party mobile client | ✓Yes: Yes — board shared over your Tailscale (off by default) | ✓Yes: Yes — native apps | ✓Yes: Yes | ◐Partly: By typing into the remote terminal | ◐Partly: Usually one-way alerts; two-way scripts exist |
|---|
| Phone notifications | ✓Yes: Web Push, ntfy (with buttons), Slack/Discord webhooks, desktop | ◐Partly: Toasts, terminal and macOS notifications; phone only via plugins | ◐Partly: Desktop notifications you can answer; phone push not documented | ✓Yes: Native push | ✓Yes: Yes — push for permission prompts and questions | ◐Partly: Web Push for bell and command events | ✓Yes: ntfy push |
|---|
| Presence-aware (no phone buzz while you’re at the desk) | ✓Yes: Yes — OS idle time; manual override | –No: Not documented | –No: Not documented | –No: Not documented | ✓Yes: Skips push while you’re focused in the terminal | –No: No | –No: No |
|---|
| Works without an account | ✓Yes: No account | ✓Yes: No account | ✓Yes: No account | ◐Partly: Key-based account (your phone holds the key) | –No: Needs a Claude subscription | ✓Yes: No account | ✓Yes: No account (pick an unguessable ntfy topic) |
|---|
| How the phone reaches your machine | Your own Tailscale (HTTPS via Tailscale Serve). No ports opened. | SSH between machines; Cloud relay planned | Your own Tailscale | End-to-end encrypted relay; hosted by default, self-hostable | Relayed through Anthropic over TLS | Tailscale or ngrok | ntfy.sh or self-hosted ntfy |
|---|
| Worktree tasks | ✓Yes: pilothouse task new → worktree + branch + agent | ✓Yes: Yes, from the sidebar | ✓Yes: Yes — plus ports, dev servers and a PR flow | –No: Not documented | ◐Partly: Server mode can spawn worktrees | –No: No | –No: No |
|---|
| Several machines in one view | ◐Partly: Not yet — one daemon per machine | ✓Yes: Yes, over SSH | –No: Not documented | ✓Yes: Yes | ✓Yes: Yes | –No: No | ◐Partly: If you script it |
|---|