Codeman vs Happy: self-hosted dashboard or native mobile app
On this page
What Happy isWhat Codeman isSide by sideChoose Happy if...Choose Codeman if...Using bothHappy is the better fit if you want native iOS and Android apps for Claude Code or Codex, push notifications and voice, with no web server or network setup of your own, because its end-to-end encrypted relay handles the connection. Codeman is the better fit if you want many agent terminals side by side in one self-hosted dashboard, more CLIs, and features for unattended runs, and you are willing to set up how your phone reaches your machine.
What Happy is
Happy is a mobile and web client for coding agents. You install the CLI with npm install -g happy and run happy claude or happy codex where you would have run claude or codex. The session shows a QR code; scan it with the iOS or Android app, open the web app, or use the macOS desktop app. When you take control from the phone, Happy restarts the session in remote mode, and pressing any key on the computer switches it back. A background daemon lets you start new sessions from the phone while the computer is online.
Beyond Claude Code and Codex, its CLI README lists Antigravity (happy agy), OpenClaw and any ACP-compatible agent such as OpenCode through happy acp. It sends push notifications when an agent needs permission or hits an error, and it has a realtime voice mode; its repository documents a free monthly voice allowance with a subscription beyond it. All traffic is end-to-end encrypted, and while the CLI uses Happy's hosted server by default, happy server runs a self-hosted sync server instead. The app can also create git worktrees, and a separate Happy Agent CLI creates, prompts and monitors sessions from scripts. Happy is MIT licensed.
What Codeman is
Codeman is a self-hosted web server that runs agent CLIs inside persistent tmux sessions and streams each real terminal to a browser, phone included. It supports nine CLIs (Claude Code, Codex, OpenCode, Gemini CLI, Antigravity, Pi, Grok Build, DeepSeek Harness, OMP) plus plain shells, flags waiting or blocked agents on their tabs and through web push, and for Claude sessions adds auto-resume after a usage limit and live subagent windows. Cron jobs, Docker containers and remote SSH sessions are built in. It needs Node.js 22+ and tmux, runs on macOS and Linux (Windows through WSL2), and is MIT licensed.
Side by side
| Happy | Codeman | |
|---|---|---|
| Clients | iOS, Android, web, macOS app | Any browser, installable as a PWA; codeman tui in a terminal |
| Native mobile apps | Yes | No |
| Reaching your machine from the phone | Hosted relay by default, self-hostable | You set it up: Tailscale, Cloudflare tunnel or LAN plus password (Remote Access) |
| End-to-end encryption | Yes | No relay involved; the browser talks to your own server over the route you choose |
| What the phone shows | Happy's own session view | The CLI's own terminal (Mobile Guide) |
| Agents | Claude Code, Codex, Antigravity, OpenClaw, ACP agents | Nine CLIs plus shell (Agent CLIs) |
| Start new sessions from the phone | Yes, through the daemon | Yes |
| Push notifications | Yes | Yes; on iOS the web app must be on the home screen first |
| Voice | Yes, realtime voice conversation | Dictation only (Claude login, Deepgram or browser speech) |
| Resume after a usage limit | Not in README | Yes, Claude sessions only |
| Subagent windows | Not in README | Yes, Claude sessions only (Watching Agents Work) |
| Scheduled jobs | Not in README | Yes (Cron Jobs) |
| Isolation | Experimental OS-level sandbox | Docker cases, one container per project |
| License | MIT | MIT |
Choose Happy if...
- You want a real app from the App Store or Play Store rather than a web app, and a macOS app on the desktop.
- You do not want to run a web server or configure Tailscale, a tunnel or a password. Codeman needs that step before your phone can reach it; Happy's relay covers it, and you can still self-host the relay later.
- End-to-end encryption through a relay is the model you want.
- You mainly use Claude Code or Codex and like the switch-back-with-one-key flow between desk and phone.
- You want to talk to your agent by voice, not just dictate a prompt.
Choose Codeman if...
- You want to see the agent's real terminal on the phone, with every dialog and slash command as the CLI draws it.
- You run many sessions across several projects and want one board that shows which of them are waiting on you (Notifications).
- You use Gemini CLI, Pi, Grok Build, DeepSeek Harness or OMP.
- You leave Claude sessions running overnight and want them to pick up again when a usage limit resets (Keeping Agents Running).
- You want the dashboard served straight from your own machine with no sync server in between, or need Docker isolation per project, agents on remote hosts over SSH, or scheduled prompts.
Using both
They do not share state and run fine on the same machine. A Codeman shell session is an ordinary terminal living in tmux, so you can start happy claude inside one, though we have not tested how Happy's switch between local and remote mode behaves there. The simpler split is Happy for quick check-ins from the phone app on one or two sessions, and Codeman for the larger set of long-running sessions you manage from a browser.
Checked against Happy's README on 2026-09-25 (23,898 stars). Spotted something out of date? Open an issue.