Relay apps vs cloud containers comes down to one question: where does the AI agent actually run? A relay app (Happy Coder, Omnara, AgentsRoom, RemoteCode, Onepilot, Moshi, Catnip, VibeTunnel, or Anthropic's own Claude Code Remote Control) keeps the agent on a machine you own and turns your phone into a remote window. A cloud container like Cosyra runs the agent for you in a hosted Ubuntu box, so the phone gets a full terminal and there is no personal machine to keep awake. Neither is strictly better. This guide names all nine relays honestly and shows exactly when each wins.
We built Cosyra, so we have a side in this. But we ran the relay setup ourselves for months first: a Mac mini at home, Tailscale, a relay app on the phone. The honest version of this comparison is the one that tells you when to skip us. If you already keep a server awake, a relay is often free and keeps every byte of your code on your own hardware. Start with the AI coding agents on mobile pillar if you want the setup mechanics first; this page is about the architecture choice underneath them.
Quick decision.
- You already run an always-on Mac, PC, or VPS and want your code to never leave it → pick a relay app. Jump to the nine relays ↓.
- Your phone is your only always-on device, or you don't want to babysit a home machine → pick a cloud container. See where a cloud container wins ↓.
- You want the full decision framework → which should you pick ↓.
What is a relay app?
A relay app is three parts: an agent running on a computer you own, a mobile or web client on your phone, and a relay in the middle that passes messages between them. The agent's compute, your source files, and your API tokens all stay on your machine. The phone never runs a shell; it sends keystrokes and approvals and renders what the agent prints back. Happy Coder's own framing is the clearest: it is a relay, not a computer, and it provides zero compute of its own (verified against the slopus/happy repo, 2026-06-12).
Most relays encrypt that middle hop end-to-end, so the relay operator only ever sees ciphertext. Happy Coder encrypts on-device before sending and lets you self-host the relay server. AgentsRoom uses a TweetNaCl-encrypted relay between phone and desktop. RemoteCode says it "never uploads source code to any server" and only passes encrypted session data between your own devices. That privacy posture is the relay category's real strength: your code lives where you put it.
The catch is the always-on machine. A relay can only reach an agent that is running, so the host (your Mac, your VPS, your Raspberry Pi) has to stay powered, unlocked enough to run the process, and reachable over the network. The first time your home Mac went to sleep mid-session, on the 8:12 train with a half-finished refactor, is the moment the trade-off stops being abstract. We break down the on-device and relay paths further in the best way to run AI agents on a phone.
What is a cloud container?
A cloud container flips where the agent runs. Instead of your hardware, the
agent lives in a hosted Linux container that a service keeps running for
you. Your phone opens a real terminal into it, not a remote view of another
machine's terminal, but a shell you type into directly. We run Cosyra this
way: each user gets a private Ubuntu 24.04 container on Azure AKS with
Claude Code, Codex CLI, OpenCode, and Gemini CLI already on PATH, 30 GB of storage that survives between sessions, and native iOS and
Android apps. All four agents are BYOK: you bring your own Anthropic,
OpenAI, or Google key and pay the provider directly.
The win is that there is no second machine in the picture. Nothing at home has to stay awake, because the container is the compute. The cost is equally plain: it is a paid service ($29.99/month after the free tier), it needs a network connection because the container lives in the cloud, and you are running on our infrastructure rather than your own. We say that in the open because it is the exact thing a relay does better. See our full Cosyra vs Termux breakdown for the offline trade-off, which applies here too.
The nine relay apps, compared
Nine products now share the relay architecture. They differ on platform, price, license, and how honest they are about needing your own machine. Here is the whole shelf, with dated facts from our per-tool research. Every "as of" date is when we last verified that row first-hand.
| App | Where the agent runs | Platforms | License | Price |
|---|---|---|---|---|
| Happy Coder | Your machine (CLI wrapper) | iOS, Android, web | MIT (open source) | Free + in-app purchases |
| Omnara | Your laptop (or their cloud) | iOS, Android | Closed (old repo archived) | Free |
| AgentsRoom | Your desktop (must stay awake) | macOS/Linux/Windows + iOS, Android | Not stated open source | Free ≤3 projects; Pro $9.99/mo |
| RemoteCode | Your Apple-Silicon Mac | iOS/iPadOS only | Unverified | Free on Wi-Fi; Pro $4.99/mo |
| Claude Code Remote Control | Your machine (Claude Code) | Claude app iOS/Android or browser | Proprietary (Anthropic) | Paid Claude plan; no API keys |
| Onepilot | A server you SSH into | iOS only (iOS 18.6+) | Closed source | $6.99/mo or $49.99/yr |
| Moshi | A server you own (SSH + Mosh) | iOS, macOS, watchOS, visionOS, Android | Closed source | Free + in-app purchases |
| Catnip | A GitHub Codespace or local Docker | iOS only | Apache 2.0 (open source) | Free app; you pay Codespaces |
| VibeTunnel | Your Mac (browser view) | macOS/Linux; browser (iOS WIP) | MIT (open source) | Free |
Same-machine relays: Happy Coder, Moshi, RemoteCode, VibeTunnel
These four are the purest relays: the agent runs on your own Mac or PC and
the app is a front end. Happy Coder is the most polished and the only one with a real Android app, native voice
relay, and a self-hostable server; it is MIT-licensed and actively maintained
(21,821 stars on 2026-06-12).
Moshi leans on the Mosh protocol so
a session survives sleep, network switches, and app kills, with Apple Watch and
Dynamic Island approvals. RemoteCode is the leanest and cheapest ($4.99/mo for the internet relay) but is iPhone-and-Apple-Silicon-Mac
only. VibeTunnel is the developer's-choice option — MIT, wraps arbitrary commands
with vt, and turns any browser into your Mac's terminal — but
it is still beta and needs a Tailscale tunnel to reach from a phone, weighed
feature by feature in
Cosyra vs VibeTunnel.
Orchestrators and control planes: AgentsRoom, Onepilot
AgentsRoom is more than a relay: it is a desktop multi-agent orchestrator that spawns real CLI processes in your project folders across eight providers, each on its own git worktree, with native iOS and Android companions. The desktop app is the command center and has to stay awake. Onepilot is an iPhone SSH client plus agentic IDE: it installs an agent inside a user-scoped nvm prefix on a server you already run and wires it to a Telegram or Slack channel. Both are BYO-server — they give you nothing to run the agent on.
First-party and Codespaces-backed: Claude Code Remote Control, Omnara, Catnip
Claude Code Remote Control is Anthropic's own feature: it mirrors a Claude Code session running on your machine to the Claude app or browser. It is not a rival product so much as an overlapping approach, and the correct framing is that it and a cloud container solve the same "drive an agent from my phone" job differently — Remote Control keeps Claude local and needs a paid Claude plan (no API keys). Omnara is voice-first remote control for Claude Code and Codex on your laptop; note its old open-source wrapper is archived and the shipping app is closed. Catnip is the odd one out — an open-source iOS app that drives Claude Code inside a GitHub Codespace, so the compute is your Codespace quota rather than your own laptop.
"This version was built as a wrapper around the Claude Code CLI, which became unfeasible to maintain with Claude Code's constant updates." — Omnara's own README, explaining why it archived the wrapper (verified 2026-07-10).
We keep that quote around because it is a competitor conceding, in writing,
the maintenance tax of the wrapper approach. It is also why we run the real
upstream claude, codex, opencode, and
gemini binaries in the container instead of wrapping them. When Anthropic
ships a new Claude Code build, you get it, and nothing in the middle has to be
re-patched.
Try the cloud-container side. 1 hour free on signup, no credit card. Extend with a 10-hour, 7-day trial when you want more. App Store / Google Play / Pricing details
Where relay apps win
A relay beats a cloud container in four situations, and we would tell a friend to use one in every one of them:
- You already keep a machine awake. If a Mac mini, desktop, or VPS is already running for other reasons, a relay adds a phone front end for free or a few dollars a month. You are paying for compute you already own.
- Your code must never leave your hardware. The same-machine relays keep source, tokens, and execution on your box; the relay only sees encrypted blobs. For regulated code or personal policy, that is a real advantage a hosted container cannot match.
- You want open source you can self-host. Happy Coder (MIT), VibeTunnel (MIT), and Catnip (Apache 2.0) are auditable, and Happy Coder and VibeTunnel let you run your own relay so no third party is in the path.
- You want it free. Omnara and VibeTunnel are free, Happy Coder and Moshi are free to start, and Claude Code Remote Control is bundled with a Claude plan you may already pay for.
We think keeping a personal machine awake around the clock just to code from a phone is a bad trade for most people. The relay crowd disagrees, and when you already run a home server, they are right; the marginal cost is a phone app, not a monthly bill. State that honestly and the choice gets easy.
Where a cloud container wins
The cloud container earns its subscription in the cases the relay cannot cover:
- The phone is your only always-on device. No Mac at home, a laptop that sleeps in a bag, a work machine you cannot leave a process on — a relay has nothing to connect to. The container is always the compute.
- You want the agent already installed. A relay assumes you have set up Claude Code or Codex on the host. We ship four agents pre-installed, so there is no host to configure and no npm ABI gap to fight the way there is on Android — see Linux container on Android for that specific wall.
- You want a real shell, not a window. A relay renders another
machine's terminal; a container gives your phone a shell it types into directly,
with
apt,git, tmux, and language runtimes on board. - You switch devices. The same container is reachable from iPhone, Android, and web, and its 30 GB of files persist. Start on the couch, continue on the train, finish at the desk — no re-cloning, no re-auth.
Which should you pick?
Here is the decision framework we actually give people who ask, no hedging:
- Pick a relay app if you already run an always-on machine, you want your code to stay on your own hardware, you prefer open source you can audit and self-host, or you want to spend little to nothing. Start with Happy Coder if you want the most polished cross-platform option, RemoteCode if you are all-Apple and cheap, or Claude Code Remote Control if you already pay for a Claude plan and only use Claude Code.
- Pick a cloud container if your phone is your only reliable always-on device, you don't want to own or babysit a home machine, you want the agents pre-installed and a real shell, or you hop between phone, tablet, and desktop and want one persistent environment. That is what we built Cosyra for.
Try a relay first if any of these is true: you keep a desktop running anyway (Happy Coder costs you nothing to test), you have a hard rule that code stays on your hardware (a same-machine relay is the only honest answer), or you are an all-iPhone, all-Mac user who wants the cheapest possible path (RemoteCode at $4.99/mo). If you try one and the always-on machine keeps letting you down (sleeping, dropping off Wi-Fi, getting rebooted), that failure is the signal to move to a hosted container.
Frequently asked questions
Do relay apps like Happy Coder run the AI agent on my phone?
No. A relay app is a window, not a computer. Happy Coder is a CLI wrapper on your own machine plus a mobile app connected by an end-to-end-encrypted relay; the agent's compute, files, and tokens all live on the computer you already own. The phone drives and views the session, but the machine has to be running.
[source: slopus/happy on GitHub]
Is Claude Code Remote Control free?
No. Claude Code Remote Control is included with a paid Claude subscription (Pro, Max, Team, or Enterprise) and is not available on a free account. API keys are not supported, so you cannot use it BYOK. It also needs Claude Code v2.1.51 or later running on a machine you keep awake.
[source: Anthropic Claude Code docs]
Can I use a relay app without keeping my computer on?
Not for the on-your-own-machine relays (Happy Coder, Moshi, RemoteCode, AgentsRoom, Onepilot, VibeTunnel, Claude Code Remote Control). The agent runs on your Mac, PC, VPS, or server, so that box has to stay powered and reachable. If it sleeps or drops off the network, the phone has nothing to connect to. A cloud container runs the agent for you, so there is no personal machine to keep awake.
[source: Moshi, "Using Your Mac as a Remote Endless Working Agent"]
Does VibeTunnel have an iPhone app?
Not on the App Store as of 2026-07-10. VibeTunnel's README lists a native iOS app, but it is work-in-progress and not recommended for production; iOS access today is through TestFlight or the responsive web interface. It is also localhost-only out of the box, so you add Tailscale to reach your Mac's terminal from a phone.
[source: amantus-ai/vibetunnel on GitHub]
What's the difference between a relay app and a cloud dev environment?
A relay app keeps the agent on hardware you own and gives you a phone-shaped remote control for it. A cloud dev environment (a cloud container like Cosyra) runs the agent on hosted infrastructure and gives your phone a full terminal into it. Relays keep your code on your own box and are often free; a cloud container removes the always-on machine but costs a subscription and needs a network connection.
[source: Show HN — Catnip, running Claude Code from your phone]
Which of these apps run on Android?
Happy Coder, AgentsRoom, Omnara, and Moshi list Android builds; Claude Code Remote Control uses the Claude Android app as its remote surface. RemoteCode, Onepilot, and Catnip are iOS-only, and VibeTunnel has no native Android app (browser access only). A cloud container like Cosyra ships native iOS and Android apps.
tl;dr
Use a relay app if you already keep a machine awake and want your code to stay on your own hardware — Happy Coder, Moshi, RemoteCode, AgentsRoom, Onepilot, VibeTunnel, Catnip, Omnara, or Claude Code Remote Control. Use a cloud container if your phone is your only always-on device and you want the agent pre-installed with no machine to babysit — that is Cosyra.
App Store / Google Play. Sign up for 1 hour free, no credit card. Extend with a 10-hour, 7-day trial when you want more.
Skip the always-on machine. Run Claude Code, Codex, OpenCode, or Gemini from a hosted container in two minutes — no home server to keep awake.
See pricing · AI agents on mobile pillar · Mobile terminal pillar