CLIENT SELECTION / CHOOSING A CLIENT

Clash Client Comparison
Platforms, cores, and configuration

Start with your device's operating system, then compare subscription formats, traffic routing, and local overrides. Similar-looking interfaces don't guarantee identical runtime configurations or system permissions.

Our recommendation Top pick: Clash Plus

For most users, start with Clash Plus; consider Verge Rev for desktop overrides

If you don't already have a complex configuration, start with Clash Plus. It covers Windows, macOS, Android, and iOS, so there's less need to find a different client for each device. Visit the official site at clashplus.io; download links are collected in this site's download center.

If you need a Linux desktop client, maintain Merge overrides long-term, or often troubleshoot through connections and logs, Clash Verge Rev is worth a closer look. FlClash is another option for multi-device setups. If you already use a specific configuration format, check compatibility first—there's no need to migrate just to standardize on one client name.

Browse clients and installation options by platform →

Compare eight Clash clients

The platform list shows where this site provides download links, not every platform build ever released by each project. Maintenance status is a general guide, and builds for all platforms may not be updated at the same time. Check project announcements and system requirements before installing.

Clash client platforms, cores, maintenance status, ease of use, features, and recommended users
Client Platforms with downloads on this site Core and configuration format Maintenance Ease of use Key features Best for
Clash Plus Windows、macOS、Android、iOS Part of the Clash ecosystem; check the app's documentation for core and protocol support on each platform Actively maintained Easy to get started: import a subscription One client option for desktop and mobile First-time users, everyday use, and multi-device setups
Clash Verge Rev Windows、macOS、Linux Mihomo, continuing the Clash Meta lineage Actively maintained Easy for basic use; overrides require YAML knowledge Merge overrides, extension scripts, TUN, connections, and logs Advanced desktop configuration, rule tuning, and DNS settings
FlClash Windows、macOS、Linux、Android Mihomo Actively maintained Easy to get started; advanced configuration requires familiarity with core fields Cross-platform interface, configuration management, and proxy group switching Users who use both desktop and Android
Clash Nyanpasu Windows Supports managing multiple cores; capabilities depend on the selected core Actively maintained Moderate; distinguish between app settings and core settings Desktop configuration management, core selection, and interface customization Users who value desktop controls and are willing to check configuration compatibility
Clash for Windows Windows Original Clash lineage; modified builds may behave differently No longer maintained Familiar to existing users; not recommended as a starting point for new users Reference for legacy configurations, Parsers, and older workflows Migrating from legacy setups and comparing configurations
Clash Meta for Android Android Clash Meta / Mihomo ecosystem Actively maintained Moderate; requires VPN permissions and background settings Per-app proxying, configuration imports, and mobile traffic routing Users who need granular control over Android app traffic
Surfboard Android Independent implementation with its own Surfboard configuration format Actively maintained Easy with a compatible configuration; cross-format migration is more involved Designed for workflows using Surge-compatible configurations Users with a compatible configuration who know the syntax
ClashX Meta macOS Clash Meta; an archived core is not the same as current Mihomo No longer maintained Easy for basic use; check compatibility with newer fields macOS menu bar controls and a reference for older Meta configurations Transitioning from an existing setup and migrating configurations

Client reviews: configuration features and limitations

These reviews don't rank clients by speed. Connection quality depends on the network, server, protocol, and rules—not just the client name.

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 →

Narrow down your options by use case

Start with one client that meets your needs, then test your existing subscription. Installing several clients usually won't fix the same DNS or server issue, and can leave conflicting proxy settings behind.

Migration checklist: before switching clients

A successful migration depends more on configuration behavior than on how similar the interfaces look. Keep the old setup as a fallback, but run only one client that takes over network traffic while testing.

  1. Save the source, not just a screenshot. Record the subscription URL, update method, local rules, proxy group names, and ports. Subscription URLs may contain access credentials; keep them in a trusted local location and never post them in public support requests.
  2. Identify the configuration format. First distinguish Clash YAML, client-specific extension fields, and Surfboard configurations. Support for original Clash features doesn't mean every Mihomo feature is available, and newer configurations aren't necessarily compatible with archived cores.
  3. Import first, then restore local changes. Verify that a basic subscription parses and connects correctly, then add overrides, DNS settings, rule sets, and scripts one at a time. Check the final runtime configuration at each step; valid YAML syntax doesn't guarantee the configuration behaves as intended.
  4. Set up traffic routing again. Quit the old client and make sure its system proxy, TUN interface, and startup items are no longer active. The new client may use different ports, so update any proxy addresses set manually in browsers or developer tools.
  5. Test each access path. Check regular web browsing, apps that should use the proxy, and sites that should connect directly. Then review rule matches and errors in the connection view and logs. A webpage loading proves only that one route works; it doesn't confirm that every rule, DNS setting, or IPv6 behavior is correct.

Once you've picked a client, visit the download center to check your OS and architecture. For first-time setup, read the quick start guide. For rules that need to work across subscriptions, or combinations involving TUN and Fake-IP, see advanced usage.