Code from the couch.
Or anywhere else.
CouchCode is a vendor-agnostic mobile remote control for your AI coding
agents. Approve diffs from the bus. Vibe-code by voice on a walk. Never
miss a permission prompt while the kettle boils.
One app for your coding agents — 12 tested integrations including OpenCode, Codex CLI, Claude Agent, Kimi, Goose, and more, over the open Agent Client Protocol (ACP).
expiresAt is set in seconds but the JWT lib expects ms. I'll patch the helper and add a regression test.Your laptop keeps coding. Your phone keeps the wheel.
A tiny daemon on your machine speaks the Agent Client Protocol (ACP) to whichever agent you launched. The phone speaks to the daemon — directly over your LAN, or through the relay when you're away.
Install the daemon, then grab the app.
CouchCode needs a tiny daemon on your dev machine and the mobile app in your pocket. Install the daemon first, then pair the app with the QR code.
Install the daemon
curl -fsSL https://cdn.couchcode.io/builds/desktop/couchcode/install.sh | sh curl -fsSL https://cdn.couchcode.io/builds/desktop/couchcode/install.sh | sh irm https://cdn.couchcode.io/builds/desktop/couchcode/install.ps1 -OutFile "$env:TEMP\couchcode-install.ps1"; & "$env:TEMP\couchcode-install.ps1" Get the mobile app
Scan the QR code printed by the daemon. Use LAN-only pairing at home, or the relay when you're away.
12 agents.
One mobile remote.
Zero vendor lock-in. ACP for the agents that speak it, a real terminal for everything else. CouchCode is just an open client — switch agents per session, swap them next month. We never sit between you and your model.
Don't see your agent? Open a GitHub issue and we'll wire it up.
When ACP isn't enough,
Not every tool speaks ACP yet. And sometimes you just want a real terminal — to git push a hotfix from a café, tail logs, or kick off your favorite agent the old-fashioned way.
CouchCode opens a full terminal straight on your dev box — real xterm, true-color and ANSI. Lose signal and your session and scrollback are waiting when you reconnect. Drop in, run anything.
Free core. The good buttons included.
You pay your model provider directly — we never mark up your usage. Everything in this public release is part of the free core and stays that way; future advanced features may be paid. No seats, no crippled tier.
- Free iOS appOn the App Store
- Free Android appOn Google Play
- DaemonOpen source · Apache 2.0
- ACP agent supportOpenCode, Codex CLI, Claude & more
- Remote terminalPower-user fallback
- Public relayIncluded under fair use
Reasonable questions.
The daemon is open source under Apache 2.0 — read every line before you run it. It only listens on the LAN port you configure, requires a paired device credential, and has no auto-update. We will never ship a closed-source daemon.
Today CouchCode ships a tested catalog you install right from the app — OpenCode, Codex CLI, Claude Agent, Kimi, Goose, Qwen Code, and more. If yours speaks ACP but isn't there yet, open a GitHub issue and we'll add it to the catalog.
Agent Client Protocol (ACP) is an open protocol developed by Zed and JetBrains that defines how coding agents communicate with client interfaces such as editors, IDEs, and CouchCode. It provides a shared integration layer, so each client doesn't need a separate custom integration for every agent. In spirit, it plays a role similar to the Language Server Protocol, but for AI coding-agent workflows. CouchCode uses ACP to receive structured messages, tool activity, permission requests, session capabilities, and other features that a particular agent chooses to expose. Learn more on the official ACP website.
CouchCode communicates with coding agents through the Agent Client Protocol (ACP). ACP defines what information and capabilities an agent exposes to its client. CouchCode can list, reconnect to, or resume only the sessions that the particular agent makes available through that protocol. A session started separately in a local terminal may belong entirely to the agent's own CLI or runtime, and ACP does not automatically discover arbitrary local processes. If the agent doesn't expose session listing, discovery, or resume support, CouchCode can't reliably retrieve it from the outside. This is an agent and protocol architecture limitation, not an account, relay, or synchronization issue. Existing processes may still be accessible through the remote terminal, but they don't automatically become structured CouchCode agent sessions. Learn more about ACP.
On your dev machine, in whatever config your agent already uses — OpenCode, Codex CLI, Claude Agent, and the rest each have their own. The daemon hands work off to the agent locally; the agent talks to the model. CouchCode never sees your keys. There's no server to send them to, no database to leak them from, and frankly I don't want the responsibility.
CouchCode doesn't sell, resell, proxy, or mark up model access. Your coding agent connects using your own account, subscription, API key, credits, or other provider credentials. Usage limits, included credits, metering, and additional charges are determined by the agent and model provider, and they may treat interactive CLI use, APIs, SDKs, automation, and third-party clients differently. Before using an agent through CouchCode, review the provider's current pricing, billing, usage-limit, and terms pages. CouchCode doesn't control those charges or guarantee how a provider will classify remote or programmatic usage.
Relay traffic always rides over TLS. If you want more, turn on E2EE when you pair: your phone and daemon exchange keys via the QR code and pin them (X25519 + ChaCha20-Poly1305), so even our relay only ever forwards ciphertext — it can't read your code, commands, or credentials. A key mismatch is refused outright, so there's no silent man-in-the-middle. It's aimed at the privacy-conscious, adds a little bandwidth overhead from sealing every message, and is opt-in per pairing (off by default).
Yes — turn on a Face ID, Touch ID, or fingerprint lock (with a PIN fallback) and CouchCode asks for it every time you open the app, so a found or stolen phone can't approve anything. It's optional and entirely on-device — your biometrics and PIN never leave the phone and we never see them.
Voice uses your phone's built-in, on-device speech recognition, so it's best-effort — accuracy varies by device, accent, and how noisy it is around you. Whatever it hears is shown as editable text first; nothing auto-sends, so you always read it back (and fix it) before it goes to the agent.
I'm one person, not a startup. The expensive part of any agent is the model — and you pay your provider for that directly, with no markup from me. The daemon runs on your laptop and the apps cost almost nothing to ship.
So the CouchCode core is free: everything in this public release is part of that free core and stays that way. Down the road I may offer advanced features separately, but the core you get today doesn't get clawed back. The hosted relay is included for normal personal use under fair use — heavy or abusive traffic may get throttled — and LAN mode skips it entirely, working without any CouchCode infrastructure.
Zero vendor lock-in isn't a slogan: the protocol is open, the daemon is open source, and if I disappear tomorrow your phone and your laptop still talk to each other. That's the deal.
Your coding agents,
off the desk.
Free, both stores. No account. Bring your agent.