FAQ
Frequently asked questions
Answers about setup, opencode relay, privacy, requirements and how the app works.
General
What is OpenCode Mobile? How does it relate to opencode?
OpenCode Mobile is a mobile app that lets you use the opencode AI coding agent running on your own computer from an iOS / Android device: browse sessions, continue conversations, approve permissions, review files and code changes, and open a remote terminal. opencode always runs on your own computer; the app connects in two ways:
- Direct connection: when your phone and computer are on the same LAN, the app talks to opencode directly;
- Relay: across networks, traffic is forwarded encrypted through relay nodes — no public IP or port forwarding needed.
See the guide to get started.
What do I need to use the relay service?
- A computer running opencode (macOS, Linux or Windows), with
opencode servestarted (listening on local port 4096 by default); - The ocrelay command-line tool installed on that computer;
- The OpenCode Mobile app on your phone, signed in.
No public IP or port forwarding is required — ocrelay only makes outbound encrypted connections. See the guide for the full walkthrough.
Direct connection or relay — which should I use?
Use the direct connection when your phone and computer are on the same Wi-Fi / LAN: it is free, unmetered and has the lowest latency. Use the relay when you are away, or across networks or regions: traffic is forwarded encrypted through relay nodes and metered against your plan.
Both can coexist: the same computer can be reached over the LAN directly while ocrelay stays online for relay access from anywhere.
I'm a new user. Where do I start?
Follow the four steps in the guide: install opencode → start the server → install the app on your phone → enable the relay (scan to pair). If you get stuck, browse this page by category first, then reach us via the feedback page.
The app
Which phones and languages does the app support? Where do I download it?
iOS 17+ and Android 7.0+. The interface supports English, 简体中文 and 繁體中文 — switch in settings or follow the system language. Get the app from the download page.
What can the app do?
- Live sessions: stream AI replies, continue conversations anytime, pick agents and models;
- Permission approvals: approve or deny opencode command execution and file edits right from your phone;
- Files and changes: browse project files and review line-by-line diffs;
- Remote terminal: open a real shell on your computer anytime;
- Parallel work: run multiple tasks at once via worktrees without interference;
- Multi-project management: sessions grouped by project, switch anytime.
With push notifications, your phone is alerted the moment a task finishes or a permission request arrives.
How do I update the app?
On iOS, update via TestFlight (open the TestFlight app to check for a new build); on Android, get the latest version from the distribution channel. "Check for updates" in the app''s settings also shows the latest version and download links.
Can I use the app on multiple phones at the same time?
Yes. Sign in with the same email on each phone and you will see every paired computer. An account keeps up to 3 signed-in sessions; the oldest one is signed out automatically when exceeded. Multiple phones can also work on sessions of the same computer simultaneously.
Account
How do sign-up and sign-in work? There's no password?
Sign-in uses an email verification code — no password needed: enter your email → receive a 6-digit code → enter it to sign in. Unregistered emails create an account automatically on first sign-in.
Codes are valid for 5 minutes and void after 5 failed attempts; resending has a 60-second cooldown. First-time users must accept the Terms of Service and Privacy Policy.
The verification code email never arrives. What should I do?
- Check your spam / promotions folder;
- Wait out the 60-second cooldown and resend;
- Try a different email address.
If it still fails, contact us via the feedback page and mention your email provider.
I got a new phone. How do I sign out everywhere?
Just sign in with the same email on the new phone — pairings and subscriptions follow your account. If you are worried an old device still has a session, use "Sign out of all devices" under Settings → Security to revoke every session immediately (you will need to sign in again).
How do I delete my account?
Go to Settings → Security → Delete account. A confirmation code is sent to your email; entering it executes immediately: all sessions revoked, all paired computers unbound, account data anonymized. This cannot be undone.
Note: deleting your account does not cancel store subscriptions. If you have a paid plan, turn off auto-renewal in App Store / Google Play subscription settings first.
Billing
How is the relay service priced? What plans are there?
Direct LAN connections are always free and unmetered. The relay is a monthly subscription; current plans:
- Free: 512 MB of relay traffic per month, 1 computer;
- Plus: 20 GB per month, 3 computers, $2.99/month (list price $9.99);
- Pro: 50 GB per month, 5 computers, $5.99/month (list price $19.99).
Plans, prices and quotas as shown in the in-app upgrade page and on the pricing page prevail.
How is relay traffic measured?
Only traffic forwarded through relay nodes is metered, counted as upload plus download bytes. Direct LAN traffic is entirely unmetered and never touches your quota. Bonus traffic granted via promotions stacks on top of your plan quota and follows its own validity window.
When does my traffic quota reset?
The free plan resets on the first day of each calendar month at 00:00 (UTC+8, Beijing time). Paid plans reset with each subscription period, starting on every store billing date. The account page in the app shows the exact reset date.
What happens when I run out of traffic?
When your quota is exhausted the relay connection is dropped and the app tells you clearly. You can:
- wait for the quota to reset (the date is shown on the account page);
- or upgrade / purchase a subscription — the quota applies immediately and the app reconnects automatically after a successful purchase.
The status bar warns you as you approach the limit, so connections are never dropped silently.
Which payment methods are supported?
Currently in-app subscriptions via the Apple App Store and Google Play, billed monthly with auto-renewal through your Apple / Google account. Other payment methods are not supported yet.
How do I restore my subscription after switching phones or reinstalling?
Sign in with the original email, then tap "Restore purchases" on the account page. The app syncs the Apple / Google account''s past subscriptions and re-validates them — no need to pay again.
How do I cancel or downgrade my subscription?
Subscriptions are managed by the stores — cancel in App Store / Google Play subscription settings. You keep access for the rest of the current period, then drop to the free plan. Downgrades (e.g. Pro → Plus) take effect at the end of the current period; if paired computers then exceed the new plan''s limit, you will be asked to unbind the extra computers before connecting.
Relay & connectivity
How do I install ocrelay on my computer?
One command:
- macOS / Linux:
curl -fsSL https://opencodemobile.com/install.sh | bash - Windows (PowerShell):
irm https://opencodemobile.com/install.ps1 | iex
amd64 and arm64 builds are available for macOS, Linux and Windows. Verify with ocrelay --version after installing.
What are the common ocrelay commands?
ocrelay connect— connect to the relay and show the pairing QR code (pairing required on first use);ocrelay stop— stop the background instance;ocrelay status— local health check: whether opencode is running, pairing and node state, background instance;ocrelay upgrade— upgrade to the latest version.
Useful flags: --re-pair forces re-pairing (use it to switch nodes); --reconfigure re-sets the local opencode address and credentials; --node <id> picks a specific node on the first connect after pairing.
How do I keep ocrelay running in the background?
Once ocrelay connect is online, press b to move it to the background — closing the terminal won''t stop it. For auto-start on boot, manage it with your system''s service tool, e.g. launchd on macOS, a systemd user unit on Linux, or Task Scheduler on Windows.
Only one ocrelay instance runs at a time; starting again takes over the previous instance.
How does pairing work? What are the pairing code rules?
Run ocrelay connect on the computer; it displays a QR code and a pairing code. Scan or type the code in the app''s pairing screen to bind.
The code looks like XXXX-XXX-XXX, is valid for 5 minutes and single-use — keep ocrelay connect running and it will generate a fresh one after expiry. On the first connect after pairing you choose a relay node (latency is probed automatically); the node stays fixed afterwards.
How do I switch relay nodes or regions?
The node is fixed on the first connect after pairing. To switch, run ocrelay connect --re-pair on the computer to re-pair and pick a node again; your local opencode address and credentials are kept, and nothing needs to change in the app.
How do I move to a new computer or recover after a reinstall?
Install ocrelay on the new computer, run ocrelay connect and pair again. Unbind the old computer from the app''s device list (per-plan limits: Free 1 / Plus 3 / Pro 5 computers).
Note: never copy one computer''s config file to several machines — a pairing credential allows only one online instance, and copies will keep replacing each other.
Where are ocrelay's config and logs? How do I troubleshoot?
- Config:
~/.config/ocrelay/config.jsonon macOS / Linux,%LocalAppData%\ocrelay\config.jsonon Windows; - Logs:
client.login the state directory (plusdaemon.out.login background mode).
Run ocrelay status first when something looks wrong (is opencode running, pairing and node state, background instance). When reporting an issue, attaching a log excerpt helps us resolve it much faster.
Does it work behind corporate networks or proxies?
ocrelay makes direct, encrypted outbound connections to relay nodes on port 443 and does not go through HTTP proxies. Home and mobile networks work fine; networks that force all traffic through a proxy or restrict outbound access may block the relay. Communication with the local opencode stays on the machine itself and is unaffected by proxies.
Connection
The app says my computer is offline. What now?
That means the phone can reach the relay, but the computer''s ocrelay is not online:
- Make sure the computer is awake and connected to the network;
- Run
ocrelay statuson the computer and re-runocrelay connectif needed; - If the computer rebooted, make sure ocrelay was started again (or set up auto-start).
Connection fails, hangs forever, or reports a version mismatch. What should I do?
The relay protocol is upgraded from time to time; older clients may be unable to connect — usually shown as a failed or hanging connection, or an explicit version-mismatch message. Update both ends to the latest version:
- Computer: run
ocrelay upgrade, or re-run the install command; - Mobile app: update to the latest version via TestFlight / your download channel.
If it still fails after upgrading, reach us via the feedback page with both version numbers.
Pairing says the code is invalid or expired.
Pairing codes are valid for 5 minutes and single-use. Keep ocrelay connect running on the computer (it generates a fresh code automatically), then scan or type the newest code. When typing, double-check the XXXX-XXX-XXX format and easily confused characters.
"Device limit reached" — I can't pair another computer.
Each account has a cap on paired computers: Free 1 / Plus 3 / Pro 5. When you hit it:
- unbind computers you no longer use from the app''s device list;
- or upgrade your plan for a higher limit.
After a downgrade, bindings above the new plan''s cap must be unbound before connecting, too.
The connection keeps dropping. What can I do?
The relay reconnects automatically, so brief network blips recover on their own. For frequent drops:
- check network stability on both the computer and the phone — especially proxy, VPN or corporate firewall environments;
- inspect
client.logon the computer to find the cause; - send the drop times and a log excerpt to us via the feedback page.
Why can only one ocrelay be online for the same computer?
Each pairing (binding) allows exactly one live connection; a new one automatically takes over and replaces the old. If you copy the same config to two machines they will keep kicking each other offline. Pair each computer separately (within your plan''s quota) — they won''t interfere.
Push notifications
What notifications does the app send?
Four kinds, each with its own toggle under Settings → Notifications:
- Task finished: a session completes and awaits review;
- Permission request: opencode is waiting for your approval;
- Question: the agent asks you something;
- Error: a session hits an error.
Notifications work in relay mode (not in direct mode).
Push notifications never arrive. What should I check?
- Make sure the app has system notification permission;
- Check that the matching toggles are on in the app''s notification settings;
- Some Android builds restrict background activity — allow the app to run in the background and auto-start;
- While you are viewing the session in question, no push is sent (the content is already streaming on screen) — that''s expected.
If it still fails, tell us your phone model and OS version via the feedback page.
What is "auto-approve permissions"? Is it safe?
When enabled, opencode permission requests (running commands, editing files, …) no longer wait for your confirmation on the phone and are approved automatically. It suits long unattended runs, but it means the agent''s actions are no longer confirmed by you each time — enable with care.
It is off by default. If an auto-approved action fails, you still get a push to handle it manually.
Privacy & security
Where are my opencode password and credentials stored?
The opencode address and password stay in a local config file on your computer, readable only by your user. The mobile app holds only a relay access token and never stores your opencode password. The relay link is TLS-encrypted end to end.
Can the relay service see my code?
Traffic is encrypted in transit (HTTPS / TLS). Relay nodes only forward data and meter byte counts for billing and operations; we do not store, index or analyze your session content. See the privacy policy for details.
What is "anonymous usage data sharing"? Can I turn it off?
The app collects anonymous product-usage statistics (never your code or session content) to help improve it. The option is on by default and can be turned off in settings at any time.