Files
opencode-mobile/docs-site/comparison/index.html
Den 3c88e16ae5 fix(funnel): repair activation-path bugs found in end-to-end audit (#114)
Systematic trace of the activation funnel (store listing -> docs setup
guide -> in-app onboarding -> connect flow) after #113 showed a docs
404 bug had slipped through. Fixes found in this pass:

- README.md and CONTRIBUTING.md still told developers to run
  `npm install -g opencode` (missing -ai), the exact 404 #113 fixed
  everywhere else. Same package-name fix applied here.
- src/lib/diagnostics.ts: the health probe reported ok:true for any
  resolved fetch, including 401/403/404/500 responses. A wrong
  password or broken server therefore classified as "Health endpoint
  responded - connection actually works now.", contradicting the
  error shown right next to it. Health now requires a real 2xx;
  root-reachability probe explicitly opts out (requireOk: false) to
  keep its existing reachability-only semantics (already encoded in
  diagnostics-classify.test.ts).
- docs-site/vs-termux: architecture explainer described
  /session/{id}/events and /session/{id}/chat, neither of which
  exists; the app actually uses /global/event and
  /session/{id}/prompt_async (src/lib/sdk.ts).
- docs-site/features: opencode repo link pointed at
  github.com/opencode-ai/opencode instead of github.com/sst/opencode,
  the org used everywhere else in the docs.
- Stale "v0.4.3" version strings (README x3, docs-site/download x2)
  bumped to v0.4.7, the actual latest shipped release confirmed live
  on GitHub Releases and the F-Droid repo index. Fixed the associated
  Android min-OS contradiction (7.0 vs 8.0+) to 7.0, matching the live
  F-Droid manifest's minSdkVersion 24.
- Dropped stale "GPT-4" model naming on 3 docs-site pages, consistent
  with the model-agnostic policy already applied to the Play listing
  in #83.

See PR body for the found-not-fixed list (Play Console listing drift,
GitHub Sponsors not enabled, a Cloud-vs-waitlist messaging conflict)
that need a product/human decision rather than a code fix.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 21:47:13 -07:00

337 lines
15 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>AI Coding on Android: OpenCode Mobile vs. ChatGPT &amp; Copilot</title>
<meta name="description" content="Compare OpenCode Mobile vs. ChatGPT and GitHub Copilot on Android. Self-hosted, offline-capable, with real terminal access — not just a chat window." />
<meta name="keywords" content="AI coding assistant android, code with AI on android, opencode android vs chatgpt, best ai code editor android, ai coding on phone, self-hosted AI coding android" />
<meta name="theme-color" content="#3b82f6" />
<link rel="canonical" href="https://dzianisv.github.io/opencode-mobile/comparison/" />
<link rel="icon" type="image/png" href="../fdroid/repo/icons/icon.png" />
<meta property="og:type" content="article" />
<meta property="og:site_name" content="OpenCode Mobile" />
<meta property="og:title" content="AI Coding on Android: OpenCode Mobile vs. ChatGPT &amp; Copilot" />
<meta property="og:description" content="Compare OpenCode Mobile vs. ChatGPT and GitHub Copilot on Android. Self-hosted, offline-capable, with real terminal access — not just a chat window." />
<meta property="og:url" content="https://dzianisv.github.io/opencode-mobile/comparison/" />
<meta property="og:image" content="https://dzianisv.github.io/opencode-mobile/og.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="AI Coding on Android: OpenCode Mobile vs. ChatGPT &amp; Copilot" />
<meta name="twitter:description" content="Compare OpenCode Mobile vs. ChatGPT and GitHub Copilot on Android — self-hosted, offline, real terminal." />
<meta name="twitter:image" content="https://dzianisv.github.io/opencode-mobile/og.png" />
<!-- Structured data: BreadcrumbList -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "OpenCode Mobile", "item": "https://dzianisv.github.io/opencode-mobile/" },
{ "@type": "ListItem", "position": 2, "name": "Comparison", "item": "https://dzianisv.github.io/opencode-mobile/comparison/" }
]
}
</script>
<!-- Structured data: FAQPage -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Can I do real AI-assisted coding on Android?",
"acceptedAnswer": { "@type": "Answer", "text": "Yes. OpenCode Mobile connects to an opencode server running on your laptop or home machine and streams the full agent session to your phone. You get the same file editing, terminal execution, and multi-file context you would at a desktop — just controlled from Android." }
},
{
"@type": "Question",
"name": "How is OpenCode Mobile different from using ChatGPT on Android?",
"acceptedAnswer": { "@type": "Answer", "text": "ChatGPT's Android app and mobile browser are chat interfaces — you paste code, get suggestions, and copy them back manually. OpenCode Mobile drives a real opencode agent on your server: it reads your files, runs shell commands, applies diffs, and streams results live. No copy-paste loop." }
},
{
"@type": "Question",
"name": "Does OpenCode Mobile work without an internet connection?",
"acceptedAnswer": { "@type": "Answer", "text": "If your opencode server is on the same local network as your phone (or reachable via Tailscale), OpenCode Mobile works fully without public internet. The server handles LLM calls; if you point it at a local model, the entire flow is offline." }
},
{
"@type": "Question",
"name": "Is OpenCode Mobile free?",
"acceptedAnswer": { "@type": "Answer", "text": "Yes. OpenCode Mobile is free and open-source (MIT licensed). The app itself has no subscription. LLM costs depend on the provider you configure on your opencode server — you can use any API key you already have, or a free local model." }
}
]
}
</script>
<style>
:root{--bg:#0b0f17;--bg-soft:#121826;--card:#161d2e;--border:#243049;--text:#e6ebf5;--muted:#9aa6be;--accent:#3b82f6;--accent-2:#2563eb;}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:880px;margin:0 auto;padding:0 20px}
section{padding:36px 0;border-top:1px solid var(--border)}
section:first-of-type{border-top:none}
h1,h2,h3{line-height:1.25;margin:0 0 .5em}
h1{font-size:2.1rem}
h2{font-size:1.4rem;margin-top:.2em}
h3{font-size:1.1rem;margin-top:1.4em}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--bg-soft);border:1px solid var(--border);border-radius:6px;padding:2px 6px;font-size:.9em;word-break:break-all;}
pre{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:14px 16px;overflow-x:auto;}
pre code{background:none;border:none;padding:0;word-break:normal}
.crumbs{font-size:.9rem;color:var(--muted);padding-top:24px}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--accent)}
.lead{font-size:1.12rem;color:var(--muted)}
.muted{color:var(--muted)}
ul li,ol li{margin-bottom:6px}
footer{border-top:1px solid var(--border);padding:32px 0 48px;text-align:center;color:var(--muted);font-size:.9rem;}
footer a{margin:0 8px}
/* Comparison table */
.table-wrap{overflow-x:auto;margin:24px 0}
table{width:100%;border-collapse:collapse;font-size:.97rem}
thead tr{background:var(--card)}
th,td{padding:11px 14px;border:1px solid var(--border);text-align:left;vertical-align:top}
th{color:var(--muted);font-weight:600;font-size:.88rem;text-transform:uppercase;letter-spacing:.03em}
td:first-child{font-weight:500}
.yes{color:#4ade80}
.no{color:#f87171}
.partial{color:#fbbf24}
/* Use-case cards */
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px 22px;margin:16px 0}
.card h3{margin-top:0;font-size:1.05rem}
/* CTA */
.cta-box{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:12px;padding:22px 24px;margin:28px 0;display:flex;flex-wrap:wrap;align-items:center;gap:16px;justify-content:space-between}
.cta-box p{margin:0;font-size:1.05rem}
.btn{display:inline-block;background:var(--accent);color:#fff;font-weight:600;padding:10px 22px;border-radius:8px;font-size:.97rem;white-space:nowrap}
.btn:hover{background:var(--accent-2);text-decoration:none}
@media(min-width:680px){h1{font-size:2.5rem}}
</style>
</head>
<body>
<div class="wrap">
<nav class="crumbs" aria-label="Breadcrumb">
<a href="../">OpenCode Mobile</a> &rsaquo; Comparison
</nav>
</div>
<main>
<section>
<div class="wrap">
<h1>AI Coding on Android: OpenCode Mobile vs. Browser-Based Tools</h1>
<p class="lead">
Most "AI coding on Android" options are just chat windows — you paste code in,
copy suggestions out, and manually apply changes yourself. OpenCode Mobile is different:
it drives a real <a href="https://opencode.ai">opencode</a> agent running on your own machine,
streams the session live to your phone, and lets you approve file edits and shell commands
directly from Android.
</p>
<div class="cta-box">
<p>Ready to try it? OpenCode Mobile is free and open-source.</p>
<a class="btn" href="../download/">Download for Android</a>
</div>
</div>
</section>
<section>
<div class="wrap">
<h2>Feature comparison</h2>
<p class="muted">How OpenCode Mobile stacks up against the most common alternatives people reach for on Android.</p>
<div class="table-wrap">
<table>
<thead>
<tr>
<th>Feature</th>
<th>OpenCode Mobile</th>
<th>ChatGPT (mobile browser)</th>
<th>GitHub Copilot (mobile)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Works offline / on LAN</td>
<td class="yes">Yes — connects to your local server via Wi-Fi or Tailscale</td>
<td class="no">No — requires internet to OpenAI servers</td>
<td class="no">No — requires internet to GitHub servers</td>
</tr>
<tr>
<td>Self-hosted / private</td>
<td class="yes">Yes — your server, your API keys, your data</td>
<td class="no">No — all prompts and code go to OpenAI</td>
<td class="no">No — code sent to GitHub/Microsoft</td>
</tr>
<tr>
<td>Terminal / shell access</td>
<td class="yes">Yes — agent can run shell commands on your machine</td>
<td class="no">No — chat only</td>
<td class="partial">Limited — IDE-embedded only, no Android client</td>
</tr>
<tr>
<td>Streaming responses</td>
<td class="yes">Yes — live token streaming from the agent</td>
<td class="yes">Yes — streamed in browser</td>
<td class="partial">Partial — depends on client</td>
</tr>
<tr>
<td>Multi-file context</td>
<td class="yes">Yes — agent reads your whole project tree</td>
<td class="partial">Partial — paste manually, limited context</td>
<td class="partial">Partial — IDE context, no Android app</td>
</tr>
<tr>
<td>Applies diffs / edits files</td>
<td class="yes">Yes — agent writes changes, you approve on phone</td>
<td class="no">No — copy-paste only</td>
<td class="no">No standalone Android client</td>
</tr>
<tr>
<td>Free &amp; open-source</td>
<td class="yes">Yes — MIT licensed, no subscription</td>
<td class="partial">Free tier, closed source</td>
<td class="partial">Free tier, closed source</td>
</tr>
<tr>
<td>Bring your own LLM</td>
<td class="yes">Yes — any provider opencode supports (Claude, GPT, Gemini, local models)</td>
<td class="no">OpenAI models only</td>
<td class="no">GitHub Copilot models only</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<section>
<div class="wrap">
<h2>Real use cases: coding from your phone</h2>
<div class="card">
<h3>Code review on the go</h3>
<p>
You get a Slack ping about a PR while away from your desk. With OpenCode Mobile,
open the agent on your phone, ask it to pull the branch and summarize the diff,
then drill into any file with follow-up questions. The agent runs on your machine —
it has full repo access, not just whatever you pasted into a chat.
</p>
<p class="muted">
With ChatGPT on Android you would need to manually copy each file's content into
the chat, losing cross-file context and having to apply feedback yourself.
</p>
</div>
<div class="card">
<h3>Hotfixes from your phone</h3>
<p>
Production is down and you are not near a computer. Open OpenCode Mobile, describe
the bug, and let the agent locate the offending code, propose a fix, and apply it.
You review and approve the diff on your phone, then trigger your deploy pipeline —
all without opening a laptop.
</p>
<p class="muted">
Browser-based AI tools require you to find the right file, copy it in, copy the
fix out, and open a separate terminal or web IDE to actually commit it.
</p>
</div>
<div class="card">
<h3>Exploring an unfamiliar codebase</h3>
<p>
Onboarding to a new project or returning to old code after months away? Ask the
agent to map the directory structure, explain the architecture, or trace how a
specific function is called. Because opencode has full filesystem access on your
server, it can answer questions about any file without you having to find and
paste it first.
</p>
<p class="muted">
Self-hosted also means sensitive internal code never leaves your network —
important for proprietary or client work.
</p>
</div>
</div>
</section>
<section>
<div class="wrap">
<h2>Why self-hosted AI coding matters on mobile</h2>
<p>
When you use a browser-based AI assistant, every snippet of code you share travels
to a third-party server. For personal projects that may be fine, but for work code,
client projects, or anything under NDA it is a real risk. OpenCode Mobile keeps
traffic on your own network: the phone talks to your server over your LAN or a
private Tailscale tunnel, and the server talks to whichever LLM API you configure
— or a fully local model with no external calls at all.
</p>
<p>
The other advantage is cost control. Browser AI tools bill per message or per month.
With opencode you supply your own API key and pay only for tokens used — or run a
free local model like Ollama and pay nothing.
</p>
</div>
</section>
<section>
<div class="wrap">
<h2>Frequently asked questions</h2>
<h3>Can I do real AI-assisted coding on Android?</h3>
<p>
Yes. OpenCode Mobile connects to an opencode server running on your laptop or home
machine and streams the full agent session to your phone. You get the same file
editing, terminal execution, and multi-file context you would at a desktop — just
controlled from Android.
</p>
<h3>How is OpenCode Mobile different from using ChatGPT on Android?</h3>
<p>
ChatGPT's Android app and mobile browser are chat interfaces — you paste code, get
suggestions, and copy them back manually. OpenCode Mobile drives a real opencode
agent on your server: it reads your files, runs shell commands, applies diffs, and
streams results live. No copy-paste loop.
</p>
<h3>Does OpenCode Mobile work without an internet connection?</h3>
<p>
If your opencode server is on the same local network as your phone (or reachable via
<a href="../guide/">Tailscale</a>), OpenCode Mobile works fully without public internet.
The server handles LLM calls; if you point it at a local model, the entire flow is offline.
</p>
<h3>Is OpenCode Mobile free?</h3>
<p>
Yes. OpenCode Mobile is free and open-source (MIT licensed). The app itself has no
subscription. LLM costs depend on the provider you configure on your opencode server —
you can use any API key you already have, or a free local model.
</p>
<div class="cta-box">
<p>Get started in minutes — <a href="../guide/">read the setup guide</a> or go straight to download.</p>
<a class="btn" href="../download/">Download for Android</a>
</div>
</div>
</section>
</main>
<footer>
<div class="wrap">
<p>
<a href="../">Home</a>
<a href="../download/">Download</a>
<a href="../features/">Features</a>
<a href="../guide/">Setup guide</a>
<a href="https://github.com/dzianisv/opencode-mobile">GitHub</a>
<a href="../privacy/">Privacy policy</a>
</p>
<p class="muted">Free and open-source. Built by VIBE TECHNOLOGIES, LLC.</p>
</div>
</footer>
</body>
</html>