openclaw-termux: Running the OpenClaw AI Gateway on Android Without Root
Run OpenClaw AI Gateway on Android — standalone Flutter app with built-in terminal, web dashboard, and one-tap setup. Also available as a Termux CLI package.
At a glance
- What is it?
- openclaw-termux packages an Ubuntu proot environment, Node.js 22 and the OpenClaw AI gateway into a Flutter app for Android 10+ and a Termux CLI package. The one-tap setup is the selling point; the proot layer and the optional packages are where the rough edges live.
- Who is it for?
- Adopt openclaw-termux if you want a gateway on a phone or tablet without rooting it and you are willing to live inside a proot filesystem. Skip it if you need a server-grade host, since Android battery management and MediaProjection consent will interrupt long-running work.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Dart, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What openclaw-termux Actually Solves on Android
The OpenClaw AI gateway normally assumes a Linux host with Node.js and a writable filesystem. Android gives you none of that by default: no root, a read-only system partition, and a Bionic C library that many Node native modules do not target. openclaw-termux exists to close that gap. It sets up a full Ubuntu environment via proot, installs Node.js 22 and OpenClaw inside it, and wraps the whole thing in a Flutter UI so you never touch a shell unless you want to.
The audience is narrow and specific. It is for people who want an AI gateway running on a device they already own, usually a spare phone or tablet, without buying a VPS or rooting the hardware. The README lists Android 10+ as the floor and Flutter 3.44 for anyone building the app themselves. If your goal is a production gateway serving many users, this is the wrong shape of tool, and the sections below explain why.
How the proot Ubuntu Layer and Node.js 22 Fit Together
The mechanism is layered. proot provides a userspace chroot, which means the app can present an Ubuntu root filesystem to the gateway process without kernel-level privileges. Inside that filesystem, the setup downloads Node.js 22 and then installs OpenClaw. The Flutter app is not the gateway itself; it is a controller. It starts and stops the gateway process, reads its logs, and loads the web dashboard in an embedded WebView.
The dashboard is served on port 18789 according to the comparison table in the README, and the Termux CLI path points a browser at localhost:18789 for the same interface. Authentication is handled by a token captured during onboarding, which the app displays with a copy button and passes into the WebView.
There is a second integration surface worth understanding. The Flutter app connects to the gateway as a node over the WebSocket node protocol, exposing Android hardware to the AI through nine capabilities covering 21 commands. The README groups these as camera, canvas, flash, location, screen, sensor and haptic families, with permissions requested proactively when the node is enabled. That is the part that makes this more than a terminal wrapper: the gateway can call camera.snap or location.get on the phone itself. One entry in that table is honest about its own state, listing canvas.navigate, canvas.eval and canvas.snapshot as having no permission because the capability is not implemented.
Installing openclaw-termux: APK or npm
There are two installation paths and they are genuinely different products. The Flutter app path means downloading or building an APK. The Termux path means installing the CLI package globally and running the setup command.
For the Termux route, the README gives this command, and the package declares Node.js 22 as a minimum in its engines field:
npm install -g openclaw-termux
openclawx setup
openclawx startAfter setup completes, the gateway starts and the dashboard becomes reachable at localhost:18789 in a browser. The package installs two binaries, openclawx and openclawx-setup, both pointing at the same entry script, and it runs a postinstall step. Note the os field in package.json: it lists android and linux only, so this is not a package you install on macOS or Windows.
For the app route, the README points at the releases page for the latest APK. Once installed, the flow is tap Begin Setup, wait for the Ubuntu rootfs and Node.js download, then tap Start Gateway. The setup wizard shows package cards after setup completes, and the dashboard has a Packages card under Quick Actions for the optional Go, Homebrew and OpenSSH installs. What you should see at the end is a status indicator with health checks and a populated log viewer.
Node Device Capabilities: What the AI Can Reach
The node protocol is the most interesting design decision in the project and also the one with the most caveats. Enabling the node turns the phone into a sensor and actuator endpoint for the gateway. Camera, flash, location, sensor and haptic capabilities map to ordinary Android permissions. Screen recording is different: it requires MediaProjection consent, which on Android means a system dialog the user must accept, and that consent does not survive indefinitely in the way a manifest permission does.
The README does not document what happens when consent is revoked mid-session, nor does it describe how the gateway handles a capability call that arrives while the app is backgrounded. Those are the questions I would want answered before relying on the node features for anything automated. The canvas capability is explicitly marked not implemented, which is at least stated rather than implied.
The optional packages deserve a mention here because they inflate the footprint. Go is roughly 150 MB via apt install golang, Homebrew is around 500 MB through the official installer with a root workaround, and OpenSSH is about 10 MB. On a phone with limited storage, that Homebrew install is a real decision, not a checkbox.
Where openclaw-termux Breaks Down
The proot layer is the central constraint. proot is a userspace emulation of chroot, which means filesystem syscalls are intercepted and translated. Workloads that depend on specific kernel behaviour, on mounting, or on privileged operations will not behave the way they do on a normal Ubuntu box. The README does not claim otherwise, but it also does not enumerate which OpenClaw features are affected, so you find out by trying.
Android itself is the second failure mode. The app ships a foreground service to keep the gateway alive in the background with uptime tracking, and the settings screen includes battery optimization controls. That combination tells you the maintainers know the OS will kill the process otherwise. If you need a gateway that is reachable at all hours without user intervention, a phone is a poor host regardless of how well this app is built.
The third limitation is scope. This project targets Android and Linux only, per the package manifest. If you are on iOS, or you want the same gateway on a desktop, this is not the tool. And if you already have a Linux server, the proot environment here adds a translation layer you do not need.
Termux CLI Versus the Flutter App: Same Gateway, Different Trade-offs
The comparison table in the README makes the split clear. The CLI installs with npm, sets up with openclawx setup, starts with openclawx start, and gives you the Termux shell as your terminal plus a browser at localhost:18789 for the dashboard. The app downloads an Ubuntu rootfs and Node.js automatically, gives you a built-in terminal emulator with an extra keys toolbar and clickable URLs, and loads the dashboard in a WebView.
The CLI is lighter and composes with whatever else you run in Termux. The app is more self-contained and adds the node capabilities, the foreground service, the log viewer with search and the onboarding flow. If you only want the gateway and you are comfortable in a shell, the CLI avoids the APK entirely. If you want the phone's hardware exposed to the AI, or you want the setup progress notifications and the settings screen, the app is the path.
A fair alternative for people who do not need Android at all is running the upstream OpenClaw gateway directly on a Linux host with Node.js 22. That removes proot from the picture entirely and gives you a normal systemd service instead of a foreground service fighting battery optimization. The difference is not features; it is whether you need the gateway to live on the phone.
Maintenance, Releases and the MIT Licence
The repository is not archived, and the last push was on 2026-09-14, the same day as the v2026.9.14 release. Before that, v1.8.7 landed on 2026-04-05 and v1.8.6 on 2026-03-30. The version numbering changed between the April and September releases, from a 1.8.x scheme to a date-based 2026.9.14 scheme, which is worth knowing if you pin versions in a script.
The upgrade cost depends on which path you took. The npm package declares version 2026.9.14 and runs a postinstall script, so the CLI updates through the normal npm mechanism. The app updates through APK releases, and since setup downloads an Ubuntu rootfs and Node.js, a re-run of setup may re-download those components; the settings screen lists re-run setup as an option, which suggests the maintainers expect it to be needed.
The licence is MIT, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are included. That is the whole of what the repository states. Nothing here constitutes legal advice, and if you redistribute a modified build you should read the LICENSE file in the repository root yourself rather than relying on a summary.
Editorial conclusion
Adopt openclaw-termux if you want a gateway on a phone or tablet without rooting it and you are willing to live inside a proot filesystem. Skip it if you need a server-grade host, since Android battery management and MediaProjection consent will interrupt long-running work. Before installing, check the release page for the APK matching your Android version, confirm Node.js 22 is present if you take the Termux route, and decide whether the optional Go, Homebrew and OpenSSH packages are worth the disk they consume.
Frequently asked questions
Does openclaw-termux require root on Android?
No. The README states that it sets up a full Ubuntu environment via proot and provides a native Flutter UI to manage everything with no root required. The proot layer is what makes this possible, since it emulates chroot in userspace.
How do I install openclaw-termux on Termux?
The README gives npm install -g openclaw-termux, followed by openclawx setup and openclawx start. The package requires Node.js 22 or later and declares android and linux as its supported platforms.
What is the OpenClaw dashboard port on Android?
The comparison table in the README lists localhost:18789 as the dashboard address for the Termux CLI path. The Flutter app loads the same dashboard in an embedded WebView with an authentication token captured during onboarding.
Which Android version does the openclaw-termux APK need?
The README badge lists Android 10+. The app is built with Flutter 3.44, and the README points to the releases page for the latest APK.
Can the AI access my phone's camera and location through openclaw-termux?
Yes, when the node is enabled. The README lists camera, flash, location, screen, sensor and haptic capabilities exposed over the WebSocket node protocol, with permissions requested proactively. Screen recording additionally requires MediaProjection consent, and the canvas capability is listed as not implemented.
What optional packages can I install with openclaw-termux?
The README lists Go via apt install golang at roughly 150 MB, Homebrew through the official installer with a root workaround at roughly 500 MB, and OpenSSH via apt install openssh-server at roughly 10 MB. They appear in the setup wizard, the dashboard Packages card and the settings screen.
Community notes