Android · sideload · MIT

Your AI coding agents, in your pocket.

OpenHands Agent Canvas, packaged as a native Android app. Sideload the APK once and drive real coding agents from your phone. No Play Store, no telemetry.

Get it on Obtainium

Get automatic update notifications, no Play Store needed.

  • v1.32.5
  • Android 6.0+
  • INTERNET only
  • No account
Fix the failing auth test and open a PR.
On it. Reading the test suite first.
read_filetests/test_auth.py
run_testspytest -k auth
edit_filesrc/auth/token.py
Found it. The token expiry check used a stale clock. Fixed and pushed.
Pushed

01 · Overview

A thin shell around a web app. Nothing hidden.

OpenHands Agent Canvas is the web interface for OpenHands, an open-source AI software engineer. This project wraps that interface in a Capacitor shell so it installs and opens like any other Android app, and carries its own runtime so the agent answers on the device.

In short: this is the OpenHands Android app. It is a community-built mobile client for OpenHands — not an official release — and it lets you run OpenHands on your phone. It needs no account and no server: you pick a model, paste an API key from any LLM provider, and the agent answers on the device. If you were looking for an OpenHands APK to sideload, this is it.

A real app, not a shortcut

It installs from an APK, appears in your launcher, and keeps its own window. No bookmark, no browser tab.

Universal build

One APK for every ABI, so it installs on any phone you have. Nothing to pick at download time.

Minimal permissions

INTERNET is the only one it asks for. No storage, no camera, no contacts, no location. Telemetry is compiled out, so the app only talks to the LLM provider you configure.

Reproducible

The build runs in CI from the tagged source. You can rebuild it and compare the hash yourself.

Runs on old hardware

Targets Android 6.0 and up. A cheap handset from a few years back is enough to use it.

Honest about its limits

The runtime is real but small: one agent turn at a time, on the phone, against the model you configure. There is no cloud sandbox behind it.

02 · Capabilities

Everything the web UI does, on a phone.

The app is the same interface you already use on a desktop, laid out for a small screen and a thumb.

Agent conversations

Chat with the agent, watch it plan, and steer it while a task is still running.

Live code diffs

See every edit as it lands, file by file, with the added and removed lines marked.

Terminal output

Read command output and test results as they stream in, without leaving the app.

Session history

Reopen an earlier conversation and pick it up where you stopped.

Your own model

Point it at any LLM provider. The API key stays on your device.

Launches offline

The shell opens without a network connection. The agent itself still needs a reachable LLM provider.

03 · Screens

The real setup flow, start to finish.

These are actual captures of the app, not mockups. First launch walks you through picking an agent and a model, then hands you a working conversation. The first frame is the one step the standalone build skips.

Add a backend screen with fields for a friendly name, the agent server URL, a Local/Cloud type toggle, and an API key. Shown by the server-backed build only.
1 · Connect Where the server-backed build asks for your agent server URL. The standalone build skips straight to the agent picker.
Choose your agent screen listing OpenHands, Claude Code, Codex, Gemini CLI, Pi and OpenCode.
2 · Pick an agent OpenHands by default, or bring Claude Code, Codex, Gemini CLI, Pi or OpenCode.
Set up your LLM screen for choosing a model provider and model, with a pre-selected default.
3 · Choose a model Pick a provider and model. A sensible default is pre-selected for you.
Say hello screen with a first-message box and a list of ready-made workflow templates.
4 · Start working Send a first message, or open a proven workflow with its prompt and MCPs already set up.

A note on these images. They are real screen captures of the app's first-run wizard, taken frame by frame as each step loads. The captures come from the server-backed build, so the first frame shows the backend step; the standalone build skips it and opens on the agent picker. Any details shown are placeholders, not live.

04 · Install

Four steps, about a minute.

Download the APK

Grab app-release.apk from the latest release. It is about 6.0 MB.

Allow installs from this source

Android asks once. Enable it for whichever app is doing the install, usually your browser or file manager.

Install and open

Play Protect may show a prompt for a sideloaded app. If you have checked the hash, choose to install anyway.

Add your API key

Open the app, pick a model, paste your LLM provider API key, and start a conversation.

Updates install in place

Every build is signed with the same key, and the release is checked against it before publishing. Download a newer version and install it straight over the old one - no uninstall, no lost settings.

05 · Verify

Check the file before you trust it.

Compare the hash of the APK you downloaded with the value below. If they match, the file is byte for byte the one that was built and signed.

APK SHA-256

Printed by the build and listed on each release page — it changes with every build.

github.com/NETO-DEV66/Opanhand-mobile-/releases

Signer cert SHA-256

Fingerprint of the release signing certificate. The same for every release.

0B:05:77:B8:11:BD:3D:0E:6D:6E:F5:DA:39:07:D9:4B:91:C0:50:E6:DF:F9:7C:E1:36:0F:F5:31:40:A3:FF:47

sha256sum app-release.apk

On macOS the same command is available as shasum -a 256 app-release.apk.

06 · Requirements

What you need before you start.

Android version6.0 (API 23) or newer
Version1.32.5
Packagedev.openhandsmobile.com
ArchitectureUniversal, all ABIs
PermissionsINTERNET only
Download size5.7 MB
Installed sizeabout 12 MB
LicenseMIT

07 · FAQ

Common questions.

Is it safe to install?
You are installing a file from GitHub rather than the Play Store, so it is worth checking first. Compare the APK hash with the value in the Verify section, and read the source if you want. The app asks for one permission, INTERNET, and sends nothing anywhere except the LLM provider you configure.
Why does Play Protect warn?
Play Protect flags most apps it has not seen before, including ones that are perfectly fine. It means the file was not distributed through Google, not that it is malicious. You can continue past the prompt once you have verified the hash.
Is it official?
No. This is an independent wrapper built by Sameer (@NETO-DEV66). It is not affiliated with or endorsed by the OpenHands team, and it is not the official OpenHands app. The upstream project is separate and has its own releases.
Does it work offline?
The app opens and its interface loads without a connection. Anything involving an agent needs a reachable LLM provider, so plan on having a network path to it.
Do I need a Play Store account?
No account is needed at all. The app runs the agent on the device and talks straight to the LLM provider whose API key you paste in, so there is nothing to sign up for. You sideload the APK directly from GitHub. If you want update notifications without the Play Store, add the repo to Obtainium using the badge on this page.

08 · Support

Free forever. Tips optional.

There is no paid tier and nothing is locked. If this saved you some time and you feel like it, you can send a tip. There is no suggested amount.

UPI

mrsameer1906@okhdfcbank

Paste this into any UPI app. Tips are never expected, and the app stays free either way.

Other ways to help, completely free

  • Star the repo. It helps other people find the project.
  • Report an issue. A clear bug report is worth more than a tip.
  • Share it. Send it to someone who works away from a desk.
  • Send a pull request. Fixes and small improvements are welcome.