OpenCode Mobile

Run and review self-hosted OpenCode coding sessions from an Android phone.

Stars
★ 286
Last updated
1d ago
License
MIT
Primary language
TypeScript

At a glance

How it runs
Desktop appSelf-hosted service
Works with
Universal · cross-platformOpenAI API · Claude API
Cost
Free software; you pay for model usage
Setup effort
Medium · a few setup steps
You'll need
Android devicenpmopencode-aiSelf-hosted opencode serverShell / CLINetwork accessLocal filesystem
Typical use
A developer already running OpenCode on a laptop or VPS wants to monitor and continue coding sessions from an Android phone while away from the workstation.
Not a fit if
  • Users who need iOS or iPad; only Android is available
  • Teams unwilling to run and maintain their own opencode server
Source review
71/100 · Some gaps

What does this agent do, and when should you use it?

OpenCode Mobile is an independent, open-source Android client for the OpenCode AI coding agent, built with React Native and Expo. It connects to a user-operated OpenCode server over HTTP and SSE to list, create, and resume sessions while streaming agent responses token by token. The app presents file diffs, tool-call approval prompts, multiple server connections, and biometric protection, while the remote OpenCode server performs the actual model calls and code operations. OpenAI, Anthropic, and other provider credentials remain on that server; the client does not receive those keys or relay code and conversations through the maintainer's infrastructure. It is a practical fit for Android users willing to operate an OpenCode backend, but not for teams that require iOS, a currently available managed service, or real offline agent execution.

The app stores and manages connections to multiple OpenCode servers reached through a LAN address, Cloudflare Tunnel, ngrok, or Tailscale. Once connected, it uses the OpenCode HTTP + SSE API to list sessions, create or resume them, send messages, stream responses, and subscribe to file-change events. Its interface renders the agent's edits as inline side-by-side diffs and lets the user approve or reject tool calls before execution. Server credentials are kept in the Android Keystore through expo-secure-store, and device biometrics can protect both app access and individual message sends. AI-provider requests, code access, and tool execution occur on the user's opencode server; the phone receives streamed replies, diffs, and permission requests.

  1. A developer already running OpenCode on a laptop or VPS wants to monitor and continue coding sessions from an Android phone while away from the workstation.
  2. A solo developer using Tailscale wants to inspect agent output, file changes, and permission requests over a private network.
  3. A team member exposing self-hosted services through Cloudflare Tunnel or ngrok needs one mobile client for several OpenCode endpoints.
  4. A developer who requires human approval for agent actions wants to review diffs and accept or reject tool calls from a phone.
  5. A prospective user wants to evaluate the interaction model through a roughly 30-second offline walkthrough of reasoning, grep, a diff, and a permission prompt before deploying a server.

How do you install or deploy this agent?

Android is the only supported platform. Install package cc.agentlabs.opencode from Google Play; alternatively, add https://dzianisv.github.io/opencode-mobile/fdroid/repo under Settings → Repositories → + in an F-Droid client; or download the signed APK from https://github.com/dzianisv/opencode-mobile/releases/latest. The version identified in the source is v0.4.7. Real sessions also require OpenCode on a machine you control:

npm install -g opencode-ai
OPENCODE_SERVER_PASSWORD=yourpassword opencode serve --hostname 0.0.0.0 --port 4096

Replace yourpassword with your own server password. iOS, the Apple App Store, and IzzyOnDroid are not currently available.

How do you use this agent?

For a server-free preview, open the Sessions screen and tap “Try a Demo” to play the scripted bug-fix workflow. For a live project, start opencode serve with OPENCODE_SERVER_PASSWORD, then tap “Add Connection” in the app. Select Local network, Tunnel, or Tailscale; enter an address such as http://192.168.1.100:4096, https://my-opencode.trycloudflare.com, or http://100.x.x.x:4096; provide the server password; and tap “Connect.” You can then browse, create, or resume sessions, submit coding requests, watch streamed responses, inspect file diffs, and approve or reject tool calls. Configure AI-provider API keys on the OpenCode server, not in the mobile client.

What are this agent's strengths and limitations?

Pros
  • It covers the mobile review loop with streamed messages, file diffs, and explicit approval or rejection of tool calls rather than offering chat alone.
  • It supports multiple servers reached through LAN networking, Tailscale, Cloudflare Tunnel, or ngrok.
  • Provider API keys stay on the self-hosted server, and code or conversations are not proxied through the project's servers.
  • Credentials use the Android Keystore, while biometric checks can protect app access and individual sends.
  • A built-in offline demo lets users inspect the main workflow before setting up infrastructure.
