Skip to content

OpenCode Mobile App — Setup and Download

OpenCode Mobile is an independent Android and iOS client for an OpenCode server that you run. It lets you start and monitor coding tasks, review permissions and changes, manage projects and sessions, inspect files, and use a project terminal from a phone.

It is not an official OpenCode product, a hosted AI service, or a replacement for the OpenCode server.

Use the OpenCode Mobile download page to choose an installation path:

  • Google Play (recommended): install and receive updates through Google Play.
  • Direct APK: download the latest release from the project’s public GitHub Releases when Play is unavailable or you prefer manual installation.
  • iOS TestFlight beta: join the OpenCode Mobile TestFlight release on an iPhone or iPad.

Do not install APK files reposted by unrelated download sites. The current release history and source code are public.

You need:

  1. An Android device or iPhone/iPad.
  2. A current OpenCode installation on a computer or server that owns the project.
  3. OpenCode running in server mode.
  4. A network route from the phone to that server.
  5. A one-time pairing link/QR from OpenCode 2, or a server URL and password for manual setup.

The complete setup is in Set Up OpenCode Mobile. The in-app connection choices are explained in Add or switch connections.

  1. Open the download page and choose Google Play or the direct APK.
  2. If Android asks, allow installation from your browser or file manager for the APK path.
  3. Open OpenCode Mobile and continue with onboarding.
  1. Install TestFlight from the App Store if needed.
  2. Join the OpenCode Mobile TestFlight release.
  3. Install the beta and continue with onboarding.

The iOS build is a beta. Features that depend on native iOS integrations may lag behind Android; see Releases and compatibility.

OpenCode 2 is the current primary target. Install it with the v2 installer:

Terminal window
curl -fsSL https://opencode.ai/v2/install | bash

Start the shared background service, set a password, and create a pairing link:

Terminal window
opencode service set password 'use-a-strong-password'
opencode service set port 4096
opencode service start
opencode service status
opencode pair

Scan the printed QR code in the app, or paste the pairing link. Pairing links expire after five minutes and work once.

For access through Tailscale, Cloudflare Tunnel, or a reverse proxy, keep the service on loopback and pass the public URL to the pairing command:

Terminal window
opencode pair --url https://your-opencode-host.example

If you need a foreground server instead, use opencode serve:

Terminal window
OPENCODE_SERVER_PASSWORD='use-a-strong-password' \
opencode serve --hostname 127.0.0.1 --port 4096

Pairing requires the shared service; connect to a standalone opencode serve process manually with its URL and password. OpenCode 1.x uses opencode serve or opencode web and also connects manually.

Never publish an unauthenticated OpenCode port to the internet.

On first launch, onboarding walks through Welcome, Permissions, Connect, Project, and Ready. In Connect, choose:

  • Scan QR code for a local OpenCode 2 pairing code created by opencode pair
  • Manual for a server URL, username, and password
  • Cloud Link for a managed remote machine, when available in a store-installed build

After onboarding, use Settings → Connection to add or switch saved servers. See Add or switch connections.

Use OpenCode Mobile when you want native navigation, voice input, notifications, sharing from other apps, home-screen widgets, and saved server profiles. Use the OpenCode web UI when you want the browser interface: in OpenCode 2, open a link printed by opencode pair; in OpenCode 1.x, run opencode web.

The complete tradeoff is documented in OpenCode Mobile vs OpenCode Web.

Before opening the app, test the same API base URL from a device on the intended network:

Terminal window
curl -u your-user:use-a-strong-password \
https://your-opencode-host.example/global/health

If the root URL serves HTML, the API may live below a prefix such as /api. Enter the complete API base in the app and verify <base>/global/health instead of guessing.

Use the troubleshooting checklist for authentication, HTML responses, local QR pairing, Cloud Link, proxy, realtime, and project problems.

  • Google Play: updates are delivered by the store. The app can also check for available updates in Settings → Advanced → Update checks.
  • Direct APK: install a newer APK from GitHub Releases over the existing app.
  • iOS TestFlight: install the latest TestFlight build when it appears.
  • Removing the app removes local settings and saved credentials. It does not delete data from your OpenCode server or cancel a Cloud Link subscription.