opencodemobile

Privacy

Privacy policy

The short version: opencode mobile connects your phone to a server you control — directly, or through the encrypted relay. We never store your prompts, code or terminal output.

Last updated: 2026-10-05

Summary

opencode mobile is a client for opencode serve, a server you run yourself. The app communicates with the server address you configure, either directly or through the optional opencode relay.

Direct connections involve no account and no service operated by us. If you use the relay, we operate the relay service and a lightweight account: your email address, subscription status, device pairing records and traffic metadata. The relay never stores your prompts, code, diffs or terminal output. The only analytics we can receive are optional anonymous usage events compiled into the build you installed.

opencode relay

The relay is an optional tunnel service that lets your phone reach your own server from outside your network. It requires an email sign-in — a free account is created on first sign-in — and devices are connected through explicit pairing.

Traffic between the app and your machine is encrypted in transit with TLS. The relay does not store prompts, code, diffs or terminal output; content is processed in memory only while a request is in flight. Your opencode password is injected locally by the relay client and never reaches the relay.

We process the metadata required to run the tunnel and the account safely: your email address, device pairing records, connection timestamps, byte counts and subscription status. The free tier includes one connection slot and 512 MB of traffic per month; paid plans add more traffic and concurrent connections.

Pairing credentials are issued per device and can be revoked at any time in the app. Revoking a credential closes that device's tunnel immediately. You can request deletion of your relay account and its data by emailing our support address.

Data the app stores

Connection profiles: the server address, username, target directory and a label you choose. Passwords and pairing credentials are stored separately from the profile data, using the platform secure storage (iOS Keychain, Android Keystore).

Local cache: sessions and chat messages are persisted on your device so the timeline survives restarts and flaky networks. You can clear this at any time from the app or by removing the app.

Settings: theme, language and notification preferences are stored locally on your device.

Relay account: email address, subscription status, device pairing records and monthly traffic counters. Payment transactions are handled by the app stores or the payment channel; we receive subscription status and a channel reference, never your card details.

Relay client on your computer: your opencode address, username and password are stored in a local config file readable only by your user account. They are never uploaded.

Analytics

When an analytics key is present in the build, the app sends anonymous product events (for example: app opened, connection created, session started) to PostHog. These events never include prompts, code, file contents, credentials or server addresses.

If no analytics key is compiled in, no analytics requests are made at all. Development and self-built binaries default to no analytics.

Third parties

Your configured opencode server: receives your prompts and returns sessions, events and file contents. It is operated by you or your organization, not by us.

opencode relay (optional): carries TLS-encrypted traffic between your devices as described above and stores account and traffic metadata. It is operated by us and never stores your content.

App stores and payment channels (optional): process relay subscriptions and report the subscription status back to us.

Email delivery (optional): sends relay sign-in codes to the address you provide.

Analytics provider (optional, build-time): receives anonymous event names and platform metadata as described above.

No advertising SDKs, no tracking pixels, no data brokers.

Security

Authentication to your server uses HTTP Basic auth over the transport you configure. We strongly recommend exposing the server over HTTPS through a reverse proxy, VPN or the relay rather than plain HTTP on the public internet.

Relay tunnels are carried over TLS with per-device pairing credentials that can be revoked. Credentials are isolated in platform secure storage and are deliberately excluded from logs and crash reports.

Retention

Relay account data is kept while your account is active. Traffic counters are retained for billing and abuse prevention. Sign-in codes and pairing records are deleted after they expire, within 24 hours. Prompts, code, diffs and terminal output are never stored, so there is no content to retain.

Your rights

Depending on where you live, you may have rights to access, correct or delete personal data we hold about your relay account. Email our support address to make a request. Direct connections involve no account, so there is nothing server-side to delete there; deleting the app removes the data stored on your device.

Children

opencode mobile is a developer tool and is not directed at children under 13. We do not knowingly collect personal information from children.

Changes to this policy

If this policy changes, the updated version will be published on this page with a new revision date. Material changes will also be noted in the changelog.

Contact

Questions about privacy can be sent to our support email. You can also request deletion of your relay account and its associated data there.

Email support

Privacy & security

Self-hosted by design

opencode mobile is a remote control for a server you own. Connect directly on your LAN or through the encrypted relay. Your prompts, code and terminal output are never stored by a middleman.

Direct connection first

On your network, the app talks straight to your opencode serve instance over HTTP and SSE. Nothing sits in between.

Credentials in the keychain

Passwords are kept out of the data model and stored separately with flutter_secure_storage — Keychain on iOS, Keystore on Android.

Local message timeline

Sessions and messages are cached on your device with drift so the app stays usable on flaky networks. Clearing the app clears the cache.

Analytics only if compiled in

Anonymous usage events are sent to PostHog only when an analytics key is baked into the build. No prompts, code or credentials are ever included.

Relay without exposure

When you need public access, the relay carries TLS-encrypted traffic and never stores prompts, code or terminal output. Your opencode password stays on your machine.

Your network, your rules

Expose the server over LAN, VPN or the relay. The app follows whatever address and auth you configure — nothing more.

Join TestFlightDownload APK

Free to download · iOS & Android