Start coding anywhere. Continue everywhere.
Launch a session on your laptop. Follow it live, send messages, and approve permissions from your phone, tablet, browser, or desktop — without losing context.

Run them on your own computer, with your own subscriptions or API keys.Open-source. End-to-end encrypted. Self-hostable.
curl -fsSL https://happier.dev/install | bashScroll to explore
One command. macOS, Linux, and Windows. Signed and checksum-verified. On an eligible interactive first install, guided setup opens automatically.
curl -fsSL https://happier.dev/install | bashGuided setup selects the relay before authentication, registers this computer, and configures the background service. Run it directly if the installer did not open it.
happier setupWhen a new sign-in is needed, setup prints a QR code or browser link. A phone cannot open a loopback relay address; use the same computer's browser, or give the relay a LAN, Tailscale, or HTTPS address your phone can reach.
Launch any of the 13 agents through Happier and it is live on every signed-in device at once.
happier claudeHappier is the mobile-native control layer for the AI coding agents you already use. It mirrors your terminal, syncs every session, and gives you back the things a CLI can't: presence, approvals, voice, and one inbox for all of it.
Launch a session on your laptop. Follow it live, send messages, and approve permissions from your phone, tablet, browser, or desktop — without losing context.

Open any Claude Code, Codex, or OpenCode session running on your machine — live, from any device. Nothing to migrate, nothing to learn.

Keep running Claude Code, Codex, or OpenCode in their native TUI. Happier mirrors them to every device, so you can follow along, send messages, and approve permissions from anywhere — and switch between the terminal and Happier whenever you like.

Chat, files, Git, and a live terminal, each its own tab. Open a file to read or edit it, review the diff, manage branches, and open a pull request — from your pocket.

A session can start another session, send it messages, and read its transcript — so a Claude session and a Codex session can split the work between them. Each one still runs its own subagents, on whichever backend you choose: Claude, Codex, or any ACP-compatible CLI.

Queue messages while the agent works — reorder, edit, or send them now. Steer a running turn without interrupting it, or roll back to any earlier message and take a different path.
Sessions waiting on a decision rise to a “Needs attention” group at the top of your list; everything actively running gathers under “Working.” Run a dozen agents at once and never lose the thread.

Browse your agent’s changes. Mark the exact lines you want to address. Choose which notes to send, and hand them straight back — same session, or a new one.

Change the engine mid-conversation and the same session keeps going. Your recent conversation carries over, and the new agent gets tools to read the rest — plus the previous agent’s own transcript, where it keeps one. Switch back later and it resumes its own thread, receiving only what it missed.

Swipe across the bottom bar to slide between sessions — keep going in one gesture to skip several, each one named as you pass it. At a keyboard, Alt+↑/↓ walks the list and Ctrl+Tab walks your most recent sessions. Every shortcut is remappable.

The voice assistant watches every running session. Brainstorm the next change, approve a permission, or send a message — all without picking up the phone.

Connect your laptop, your desktop, a VPS, or a dev box, then pick which one runs each session. The picker marks which are online, and starts sessions on those. Add another over SSH, from the app or the CLI.
Every action Happier can take — create a session, send it a message, set the model, start a review — is defined once, in one registry. The app, slash commands, voice, in-session agents, the CLI, and an external MCP host all call the same definition, and for each action you choose which of those surfaces can run it and which have to ask you first.
happier mcp serve
happier session list --json
happier session send <id> "rerun the failing test"
happier session actions list
happier session actions execute <id> session.spawn_newStart each session in its own Git worktree — a real checkout, its own branch, the same repository. Pick any local or remote branch and Happier creates the worktree, suggests a name, and offers to reuse an existing one rather than duplicating it. Or start in the folder you’re already in: it’s a choice per session, not a mode you switch on — all your sessions, none of them, or just this one.
Hand a Claude Code or OpenCode session to your desktop, a VPS, or a dev box and pick up where it stopped. Bring the working tree along if you want it — a full snapshot, or only the changes — and Happier writes a sibling copy instead of overwriting, leaves your git-ignored files behind unless you name them, and keeps the whole transfer off until you turn it on.
Define your MCP servers once. Happier makes them available across every backend — even ones with no native MCP support — and on every machine you connect. No reinstalling per provider, per device.

