README.md
July 7, 2026 · View on GitHub
Clash Meta (Mihomo) client for Android — phone & Android TV
Redesigned Home · cleaner subscriptions & nodes · routing tools · safe defaults
📖 Wiki · Telegram · Releases · Issues · Roadmap · License
ClashFest is an Android client in the Clash Meta / Mihomo family — a redesigned Home experience, cleaner subscription/node flows, routing-focused tools, and practical safety defaults for everyday use.
💬 Questions, bugs, feature requests → Telegram (EN / RU) or GitHub issues.
Highlights
| Area | What you get |
|---|---|
| Home | Active node card, compact subscription actions, circular tab swipe, import from URL / QR / clipboard |
| Widget | Home-screen speed widget — live ↑/↓ rate, tap to connect/disconnect (responsive: 1 cell = on/off, wider = live speed) |
| Modes | Rule / Global quick switch from Home |
| Profiles | Dedicated Profiles tab manager with collapsible proxy groups + per-profile read-only config viewer (YAML highlighting, copy / share) |
| Proxy chain | Chain two proxies per profile (first hop → exit) with explicit save vs use-now and optional YAML preview |
| Rules & routing | Dedicated Routing hub, rule snippets, effective rules, app routing (per‑app VPN policy) |
| DNS & network | Per-profile DNS / hosts editor, Block IPv6 (AAAA) toggle, VPN options, security-oriented toggles |
| Features | Safe “every‑day” toggles (unified delay, geodata mode, TCP concurrent) + entry to Geo Data Source |
| Geo Data Source | Presets for geox-url mirrors (same upstream data, different CDN paths), custom URLs, on-device geo DB import |
| Subscriptions | HTTP(S) / content: profiles; mierus:// shares parsed via the same pipeline as other URL imports |
| Updates | In-app manual update check, merged About & updates, Home indicator when an update is available |
| Quick start | Quick Settings tile flow with VPN permission handling and one-tap startup |
| Android TV | D-pad-friendly layout with focus navigation and a leanback banner — the same app on the big screen |
| Companion / remote | Pair a device over LAN via QR and drive ClashFest remotely — the external controller doubles as a TV remote |
| Connections | Live connections view with resilient snapshot decoding and lower polling load |
| App | Dark mode, pure-black (OLED), optional UI language (system / EN / RU / ZH), notification & recents options |
| Look | Lumen design language — obsidian surfaces, single-accent glow, Manrope + Space Grotesk type; sleeping-sloth branding |
Screenshots
![]() Home — connected — connect orb, mode, active node, live speed |
![]() Home — idle — disconnected state, one-tap connect |
![]() Nodes — grouped picker with latency, search & protocol chips |
![]() Profiles — subscriptions, proxy groups, per-profile tools |
![]() Rules — intent-style add / edit, DIRECT · REJECT · route to group |
![]() Routing — subscription + user rules in effective order |
![]() Import — add a subscription / profile from URL, QR or clipboard |
![]() Settings — about & updates, appearance, language, network |
Roadmap
What we're building next, what's planned, and what's out of scope lives in ROADMAP.md — including community feature requests and why some are or aren't a fit. Have an idea? Open an issue.
Current focus
- Stability and regression-free releases on top of the redesigned Home
- Routing and profile management polish without breaking upstream compatibility
- Performance and battery optimizations in high-refresh screens
- Localization quality (EN / RU / ZH first, others incremental)
- Post-release cleanup of medium-risk technical debt
Repository layout
| Module | Role |
|---|---|
app/ | Activities, navigation, packaging |
common/ | Shared helpers (imports, naming, ping helpers, …) |
core/ | JNI bridge, native Mihomo integration |
design/ | UI, themes, layouts, preference screens |
service/ | VPN service, profiles, rule merge / Geo presets |
Build
Requirements
- Android Studio (or compatible IDE)
- Android SDK + NDK as required by the project
- JDK 21 (required — the native
:hideapistep fails silently on older JDKs) - Gradle wrapper (included)
Debug (default alpha flavor)
# Linux / macOS
./gradlew assembleAlphaDebug
# Windows
.\gradlew.bat assembleAlphaDebug
Branding
- App icon & README logo: the sleeping-sloth mark — part of the same brand family as
SlothClash. Source art:
design/ClashFest.png(with wordmark) ·design/ClashFest_notxt.png(mark only). - Screenshots & notes live in
docs/.
License
Licensed under the GNU General Public License v3.0. See LICENSE and NOTICE.
Disclaimer — ClashFest is provided as-is, without warranty. Use it responsibly and in compliance with local law, provider terms, and upstream licenses.
Upstream & related projects
ClashFest builds on the open Clash / Meta stack. If you use or ship derivatives, keep copyright and license notices intact. If ClashFest is useful for you, consider giving the project a star ⭐
| Project | What it is | Link |
|---|---|---|
| Clash Meta for Android | Upstream Android client this tree forked from | MetaCubeX/ClashMetaForAndroid |
| mihomo | Clash.Meta core (Go) used under the hood | MetaCubeX/mihomo |
| Meta rules dat | Community geo / ruleset data releases (our Geo Data Source presets mirror these) | MetaCubeX/meta-rules-dat |
| Mieru | UDP port hopping VPN protocol; mierus:// subscription links are supported as imports | enfein/mieru |
| SlothClash (Desktop) | Companion desktop client in the same ecosystem (Wails · Go · React) | Nemu-x/SlothClash |
| Documentation | Mihomo / Meta docs (rules, parsers, …) | wiki.metacubex.one |







