Clients across five platforms are reviewed and scored one by one, like items on a shelf: version numbers and kernel details are disclosed as-is, conclusions are given straight, and matching guides and troubleshooting handbooks mean you can just pick one and install.
Six capability dimensions tested and scored individually; scores reflect only the currently listed versions
Instead of asking "which client is best," it helps to look at how each capability dimension actually performs. Below, the six dimensions worth caring about most in the Clash ecosystem are reviewed one by one across three groups — desktop, mobile, and kernel & rules. Each card is a "shelf page" for one dimension: star ratings and verdict tags are given directly, the write-up covers hands-on details, and version parameters sit in the monospace pill at the bottom of the card.
Desktop is the main battleground of the Clash ecosystem: after Clash for Windows was discontinued, Clash Verge Rev and FlClash took over as the go-to options, and rule debugging plus subscription management are what really determine day-to-day usability.
Testing Clash Verge Rev and Clash Plus as samples, common rule types like DOMAIN-SUFFIX, GEOIP, and RULE-SET all matched as expected, and the mihomo kernel's extended GEOSITE and logic rules (AND / OR / NOT) can be written straight into the config. Pushing the rule count past five thousand entries showed no perceptible jitter in matching latency; edited rules take effect on hot reload without restarting the client. When debugging routing, the connections panel shows the matched rule name for each connection in real time, making it very direct to track down traffic going through the wrong route.
Desktop clients generally support multiple subscriptions coexisting with one-tap switching. Clash Verge Rev's Merge and Script overrides let you append custom rules without touching the original subscription, and overrides stay in effect after the subscription updates — crucial for anyone maintaining their own rules long-term. Scheduled auto-updates, keeping the old config when an update fails, and displaying subscription traffic info are all standard. Points come off because override syntax differs between clients, so moving to a different client means manually rewriting the override portion — back it up before you switch.
Merge overrideScript overrideScheduled pull
Mobile has to clear two bars: staying stable in the background, and letting a new user connect in three steps. Android testing used Clash Meta for Android and FlClash as samples; iOS testing used Clash Plus from the App Store.
Mobile Stability & Background Persistence
8.8 / 10
Stays alive in backgroundPer-app proxyStrict iOS memory cap
On Android, VPN mode stayed connected all day in the background, and adding it to the battery-optimization whitelist mostly kept it from being killed; per-app proxy lets you route only selected apps through the proxy, so banking apps stay on a direct connection undisturbed, and the quick-settings tile toggle is handy too. On iOS, Clash Plus is distributed via the App Store, its Network Extension stays resident reliably, and it auto-reconnects when switching between Wi-Fi and cellular. Points come off for iOS's strict background memory cap — oversized subscriptions need trimming down on node count, or the system may reclaim the process.
VPN modeNetwork Extension
Onboarding & Interface
9.0 / 10
Quick to startEnglish interfaceFull dark mode support
Mainstream clients across all five platforms provide an English interface, and going from "copy the subscription link" to "turn on system proxy" takes three steps on average; FlClash's onboarding screen prompts you straight to import a subscription, so a newcomer can just follow along and connect. Information density on screen is well judged: the home screen has toggles and mode switching, the nodes page has latency testing, the connections page has live traffic — you can figure out most toggles without reading the docs. A few clients bury advanced settings a little deep, and finding the TUN mode toggle for the first time can take a moment; our tutorials here map it out step by step.
Connected in 3 stepsTUN mode
Underneath the interface, the kernel does the real work. Mainstream clients now uniformly bundle mihomo, and kernel performance plus DNS behavior directly determine two things: how fast it is, and how many pitfalls you'll hit.
mihomo Kernel Performance
9.3 / 10
Full protocol coverageActively maintainedLow resource usage
mihomo is the continuation kernel of the Clash Meta project, and every mainstream client today (Clash Verge Rev, FlClash, Clash Meta for Android, and others) bundles it. Protocol coverage spans Shadowsocks, VMess, VLESS, Trojan, Hysteria2, TUIC, and other mainstream options, so one subscription works across all five platforms. Idle memory use on desktop sits in the tens-of-MB range, and gigabit LAN forwarding showed no bottleneck in testing; once TUN mode takes over all traffic, games and UDP apps route correctly too. The kernel ships releases independently and clients catch up on their own schedule, so protocol support never lags behind the interface version.
Hysteria2TUICTUN
DNS & Leak Prevention
8.6 / 10
Fast fake-ip resolutionDoH / DoT supportSteep learning curve
The DNS section is the part of a Clash config most likely to trip you up, and it's also where real expertise shows. In testing, fake-ip mode showed near-zero overhead on the first resolution; combined with a proper split between nameserver and fallback, you can have domains inside mainland China resolve locally while everything else goes through encrypted DNS, with DoH and DoT both fillable directly. Turning on DNS hijacking means the kernel takes over every plaintext resolution request on the system, which combined with TUN mode largely closes off leak paths. Points come off for the steep learning curve: choosing between fake-ip and redir-host, and how to fill in hijacking parameters, are easy for newcomers to get wrong — our blog has a step-by-step breakdown you can follow.
fake-ipnameserverfallback
Download by Platform
One line per platform on what it's good for; the full client list and detailed scores are on the download page
Everything reviewed here is open source — code, release history, and issue discussions are all publicly verifiable
Project History & Ecosystem
Clash began as an open-source, Go-based rule-based proxy kernel; with clear YAML configuration and flexible rule-based routing, it grew into a client ecosystem spanning five platforms. After the original kernel was archived, the community continued development under the Clash Meta fork, later renamed mihomo, which is still shipping releases today — the protocol support and rule capabilities you see in each client now trace back almost entirely to this lineage.
How the Kernel and Clients Relate
Think of mihomo as the "engine," and clients like Clash Verge Rev, FlClash, and Clash Plus as different brands' "finished cars": the kernel handles protocol handshakes, rule matching, and traffic forwarding, while the client handles subscription management, UI interaction, and system integration. That's also why this site scores "kernel capability" and "client experience" separately — the same engine can sit under wildly different driving experiences.
Update Cycle & Scoring Principles
The mihomo kernel ships releases independently, and each client catches up on its own schedule, so every review card here notes the client and kernel version tested at the bottom — scores are valid for that version only, and are retested after major updates. All conclusions come from hands-on installs on real devices, sponsored rankings are not accepted, and version details are reported as-is with no padding; clients that stop being maintained get a clear "no longer maintained" label instead of quietly disappearing.
Kernel source is public — clone and review it yourself
git clone https://github.com/MetaCubeX/mihomo.git
mihomo is released under an open-source license, and release binaries correspond to matching source in the repository's Releases; the kernel packages on this site's download page match the upstream releases.
Tested on real devicesVersion numbers reported as-isDiscontinued clients clearly flagged
Selected FAQs
One-line answers first; full explanations live on the FAQ page and glossary
Clash for Windows was discontinued — can I still use it?It still runs but no longer gets updates; migrating to Clash Verge Rev or FlClash is recommended — see the migration steps in the FAQ.
How does mihomo relate to the Clash kernel?mihomo is the continuation kernel of the Clash Meta fork, compatible with original configs while extending protocols and rules — see the glossary for details.
Subscription imported but no connection — what to check first?First confirm the system proxy is turned on, then check whether node latency tests are timing out; a symptom-by-symptom walkthrough is in the troubleshooting handbook.
Does one subscription work across all five platforms?Yes — mainstream clients all bundle the mihomo kernel and share the same config format; see the first-time setup flow in the setup guide.
Latest Reviews & Tutorials
Deployment paths, migration plans, and config breakdowns, newest first
A step-by-step breakdown of the DNS section in a Clash config: how nameserver and fallback divide the work, the difference between fake-ip and redir-host modes, what DNS hijack parameters do, plus ready-to-use config snippets and verification steps.
Comparing two deployment paths on Linux: key install points for the Clash Verge Rev and FlClash desktop clients, versus a server-style setup running the mihomo kernel directly from the command line with a systemd service.
The general flow for installing a Clash client for the first time: download and install, import a subscription, choose a proxy mode, turn on the system proxy, and verify connectivity — five steps — plus the most common first-launch pitfalls on each platform and how to fix them.