Ask a forum which one to install and ten replies will name eight different programs, none of them wrong. The disagreement exists because the question left out the operating system, whether the whole machine needs to go through the proxy, and how much patience there is for a project that has not shipped in six months. Fill those three in and there is barely a choice left to make.
The core and the client are two separate layers
The process that does the actual work is called mihomo, previously known as Clash.Meta. It reads the config, matches rules and opens connections to nodes, and it has no interface of its own. The thing you double-click — Clash Verge Rev, FlClash, ClashX Meta — is a shell wrapped around it: it draws the UI, keeps track of subscription files, and starts the core when it needs to be running.
One useful consequence follows from that split: changing clients is not changing cores. Subscription URLs and most of the config move across untouched, and nodes that worked before keep working. Conversely, whether some newer protocol is supported is a question about the core version and has nothing to do with the shell, while whether you can tell at a glance which rule a request matched is entirely a question about the shell.
SponsoredWhere does the subscription link come from?Our partner provider gives you 1 GB of high-speed Hong Kong data at signup — import it in one click.Get high-speed nodesCut the list in half by platform first
- Windows desktop: the widest choice of shells, and the platform nearly every tutorial online was written against.
- macOS: Intel and Apple Silicon are two separate packages, usually sitting side by side on the release page, told apart only by a short fragment of the filename.
- Linux: noticeably fewer graphical options. A desktop machine still has a choice; a server or anything without a desktop installed normally runs the bare core plus a web dashboard.
- Android: native graphical clients exist. FlClash is one of the more active ones, and it takes over traffic through the system VPN interface.
- iOS and iPadOS: Clash clients cannot run here at all. The App Store only carries third-party apps that speak the same protocols, several of which are simply absent from some regional storefronts, so an out-of-region account often becomes part of the process. This is a platform restriction and there is no way around it.
- Routers: OpenWrt has implementations, and running it at that layer means no device on the network needs configuring individually. But diagnosis happens over SSH, and a bad flash takes the network down with it. Not a place to start.
Once the platform cut is done, you rarely have more than three candidates. The only places where the choice genuinely needs thought are Windows and Linux desktop; everywhere else the number of actively maintained options is already in single digits.
Settle the rest with these criteria
- Whether you need TUN. If you do, expect to install a background service or grant one elevated-privilege prompt, and check the client actually exposes those controls. If you do not, and the system proxy is enough, the shells barely differ on this point.
- Whether you juggle more than one subscription. Some shells activate one profile at a time, so switching providers is a manual step. Others hold several at once, or merge them. If you have more than one, this criterion decides how smooth daily use feels.
- Interface language. Do not wave this one off. Rules and policy groups are abstract enough on their own; add unfamiliar vocabulary and every troubleshooting session costs twice as much.
- Whether the project is alive. Check the release page for how long ago the last version shipped, and the issue tracker for whether anyone replies. A stalled shell pinned to a stalled core is the source of most later grief.
- Whether you can read the log when something breaks. If the log view is buried or missing, diagnosis turns into guesswork.
Of those five, the last two carry the most weight. A thin feature list is survivable. An ugly interface is survivable. Not being able to find out why something broke, in a project nobody is maintaining, is not.
Why Clash for Windows is still everywhere
Because almost every tutorial written in 2021 and 2022 was built around it, and search engines still put those pages near the top. The repository is archived, though. No new versions are coming, and the bundled core stopped where it stopped, so protocols introduced later are not recognised and security fixes ended with it. Most people still running it did not pick it; nobody told them to move. The migration steps are covered separately.
If you would rather not compare, take this
- Windows and Linux desktop: Clash Verge Rev. It covers all three desktop platforms, ships often, keeps TUN and the log view somewhere you can find them, and — the part that matters more than any feature list — when something breaks, somebody has already written up the same problem.
- macOS: the same Verge Rev is fine. If you prefer something lightweight that lives in the menu bar, look at ClashX Meta and that family, but glance at the date on the latest release before you commit.
- Android: FlClash.
- Servers, soft routers, anything with no desktop: bare mihomo plus a web dashboard. Do not install a whole desktop environment just to get a window.