Top pick
Clash Plus: a straightforward choice for everyday connections
A good fit if you haven't settled on a configuration workflow. Its main advantage is broad platform coverage: there are options for desktop and mobile, without needing to research multiple client forks first. For your first setup, use a subscription provided for the client by your service provider. Confirm that it imports correctly, proxy groups are available, and system permissions are granted before adjusting routing rules.
Cross-platform availability doesn't mean a configuration file will work everywhere without changes. When moving from desktop to iOS in particular, check support for your protocols, rules, and extension fields. If you need fine-grained control over local DNS, scripts, and override chains, verify the target platform's capabilities before standardizing on one client across all devices.
View Clash Plus platform options →
Clash Verge Rev: desktop overrides and troubleshooting
Clash Verge Rev uses the Mihomo core, with an interface and local configuration workflow suited to long-term desktop use. Subscriptions provide the baseline configuration; Merge overrides and extension scripts handle local changes. This layered approach is easier to maintain when you need consistent DNS behavior, custom domain rules, or local changes that won't be overwritten by subscription updates.
The trade-off is that you'll need to understand how the final configuration is generated. The original subscription, override files, and runtime configuration are separate; after adding fields, check the merged result and logs. TUN, system proxy, and service mode also need to be verified separately. If you're only importing a subscription for the first time, there's no need to enable every advanced option upfront.
View override and TUN setup →
FlClash: a consistent workflow on desktop and Android
FlClash is also based on Mihomo and is available for Windows, macOS, Linux, and Android. If your main devices are a computer and an Android phone, similar configuration and proxy group controls can make switching between them easier. It suits everyday workflows built around subscriptions, with occasional connection checks and policy changes.
Using the same core doesn't mean you can copy an entire app data directory between devices. Desktop paths, mobile VPN permissions, background limits, and TUN settings vary by platform. When migrating, start by importing a subscription or portable YAML, then restore app settings one by one. Don't copy desktop listener addresses or port exposure settings straight to a phone.
View Android download options →
Clash Nyanpasu: desktop controls and core selection
Nyanpasu suits users interested in desktop configuration management and interface customization. This site's download center offers a Windows download. Before choosing it, check the interface features and runtime core separately: whether a configuration field works depends on the active core and its supported features, not simply on whether the setting appears in the client.
If you frequently compare cores or manage multiple configurations, establish a baseline with a known-good subscription before changing the core or local settings. Changing the client, core, and DNS setup all at once makes it harder to pinpoint problems. If you just want to import a subscription and get started, consider an option with a more direct setup process.
View Windows download options →
No longer maintained
Clash for Windows: best treated as a migration source
CFW has left behind a large collection of tutorials and established Parsers workflows, but it's no longer maintained and isn't a good default for a new setup. The fact that an old client launches doesn't mean it can handle newer protocols, configuration fields, or system changes. Installations with a third-party-modified core may also behave differently from the original release, so check what's actually running before comparing.
When migrating to Verge Rev, first preserve your subscription URL, proxy group selections, ports, and Parsers logic. Then rewrite local changes using the override format supported by the target client. Parsers code can't simply be renamed to Merge YAML. Check the runtime configuration carefully, especially the order in which rules are inserted and how arrays are handled.
View the recommended order for migrating old configurations →
Clash Meta for Android: per-app routing and background settings
CMFA is an Android client with rules and configuration features from the Meta/Mihomo ecosystem. It's a good fit if you need to control which apps route through the proxy. Before connecting, Android will ask for VpnService permission. Granting it allows the app to create a local VPN interface; it doesn't confirm that the subscription is valid or that the rules are matching as expected.
Common mobile issues include Android stopping the app when the screen is off, conflicts with another VPN app, and differences between the per-app list and the intended rules. Check background operation settings first, then review the logs. Don't apply desktop service installation instructions to Android. Per-app selection and domain rules are separate layers of control.
Compare CMFA with other Android clients →
Surfboard: check the configuration format first
Surfboard offers a different configuration approach on Android; it's not just Clash with a different interface. It uses its own configuration format and is designed for workflows compatible with Surge-style configurations. Check its documentation for specific feature support. It's worth considering if you already have a compatible subscription and know how this style of rules is organized.
If you only have Clash YAML, don't simply rename the file extension and try to import it. Protocol support, proxy group syntax, rule formats, and DNS settings may differ, and conversion tools can't guarantee that all behavior will be preserved. Ask your service provider for a compatible configuration first. If you need to convert one, check rule order and the final default policy carefully.
View Surfboard download options →
No longer maintained
ClashX Meta: transitioning from an older macOS setup
ClashX Meta offered a menu bar-focused workflow on macOS and can help with understanding existing Meta configurations. But an archived app doesn't gain current Mihomo features just because its name includes Meta. Newer system environments, protocols, and configuration fields may fall outside what archived builds support.
For a new installation, compare Clash Plus, Verge Rev, and FlClash first. When migrating an old configuration, preserve the subscription source and local rules, then check how the target client processes them. Don't assume system proxy ports, startup items, or permissions will transfer automatically, and don't let two clients change the system proxy at the same time.
View macOS client options →