Repository navigation
Description
Feature hasn't been suggested before.
- I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
I am offering the source of an Android client that talks to an OpenCode server the user already runs. It is MIT, copyright 2026 Amniscient, so the license matches OpenCode. It is yours to take and badge as your own. Please keep a credit line: Originally built by Amniscient.
It is not OpenCode Mobile. You decide where it lives: in this repo under packages/, a separate repo you adopt, or a community link.
What 0.6.4 does: pair from opencode pair (scan the terminal QR, or paste the link, the {code,urls} JSON, or the bare code), list sessions, open one, follow live events, send a prompt, interrupt, and answer permission with once, always, or reject. Light and dark themes. If every address in the code is 127.0.0.1 and the phone has a computer address saved, it keeps the code, port, and path and retries on that address. opencode pair still prints 127.0.0.1 when the server is listening on 0.0.0.0. opencode pair --url http://<lan-ip>:<port> is the link a phone can open.
The UI is Kotlin and Compose. The session model is helium/app.amni in this tree, compiled to C and linked with the NDK. That file is MIT. The Helium compiler is not in the tarball. It stays Apache-2.0 and is cloned at build time from https://github.com/Amnibro/helium at 38a5e04940d85e27e26cf55cc3c7c4d90800cb0c. Fonts stay SIL OFL 1.1 (Inter and IBM Plex Mono). REBRANDING.md lists the launcher name, package id, icon, and theme colors, so renaming it to OpenCode is a few files. The icon is an original mark, not your logo.
From a checkout, with JDK 17, a C compiler, and Android SDK 35 (build-tools 35.0.0, NDK 27.2.12479018):
export ANDROID_HOME="$HOME/Android/Sdk"
bash tools/build-apk.shThat writes dist/companion-debug.apk. I built this tree: unit tests and assembleDebug succeeded, versionName 0.6.4.
The debug APK allows cleartext HTTP to a private address. The release network config does not. FLAGS.md says so. tools/pair.py is an optional helper and is not part of the APK build.
#62721 is still the request to ship your Mobile app. This source is an offer of a different client. Your site still marks Android as coming soon.
Source: https://github.com/Amnibro/opencode-android-companion (public, MIT, one fresh commit, Helium included). Screenshots to attach: Connect, Sessions, and an open session, dark and light (connect-dark.png, connect-light.png, sessions-dark.png, sessions-light.png, session-dark.png, session-light.png).
Screenshots
Connect (dark)
Connect (light)
Sessions (dark)
Sessions (light)
Session (dark)
Session (light)






Activity
opencodejr commentedon Nov 9, 2026
Thanks for offering this, @Amnibro. To restate it: you're offering the source of your MIT-licensed Android client for OpenCode servers (pairing through
opencode pair, sessions, live events, prompts, interrupt and permission replies) for the project to adopt and rebrand, whether underpackages/, as a separate repo, or as a community link. The maintainers will look at it and decide whether and how to take it up.Related items:
ai.opencode.mobilecode), so the "coming soon" label on the site may change soon./pairQR codes encode the loopback127.0.0.1address. This is the behaviour you described, and fixes are proposed in fix(tui): encode reachable pairing addresses in the /pair QR code #54051, fix(cli): normalize wildcard bind address in service registration URL #59852 and feat: make pairing QR codes https links any camera opens #59962.Amnibro commentedon Nov 10, 2026
Yes - I put together an android mobile compatible app in Helium and Kotlin, and validated that it pairs and communicated with a paired desktop session.
I wasn't sure if the app was already in development or just planned, so I figured I would try to contribute.
Feel free to use as much or as little of it as you'd like.
Thanks!