Limitations
  • It is Android-only; iOS, the Apple App Store, and a dedicated tablet layout are not available.
  • Live coding sessions require the user to install, configure, secure, and maintain a network-accessible OpenCode server.
  • Remote access may require operating and securing Tailscale, Cloudflare Tunnel, or ngrok, adding networking and security work.
  • Offline session history is only planned, and the current offline mode is a scripted demonstration rather than real agent execution.
  • The Cloudflare/ngrok tunnel wizard is still Beta, and the managed opencode Cloud option has not shipped.

How does this agent compare with similar options?

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
OpenCode Mobile This agent 71 · Some gaps Desktop appFree + model costs ★ 286 1d ago TypeScript OpenAI API · Claude API
CC-Connect 60 · Some gaps CLIFree + model costs ★ 16k 2d ago Go Codex · Claude Code
Kandev 74 · Some gaps CLIFree + model costs ★ 1.1k today Go Codex · Claude Code
Forge: Reliability Layer for Self-Hosted LLM Tool Calling 49 · Major gaps CLIFree + model costs ★ 2.3k 4d ago Python OpenAI API · Claude API

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Some gaps
71/ 100 5-point scale 3.6 / 5
This review covers the source as of Sep 22, 2026. The project has shipped 2 stable release(s) since, which have not been re-reviewed. The score and verdict describe the reviewed version only. Recent releases ↓
Trust 18/29
Reliability 8/14
Adaptability 15/18
Convention 14/18
Effectiveness 10/13
Verifiability 6/8
Why each dimension lost points
Trust18 / 29 · 3.1/5

The README clearly describes the HTTP/SSE flow among the mobile client, the user's self-hosted opencode server, and the model provider, and says provider keys do not pass through the app's servers. Credentials are described as OS-keystore protected, crash reporting as opt-in and off by default, and tool calls as reviewable and rejectable; biometric protection can also cover individual sends. Deductions apply because the supplied files do not show the Android permission manifest, production approval enforcement, certificate-validation policy, or complete retention behavior. package.json includes PostHog and the build injects a PostHog key, creating tension with the statements that no analytics SDK is bundled and no personal data is collected. Dependencies are generally constrained and CI builds a source-oriented F-Droid variant, but no vulnerability scan, update policy, or lockfile evidence is supplied. Diff review and rejection can prevent changes, yet no post-change rollback or recovery mechanism is shown. Independence, upstream opencode, Expo, corporate copyright, and MIT attribution are explicit; unknown registry provenance was not treated as suspicious.

Reliability8 / 14 · 2.9/5

CI defines type checking, unit tests, Android builds, and mock-backed activation E2E coverage, including a visible 401 failure and several directory, diff, and picker flows. Server prerequisites, Android scope, and installation channels are also documented. Self-consistency is reduced because the README repeatedly identifies 0.4.7 as current while package.json reports 0.4.15, and the no-analytics claim conflicts with the PostHog dependency and build key. Workflow comments acknowledge that newer flows are non-blocking and had not completed in CI, while the streamed-reply assertion is omitted because of a harness limitation. The authentication-negative flow supports a useful failure-message score, but the evidence does not cover user-facing handling for broader timeout, disconnection, or server-version failures.

Adaptability15 / 18 · 4.2/5

The intended audience and scenarios are unusually clear: Android users connect to a self-hosted server through LAN, Tailscale, Cloudflare Tunnel, or ngrok, with an offline demo for evaluation. Stable, beta, planned, and unavailable features are separated, and the client is accurately bounded as a thin interface rather than a model provider or hosted backend. Approval prompts, connection testing, and biometric send protection indicate reasonable trigger precision, but the production enforcement code is absent, so uniform gating of high-impact actions cannot be confirmed. Environment support includes multiple connections, directory scoping, and several distribution channels, but it remains Android-only, tablet layout and offline history are unfinished, and no real-server compatibility matrix is provided.

Convention14 / 18 · 3.9/5

The README has strong information architecture covering installation, quick start, architecture, status, roadmap, privacy, contribution, support, and licensing. Three Android installation routes and server startup instructions are adequate for ordinary onboarding. iOS absence, beta tunnel setup, and planned tablet and offline-history features are stated, while the MIT text and copyright are complete. Deductions apply for unstable metadata: the README says 0.4.7 but the package says 0.4.15, and the @opencode-ai/mobile package name may blur the otherwise explicit non-affiliation statement. Examples and an offline demo exist, but there is no systematic FAQ or troubleshooting section. CI can generate release notes, yet no changelog or migration guidance is supplied. A maintaining company, sponsorship route, support email, and project tracking are named, but curated publisher identity is unverified and no clear security-response ownership or support commitment is shown.

Effectiveness10 / 13 · 3.8/5

