Clash Meta for Android: rule-based tunnel GUI
Clash Meta for Android earns its keep once you already maintain a Clash-format proxy config and just need a phone-native way to run it — it's a control surface for a kernel, not a beginner-friendly VPN app. Support comes from the same people building the kernel, so fixes track upstream fast, but there's no polished onboarding: expect to read the README, not tap through a wizard.
What is Clash Meta for Android?
Clash Meta for Android is the Kotlin-based Android application that wraps the Clash.Meta proxy kernel in a graphical interface, so its rule-based tunneling engine can run on a phone instead of a server or desktop. It tracks the kernel's android-real branch, a merge of the Alpha and android-open branches, and ships under the GPL-3.0 license.
Key features of Clash Meta for Android
- ✓GUI front-end for the Clash.Meta kernel, running the same rule-based proxy engine used across the wider Clash.Meta project.
- ✓Profile import via custom URL schemes — clash://install-config?url=... or clashmeta://install-config?url=... — so a subscription link can load straight into the app.
- ✓External control through Android intents sent to ExternalControlActivity, to toggle, start, or stop the Clash service without opening the UI.
- ✓Runs on Android 5.0+ (7.0+ recommended).
- ✓Builds for armeabi-v7a, arm64-v8a, x86, and x86_64 cover both old and current device hardware.
- ✓Kernel updates land through an automated 'Update Dependencies' workflow that opens a PR when the upstream Clash.Meta kernel changes.
- ✓Distributed through F-Droid as an open build, or compile your own from source with a custom application ID and signing key.
How to install Clash Meta for Android
The README documents two install paths. The easiest is F-Droid — the repo links directly to the com.github.metacubex.clash.meta package listing there. The other is building it yourself: run git submodule update --init --recursive, install OpenJDK 11, the Android SDK, CMake, and Golang, create a local.properties file pointing at your SDK (optionally setting a custom application ID), add a signing.properties file with your keystore details, then run ./gradlew app:assembleAlphaRelease. No Google Play listing is documented.
Strengths
- ✓Kernel updates from Clash.Meta reach the app through an automated dependency-update PR rather than a manual re-port.
- ✓Profile installs via the clash:// / clashmeta:// URL scheme mean a subscription link can hand off directly into the app.
- ✓ExternalControlActivity intents let automation tools start, stop, or toggle the tunnel without touching the UI.
- ✓Covers four architectures (armeabi-v7a, arm64-v8a, x86, x86_64) down to Android 5.0, so older devices aren't locked out.
- ✓F-Droid distribution means no Play Store account is needed to install or update it.
Limitations and known constraints
- △Building from source needs four separate toolchains — OpenJDK 11, Android SDK, CMake, and Golang — plus a submodule init step; it's not a one-command build.
- △No Google Play listing is documented, so anyone off F-Droid has to sideload the APK or build it themselves.
- △Signing a release build means managing your own keystore.properties/signing.properties file — the README gives no shortcut.
- △GPL-3.0 licensing means any distributed fork or modification has to stay GPL-3.0, which rules out folding it into a closed-source commercial app.
- △Kernel bumps flow in through an automated dependency-update PR that can land with compile errors needing a manual fix before merge.
Alternatives to Clash Meta for Android
Frequently asked questions
Clash Meta for Android is not listed on Google Play in the project's own documentation — the README points to F-Droid as its distribution channel instead, and users who want a store install can get it from there or build it from source.
Clash Meta for Android does not require root access. Nothing in the build, install, or automation documentation calls for rooting the device — the app installs and runs like a standard Android package.
Clash Meta for Android is the Android application — the GUI you install on your phone. Clash.Meta is the separate kernel repository that does the actual proxying; Clash Meta for Android bundles a build of that kernel from its android-real branch, a merge of the Alpha and android-open branches.
Clash Meta for Android accepts profile imports through a custom URL scheme: open a link shaped like clash://install-config?url=<encoded URI> or clashmeta://install-config?url=<encoded URI>, and the app installs the referenced config directly.
Clash Meta for Android can be built from source. The process needs OpenJDK 11, the Android SDK, CMake, and Golang installed, plus running git submodule update --init --recursive and creating a local.properties file that points at your SDK before running ./gradlew app:assembleAlphaRelease.
Clash Meta for Android supports Android 5.0 and above, with Android 7.0 or newer recommended for the best experience. Builds are available for armeabi-v7a, arm64-v8a, x86, and x86_64 device architectures.
The problem it solves
Clash.Meta's proxy engine is a Go binary with no interface of its own — someone still has to wrap it in an app that requests the right Android permissions, runs it as a foreground service, and gives it a way to load profiles. Clash Meta for Android exists to be that wrapper, so a Clash config can run on a phone without root or a terminal.
Best use cases
- •Routing an Android phone through a Clash rule set you already maintain, instead of a generic one-toggle VPN app.
- •Automating tunnel state — start, stop, or toggle — from another app or shortcut via the ExternalControlActivity intents.
- •Loading a subscription link straight from a browser or messaging app using the clash:// / clashmeta:// URL scheme.
- •Producing a custom-branded build with your own application ID and signing key for internal or team distribution.
Who should try it — and who should skip
Try it if you already write or maintain Clash-format rule sets and want them running natively on a phone, or if you need to script tunnel state from another app through the documented intents. Skip it if you want a one-tap consumer VPN with support staff behind it — this is a kernel wrapper maintained by kernel developers, and the README assumes you're comfortable editing config files and, if you build from source, managing your own signing keys.
Is ClashMetaForAndroid worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of ClashMetaForAndroid.
