Run OpenRemote on Android

Build the app from source with Expo, install it on an Android emulator or device, and connect it to an OpenCode server on your network.

Prerequisites

  • Android Studio with Android SDK. Expo SDK 54 targets Android 7+ with compile SDK 36.
  • Java 17 active via JAVA_HOME.
  • ANDROID_HOME or ANDROID_SDK_ROOT, or android/local.properties when needed.
  • An Android emulator or USB device visible to ADB.

Install dependencies

git clone https://github.com/blairhudson/openremote.git
cd openremote
bun install

Prepare Android

Start an emulator from Android Studio, then verify ADB can see it:

adb devices

If adb is not found, add Android SDK platform-tools to your shell path.

Start OpenCode

Use mDNS on physical devices. For manual connections, bind OpenCode to all interfaces.

opencode --mdns
or
opencode --hostname 0.0.0.0

Use a password before starting OpenCode on shared or public Wi-Fi:

OPENCODE_SERVER_PASSWORD=changeme123 opencode --mdns

Run the Android app

bun run android

On the Android emulator, connect to the host machine with 10.0.2.2:4096. On a physical device, use discovery or your host's LAN IP.

Discovery and permissions

OpenRemote's Android manifest is generated from app.json and includes internet, network state, Wi-Fi state, multicast, and camera permissions for discovery and QR scanning.

The optional plugin adds a TUI sidebar QR code for faster setup:

npx opencode-openremote@latest

Troubleshooting

  • Confirm Java 17 is active before running bun run android.
  • Confirm adb devices lists the emulator or connected device.
  • Use 10.0.2.2:4096 from the emulator when OpenCode runs on the host machine.
  • If physical-device discovery fails, use opencode --hostname 0.0.0.0 and connect to the host LAN IP manually.