Streaming chat, resumable sessions, inline diffs, approval controls, and cross-directory session management produce directly usable mobile coding interactions. The offline demo also lowers evaluation effort, giving the product meaningful value beyond a generic remote shell. Deductions reflect its dependence on a user-operated and secured opencode server, network exposure or tunneling, and separately billed model access; the tunnel wizard is beta, while offline history and managed hosting remain unshipped. The client is free and has several install options, but total cost and benefit still depend on server, provider, and secure-network setup.

Verifiability6 / 8 · 3.8/5

Several claims are traceable across the supplied files: package.json identifies dependencies and scripts, workflows specify tests, builds, signing, and the F-Droid flavor, and the mock server combines detailed protocol commentary with concrete endpoint behavior. Traceability is reduced by the version and analytics/privacy contradictions and by the absence of privacy implementation code, permission manifests, a lockfile, release attestations, or actual test results. Features, builds, and test intentions receive useful cross-file corroboration, but not every promotional claim is independently supported. The material carefully distinguishes the mock from a real server, blocking from non-blocking tests, harness limitations, beta functionality, and future plans, so fact, inference, and aspiration are separated well.

Risks and how to mitigate them
  • Inspect PostHog initialization, consent gating, event fields, and disablement before relying on the privacy claims; the dependency and injected build key conflict with the README's no-analytics-SDK statement.
  • Determine whether 0.4.7 or 0.4.15 corresponds to this revision and the distributed APKs, then verify signatures, source correspondence, and update paths for every channel.
  • A tool-approval UI is not proof of server-side containment; verify the real opencode permission policy and rejection and recovery behavior before connecting it to writable code.
  • The LAN and Tailscale examples use plain HTTP. Do not expose the server over an untrusted network without authentication, a controlled tunnel, and transport encryption.
  • The supplied E2E workflow explicitly contains non-blocking flows and omits a streamed-reply assertion; static evidence does not establish complete real-device streaming or recovery behavior.
Evidence confidence: Low Reviewed Sep 22, 2026 Reviewed revision 646f9cbf7743 New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v0.4.17
    Release notes excerpt
    What's Changed * docs: move repo docs to Notion, delete from repo (#221) by @dzianisv in https://github.com/dzianisv/opencode-mobile/pull/222 * docs: repoint dangling prose pointers to migrated docs (Notion) by @dzianisv in https://github.com/dzianisv/opencode-mobile/pull/225 * Fix dangling prose pointer in docs/playstore.md to migrated F-Droid doc (#224) by @dzianisv in https://github.com/dzianisv/opencode-mobile/pull/226 Full Changelog: https://github.com/dzianisv/opencode-mobile/compare/v0.4.16...v0.4.17
    View on GitHub ↗
  2. v0.4.16
    Release notes excerpt
    What's Changed * tools(sentry): anchor the measurement windows on the gate's rollout instant by @dzianisv in https://github.com/dzianisv/opencode-mobile/pull/178 * docs(release): record v0.4.15 and make the versionCode bump non-optional by @dzianisv in https://github.com/dzianisv/opencode-mobile/pull/181 * fix(triage): never lose Play review feedback to a missing label by @louiscalata in https://github.com/dzianisv/opencode-mobile/pull/217 * fix: handle PermissionV2 events and keyboard avoidance on connection screens by @meramsey in https://github.com/dzianisv/opencode-mobile/pull/216 …
    View on GitHub ↗
  3. v0.4.15
    Release notes excerpt
    What's Changed * fix(diagnostics): classify 401/403 as auth-failed so a wrong password stops the retry loop by @dzianisv in https://github.com/dzianisv/opencode-mobile/pull/170 * docs(playstore): record v0.4.14 production rollout (versionCode 151) by @dzianisv in https://github.com/dzianisv/opencode-mobile/pull/171 * tools(sentry): org-wide volume report + measure on submitted, not accepted by @dzianisv in https://github.com/dzianisv/opencode-mobile/pull/172 …
    View on GitHub ↗

FAQ

Does OpenCode Mobile cost anything?
The mobile client is free and open-source under the MIT license. You remain responsible for charges from model providers configured on your OpenCode server; the planned paid opencode Cloud backend is not yet available.
Does the app receive my model-provider API keys?
No. The self-hosted OpenCode server handles provider credentials and model calls, while the app communicates with that server over HTTP and SSE.
Can I use it without running a server?
You can run “Try a Demo” to view a scripted bug-fix session, but real coding sessions require a running OpenCode server.
How are credentials and risky tool actions protected?
Server credentials are stored through expo-secure-store in the Android Keystore. Biometric unlock is supported, and tool calls can be reviewed and approved or rejected before execution.
Will it run on an iPhone or iPad?
No. The documented release is Android-only; iOS is unavailable, and an iPad or tablet layout remains planned.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents