Compare

Which agent tool fits how you work?

Several good tools help you keep up with coding agents. They make different trade-offs. Here is how they line up, including where the others are the better choice.

In one line each

  • Pilothouse — a vendor-neutral daemon: your rules before every tool call, approvals routed to your phone only when you're away, nothing hosted.
  • herdr — a terminal multiplexer built for agents: panes, workspaces, 22+ agents, SSH multi-machine.
  • Kelpie — a Mac desktop board that shows which agents need you, with a strong worktree-to-PR flow.
  • Happy — native mobile and desktop apps for Claude Code and Codex, over an end-to-end encrypted relay.
  • Claude Remote Control — Claude Code's own way to continue sessions from the Claude apps.
  • VibeTunnel — your terminal in a browser, for any CLI.
  • tmux + ntfy — a hook that curls a push notification. Simple and transparent.

Side by side

Feature comparison of Pilothouse, herdr, Kelpie, Happy, Claude Remote Control, VibeTunnel and tmux plus ntfy
FeaturePilothouseherdrKelpieHappyClaude Remote ControlVibeTunneltmux + ntfy scripts
What it isSingle Go binary: daemon, CLI, terminal inbox, phone web appTerminal multiplexer and runtime for agents (Rust)Mac desktop “attention board” for agentsiOS/Android/web app, desktop app and CLI wrapperBuilt into Claude Code; drive sessions from the Claude appsTerminal sessions in your browserA few lines of hook config and curl
LicenseYes: Apache-2.0Yes: Apache-2.0No: ProprietaryYes: MITNo: ProprietaryYes: MITYours
PriceFreeFree; Herdr Cloud on a waitlistFree download (pricing not stated)Free; voice is paidIncluded in Claude Pro, Max, Team, EnterpriseFreeFree
PlatformsmacOS, Linux (Windows on the roadmap)macOS, Linux, Windows (beta)macOS, Apple SiliconiOS, Android, web; desktop on macOS, Windows, LinuxClaude iOS/Android apps and claude.aimacOS app; Linux via npmAnywhere curl runs
AgentsClaude Code, Codex22+ agent CLIsClaude Code, Codex, Cursor, OpenCodeClaude Code, Codex (Grok in the new runtime)Claude Code onlyAny CLI (not agent-aware)Whatever you script
Keep your terminal and how you launch agentsYes: Yes — official hooks; any terminal, even inside tmux or herdrPartly: Agents run inside herdr panesPartly: Reads sessions from disk; sessions it starts run in tmuxPartly: Start agents through happy (or its own runtime)Yes: Yes — /rc in a running sessionPartly: Start sessions with the vt prefixYes: Yes
Your rules before every tool callYes: YAML + CEL, user and repo files, any deny winsNo: No documented policy engineNo: NoNo: No user-written rulesPartly: Claude’s own allow/ask/deny permission rulesNo: NoNo: Not unless you write it
Approve from your phoneYes: Yes — each device signs its decisionsNo: No first-party mobile clientYes: Yes — board shared over your Tailscale (off by default)Yes: Yes — native appsYes: YesPartly: By typing into the remote terminalPartly: Usually one-way alerts; two-way scripts exist
Phone notificationsYes: Web Push, ntfy (with buttons), Slack/Discord webhooks, desktopPartly: Toasts, terminal and macOS notifications; phone only via pluginsPartly: Desktop notifications you can answer; phone push not documentedYes: Native pushYes: Yes — push for permission prompts and questionsPartly: Web Push for bell and command eventsYes: ntfy push
Presence-aware (no phone buzz while you’re at the desk)Yes: Yes — OS idle time; manual overrideNo: Not documentedNo: Not documentedNo: Not documentedYes: Skips push while you’re focused in the terminalNo: NoNo: No
Works without an accountYes: No accountYes: No accountYes: No accountPartly: Key-based account (your phone holds the key)No: Needs a Claude subscriptionYes: No accountYes: No account (pick an unguessable ntfy topic)
How the phone reaches your machineYour own Tailscale (HTTPS via Tailscale Serve). No ports opened.SSH between machines; Cloud relay plannedYour own TailscaleEnd-to-end encrypted relay; hosted by default, self-hostableRelayed through Anthropic over TLSTailscale or ngrokntfy.sh or self-hosted ntfy
Worktree tasksYes: pilothouse task new → worktree + branch + agentYes: Yes, from the sidebarYes: Yes — plus ports, dev servers and a PR flowNo: Not documentedPartly: Server mode can spawn worktreesNo: NoNo: No
Several machines in one viewPartly: Not yet — one daemon per machineYes: Yes, over SSHNo: Not documentedYes: YesYes: YesNo: NoPartly: If you script it

Facts about other products were checked on 22 October 2026 from each project's own website, docs or source code. Products change quickly — if something here is out of date, please open an issue and we'll fix it. Omnara, which used to offer a Claude Code mobile client, has since relaunched as an agent platform, so it isn't listed.

Detailed comparisons

When Pilothouse is not the right tool

  • You only use Claude Code, have a Claude subscription and want zero setup: Claude Remote Control is built in.
  • You want a full chat UI on your phone and don't use Tailscale: Happy.
  • You want a new terminal workspace for many agents: herdr.
  • You're on Windows: Pilothouse doesn't support it yet.
  • You need agents isolated from your machine: use containers or VMs (Pilothouse can run inside them, but it is not a sandbox).