Happier reuses the subscriptions and logins your existing CLIs already use — Claude, Codex, Cursor, Gemini, OpenCode. No new bill. No double billing.

Link multiple accounts per provider into a pool and watch usage and quota resets for every one of them in the app. Nothing switches until you build a pool — once you have, Claude Code and Codex sessions can change account without stopping, moving to whichever member has the most quota left, at most once a turn and never past a reset time the provider has published.

Modes, models, and permissions per session. Tool-timeline detail levels. Notification routing. Custom themes you can build, import, and share. Tune Happier to exactly how you work.
Your code, prompts, and session content are encrypted on your device before they ever reach a server. Private by design. Open by default. Self-host in one command.
Share a session with teammates, manage who can see and act, and collaborate in real time.
First-class support for Codex goals and Claude’s task lists — see objectives, progress, and budget at a glance.
Create pull requests, manage branches, push to remotes, stage, and review changed files — full source control from your phone.
Group sessions into folders and subfolders with drag-and-drop, and focus on one folder at a time.
Reusable prompts, skills, templates, and registries — define them once and use them everywhere.
Semantic memory search across your sessions — your agents search context, and you search your whole history.
Select messages and send them between sessions; agents and sessions coordinate across your workspace.
Through the Happier actions spec, agents create and manage sessions and navigate your workspace — with approvals when it matters.
Multi-select sessions and act in bulk — archive, move to folders, or mark read in one tap.
Rich, incrementally-streamed markdown in the transcript — tables, code fences, formatting that never jumps — with an optional Notion-style editor for markdown files.
Build, import, and share custom color themes. Clone a preset and preview live as you edit.
Agents that generate images render them right in the conversation, wherever you’re reading.
Run sessions on a cadence to watch pull requests, track issues, or repeat any task automatically.
Smart notifications route taps to the exact session and server — approve or answer right from the alert.
Native apps for iOS and Android, a desktop app for every OS, and a web app — all in sync.

