Choose Happy if…
- You want a native mobile app with a full chat UI, not just approvals.
- You don’t use Tailscale and want an end-to-end encrypted relay that just works.
- You want voice, multiplayer sessions, or several machines in one app.
Happy gives you native phone and desktop apps for Claude Code and Codex through an end-to-end encrypted relay. Pilothouse keeps everything on your machine, adds rules before every tool call, and works with agents however you launch them.
Happy is an MIT-licensed project with native iOS and Android apps, a web app and a desktop app. Its original CLI wraps Claude Code and Codex (you start them with happy claude or happy codex; that CLI is now in maintenance mode) and a newer runtime handles Claude, Codex and Grok. You answer permission requests from the app, and traffic goes through an end-to-end encrypted relay that is hosted by default and can be self-hosted.
| Feature | Pilothouse | Happy |
|---|---|---|
| What it is | Single Go binary: daemon, CLI, terminal inbox, phone web app | iOS/Android/web app, desktop app and CLI wrapper |
| License | Yes: Apache-2.0 | Yes: MIT |
| Price | Free | Free; voice is paid |
| Platforms | macOS, Linux (Windows on the roadmap) | iOS, Android, web; desktop on macOS, Windows, Linux |
| Agents | Claude Code, Codex | Claude Code, Codex (Grok in the new runtime) |
| Keep your terminal and how you launch agents | Yes: Yes — official hooks; any terminal, even inside tmux or herdr | Partly: Start agents through happy (or its own runtime) |
| Your rules before every tool call | Yes: YAML + CEL, user and repo files, any deny wins | No: No user-written rules |
| Approve from your phone | Yes: Yes — each device signs its decisions | Yes: Yes — native apps |
| Phone notifications | Yes: Web Push, ntfy (with buttons), Slack/Discord webhooks, desktop | Yes: Native push |
| Presence-aware (no phone buzz while you’re at the desk) | Yes: Yes — OS idle time; manual override | No: Not documented |
| Works without an account | Yes: No account | Partly: Key-based account (your phone holds the key) |
| How the phone reaches your machine | Your own Tailscale (HTTPS via Tailscale Serve). No ports opened. | End-to-end encrypted relay; hosted by default, self-hostable |
| Worktree tasks | Yes: pilothouse task new → worktree + branch + agent | No: Not documented |
| Several machines in one view | Partly: Not yet — one daemon per machine | Yes: Yes |
iOS and Android apps with native push and a full conversation view. Pilothouse ships a web app (PWA).
Happy’s encrypted relay needs no VPN. Pilothouse v0.1 reaches your phone through Tailscale; an end-to-end relay is on our roadmap.
Send prompts, read the whole session, voice and multiplayer. Pilothouse’s phone app is focused on the inbox and approvals.
Several machines on one account. Pilothouse v0.1 is one daemon per machine.
Pilothouse checks your rules on every PreToolUse hook. Happy has no user-written rules.
Pilothouse uses the agents’ official hooks, so a claude started from any terminal or IDE is covered. Wrap mode (pilothouse run) is optional.
No account and no relay: the web app is served by your own machine over your tailnet.
At your desk, Pilothouse stays out of the way and the agent’s own dialog shows. Away, your phone gets it.
Facts about Happy checked on 22 October 2026 from: happy.engineering, Happy docs: how it works, Happy on GitHub. Spotted something out of date? Tell us.
It doesn't replace your terminal or your agents. Install, run pilothouse setup, and keep working.
curl -fsSL https://pilothouse.dev/install.sh | shbrew install xasdta/tap/pilothousethen run pilothouse setup