Run the Happier relay server on your own infrastructure. Your data never leaves your network.
Install the relay server with a single command. Docker or bare metal.
A managed service you start, stop and check with happier relay host status. Nothing on the host updates itself — you update by rerunning the install command, when you decide to.
Access your sessions from anywhere. SSH tunnels, Tailscale, or direct HTTPS.
One app for Claude Code, Codex, OpenCode, Pi and nine more — on your own computers, with your own accounts.
Claude Code’s remote opens in claude.ai/code or the Claude app. Codex reaches your phone through the ChatGPT app. Each vendor’s remote lands inside that vendor’s product, which is fine until you use two of them. Happier is one inbox instead: every session, on every agent, on every computer you have connected, in one list — with one place to answer the permission prompts they are all waiting on.
A Codex session can hand the UI work to a delegate run on Claude while a Pi session digs through a stack trace, and you can steer any of them mid-run. Happier’s review, plan and delegate runs take a list of provider targets — not whichever provider you happen to be sitting in. A remote built by one vendor drives that vendor’s agent; Remote Control is a Claude Code feature, by its own documentation.
Connect more than one profile per service — a personal Codex subscription and a work one, a Claude setup-token, an Anthropic API key — and choose which one a session runs on at the moment you start it. Quota snapshots for Codex, Claude and Gemini profiles show as badges in the auth picker, so you can see what is left before you commit a long run to it. Nothing switches until you build a pool on purpose; once you have, it starts with automatic fallback on for the accounts a running session can actually move between, and there is a toggle on the pool if you would rather switch by hand.
Start a session in the app from your phone, then run `happier attach` on that computer and you are in that same session in a shell, with the history already there — for Claude Code and Codex inside tmux, for OpenCode through its own attach, and in all three you are in the agent’s real TUI. Or start it in the terminal and pick it up in the app. It reconnects to the session that exists rather than creating a second one, so nobody has to choose a side at the start of a task.
Sessions are created against a machine, so a Codex session can start on the VPS while you are on the laptop, and a Claude session on the laptop can message it and wait for it to finish. A live session can also move between machines — same session id, different computer — carrying its provider state and project directory with it, which works for Claude Code and OpenCode, and is experimental on Codex.
Open a file or a diff — the changed-files review, or the diff the agent just wrote into the transcript — and leave a comment on the exact line. Happier saves the path, the line, a snippet and a hash of that line’s contents, so the note still finds its code after the file moves underneath it. Pick which comments to send and they go in as structured review context: back into the same session, or into a new one on a different agent, because the comments are held against the workspace and any session you open there finds them waiting.
Already using Claude Code Remote Control? Compare it with Happier.
Yes. Completely. The CLI, the mobile apps, the desktop app, the web app and the relay are free and MIT-licensed — no seat count, no trial, no feature gate.
It runs the CLI you already have — Claude Code, Codex, OpenCode — on your own computer, against the Claude or ChatGPT subscription or the API key you are already paying for. That invoice stays exactly where it was, and it is the only one in the picture.
Yes — MIT licensed, the whole thing: the CLI, the apps and the relay server. github.com/happier-dev/happier.
No. Your agent talks straight to its own provider: Claude Code, Codex, Gemini and the rest run on your computer, with their own auth and their own harness, exactly as they do in your terminal. Happier is the client around that, so a prompt costs what it cost before.
Happier does add a small amount of instruction of its own, and two pieces of it are yours to switch off under Settings → Sessions → Prompt personalization. “Session title updates” asks the agent to name the session, and you can set it to never, to session start only, or to update again when the task changes. “Ask the agent to suggest reply options” asks it to offer tappable answers when it puts a question to you, and it is a single switch. Turn both off and what is left is two short paragraphs telling the agent how file attachments and `@path` references arrive.
One feature does spend tokens of its own: memory summarises your sessions on a credential you have already connected, on idle, up to twelve times an hour. It is off until you turn it on.
When Happier runs a session it launches the provider’s own CLI on your own computer, signed in the way you signed it in. From Anthropic’s or OpenAI’s side that is the same CLI, on the same computer, on your own account — the ordinary supported use of the tool. What changes is who typed the launch command: `claude`, `codex` or `opencode`, started by Happier instead of by you.
We’re not lawyers, we give no guarantee, and provider terms change. Read them. If your organisation has an agreement with a provider, check it before you connect a work account.
Your code stays on your computer. The agent reads and writes files locally; what syncs is the conversation and the session state needed to show you the same session on another device.
That sync is end-to-end encrypted by default: content is encrypted on your device and the server stores ciphertext it cannot read. Message ids, timestamps, device ids and session ids are metadata and are not encrypted. There is also an explicit plaintext mode for people who want server-readable content — it is opt-in, it is labelled, and it is not the default.
If you want none of it on someone else’s hardware, `happier relay host install` puts the relay on a computer you own, and the whole path becomes your device → your relay → your computer.
Not unless you hand them the link. In the default end-to-end encrypted mode the relay holds ciphertext it has no key for; what it can see is the routing metadata — account ids, timestamps, message sizes — and nothing of what you or the agent said.
Sharing is a deliberate act with three shapes: share a session with a friend as view-only, share it as can-edit so they can type into the same transcript, or publish a read-only public link. Nothing is shared because a session exists, and shared sessions show up in their own group in the list rather than blending into yours.
The licence is MIT and the relay is self-hostable, so the failure mode is “you run it yourself”, not “you lose your work”. Your sessions live on your own computer either way — Happier is a client over them.
You need a relay, but you do not need to operate one yourself. Happier Cloud is the recommended first choice in `happier setup`, or you can deliberately choose an existing relay you control. The relay hosts your account and synchronises encrypted conversation and session state; the coding agent still runs beside your repository on your own computer.
Self-hosting is optional. `happier relay host install` sets up the generic relay runtime, and Docker and runner paths are available too. Every client must be able to reach it: Tailscale requires both devices on the same tailnet plus an actually published listener, LAN access requires a non-loopback bind and firewall access, and `localhost` inside a VM is local to that VM. Switching relay profiles selects another relay account; it does not migrate your account or data.
Thirteen ship as built-ins: Claude Code, Codex, OpenCode, Cursor, Gemini, Copilot, Qwen, Kimi, Auggie, Kilo, Kiro, Pi and Grok. Beyond those, the Custom ACP backend takes any CLI that speaks the Agent Client Protocol, and once you have defined it, it appears in the agent picker next to the built-ins.
Happier does not bundle the agent CLIs. It detects what is installed on the computer you selected and shows you the rest — each agent’s settings page reports detection status and can run a best-effort installer on that computer if you want it to. Not every agent supports every Happier feature, either; session handoff, for one, is Claude and OpenCode today and experimental on Codex.
Yes. Happier uses the login your CLI already has, so a Claude Pro or Max subscription, a ChatGPT subscription through the Codex CLI, or a Gemini login keeps working exactly as it does now. No second bill, no key re-entry, no proxy in the middle.
API keys work too, and so do alternative endpoints — DeepSeek, Z.AI, MiniMax, Azure OpenAI, Vertex AI, or your own gateway, chosen per session with a backend profile. Anthropic’s own Remote Control documentation rules that path out on its side: “API keys are not supported”, and as of Claude Code v2.1.196 Remote Control is “disabled when `ANTHROPIC_BASE_URL` points at a host other than `api.anthropic.com`, such as an LLM gateway or proxy”.
Yes, and the distinction that matters is where it runs: Claude Code runs on your computer, and your phone is the window. Install the CLI once, leave the background service running, and you can start a session from the app — the runtime on your computer receives the request and launches `claude` locally, in your repo, with your MCP servers and your config.
A session you already started in your terminal is reachable too. Direct sessions let you browse and follow the Claude Code, Codex and OpenCode sessions that already exist on that computer without importing them first, and you can take one over from the phone when you want to steer it.
Yes. A Happier session is not owned by whichever client opened it — it lives on the computer running the agent, and the transcript syncs to every device signed into the same account. Laptop, phone and a browser tab can all be on the same session, and a message sent from one appears on the others.
The other direction works too: `happier attach <session-id>` drops you back into a session you started from the app, on the computer that owns it. For Claude Code, Codex and OpenCode that hand-off puts you in the agent’s own TUI; for the rest, the terminal shows Happier’s view of the session rather than the vendor’s.
Yes, and it is the normal way to use it. Run as many sessions as your computer and your quota will carry, across different agents at the same time. Sessions waiting on a decision rise into a “Needs attention” group at the top of the list and everything still running gathers under “Working”, which is what makes a dozen at once readable rather than chaotic.
Inside a single session you can also launch subagents and choose the backend for each one — a built-in agent or a Custom ACP backend. Selecting several different backends starts one run per backend, so a review can go to Codex while a plan run goes to Claude.
Usually. A running session has a model picker in its input settings, listing the agent’s own models plus the models from every Provider connection you have enabled and that the agent can actually use. There is also a “Use CLI settings” option, which tells Happier to set no override at all and let the CLI decide from its own config.
Whether the change lands mid-session is up to the agent runtime: some apply it to the next prompt, others need a restart or a fork. Happier tells you which, and keeps you on the connection you picked.
Only as much as you want to. There are four permission modes: Default, which leaves the provider’s normal ask-when-needed behaviour alone; Read-only, where the agent can inspect but write-like actions are denied; Safe YOLO, which auto-allows reads and still asks before writes; and YOLO, which skips approvals as far as the provider allows. Set it per session, change it while one is running, or set a default per agent under Settings → Providers so new Claude sessions start read-only and new Codex sessions do not.
Two things worth knowing. Not every provider supports every mode — where one does not, Happier falls back to the closest supported behaviour and shows you the Effective policy it landed on. And Plan is a session mode, not a permission mode: being in Plan does not mean auto-approve, and you can still get prompts.
When a session does need you, it moves into the “Needs attention” group and pushes a notification you can answer from the alert, so approving is a tap rather than a trip back to the laptop.
Yes, for the providers that publish it — today that is Codex, Claude subscription and Gemini accounts connected through Connected services. Each profile shows a quota meter and reset time, the meters appear again in the new-session auth picker, and the composer carries a usage badge while you work, so you can see a limit coming instead of discovering it mid-turn.
The meter is there for every provider that publishes one, and only for those.
The honest answer is that the session stops making progress, because the agent is a process on your computer and Happier does not pretend otherwise. When the computer running a session goes offline, the app marks that machine — the Happier word for a computer you have connected — as unreachable and disables input on its sessions until it is back.
What Happier does do is make the recovery cheap. The transcript stays intact while the session sits idle, and when the computer comes back you pick the session up where you were, from whichever device is in your hand.
If you want work to survive the lid closing, run it somewhere that stays awake — a desktop, a VPS, a box that stays plugged in — and install the background service so that computer is ready to start sessions without a terminal open.
Nothing stops. The agent runs on your computer under the background service, not inside the phone app, so quitting the app is closing a window onto the session rather than ending it. Reopen it later — or open it somewhere else — and you get the same transcript from where it got to.
You do not have to keep checking, either. Happier pushes a notification when a turn finishes, when a permission is needed, and when an action wants a human answer, and the notification routes straight back into the session that raised it.
If tmux is working for you, keep it — Happier does not take it away. Start a session from the app and `happier attach` reattaches you to the live tmux session in your own terminal, with the provider’s native TUI, and you can go back to the app afterwards on the same session.
The difference is what happens when you are not at a keyboard. SSH gives you a terminal on a phone screen; Happier gives you a push notification when a permission is waiting, a tap to approve it, a readable diff of what the agent changed, file and Git surfaces, and one list covering every session on every computer you have connected. On a laptop the two are close. On a phone at a bus stop they are not.
Yes. The CLI installs on macOS, Linux and Windows — `curl -fsSL https://happier.dev/install | bash`, or `iwr https://happier.dev/install.ps1 -useb | iex` on Windows. There are native iOS and Android apps, a desktop app, and a web app at cloud.happier.dev.
Windows gets its own session-hosting model: a session started from the app can run hidden, in Windows Terminal, or in a console host, and `happier attach` brings that host back to the foreground. Some agent CLIs are better supported on Unix than on Windows — that is the CLI vendor’s coverage, not Happier’s, and the app tells you which ones are available on the computer you selected.
No. cloud.happier.dev is the full app in a browser tab, and there is a desktop build for macOS, Windows and Linux if you would rather it was a window than a tab. Plenty of people run Happier entirely on the same computer their sessions run on, for the diff review and the session list rather than for the mobility.
If you do want it on a phone: iOS is on the App Store, and Android is on Google Play. A direct APK remains available from the GitHub releases if you prefer to install the file yourself.
Yes. The iOS app is built with tablet support, so it installs from the same App Store listing and runs as a native iPad app rather than a stretched phone one. The web app in Safari works too if you would rather not install anything.
The tablet layout is the useful part: the embedded terminal defaults to a docked bottom panel on tablet-sized screens, the way it does on the web, instead of the single-focus presentation phones get. An iPad and a keyboard is a genuinely reasonable place to review a diff and steer a session.
Technically, easily: it is MIT-licensed source you can read before you run it, session content is end-to-end encrypted by default, and `happier relay host install` puts the relay inside your own network so no session content transits infrastructure you do not control. That covers most of what a security review asks.
Organisationally, ask first. Your employer may have rules about what runs on the endpoint, and your provider agreement may have rules about connecting a work account to third-party tooling. Neither of those is a question a marketing page can answer for you — check them before you connect a work account, not after.
Run it on the computer that runs your code. Keep your own subscriptions and keys. Self-host the relay or use ours. MIT licensed, end-to-end encrypted.
curl -fsSL https://happier.dev/install | bash