Client selection guide · Platforms, cores, and config compatibility

Clash client comparison
and picks by use case

Start with your device, then check your subscription format. A similar interface doesn’t mean the same core, and importing a link doesn’t guarantee every setting will work.

Device requirements

Your operating system and processor architecture determine which installers are available.

Configuration requirements

The core and protocols determine compatibility.

Usage requirements

Traffic routing mode and permissions determine which apps are covered.

For a first install, start with Clash Plus

These recommendations help narrow your options; they are not a speed ranking. A client mainly affects configuration management, traffic routing, and ease of use. Actual connection performance also depends on the server, protocol, and network route.

Top pick: Clash Plus

A starting point for beginners and multi-device users

On Windows, macOS, Android, or iOS, start with Clash Plus to find the installer for your platform. First get comfortable importing a config, choosing a policy, and confirming that your apps are routed through the proxy. Then decide whether you need advanced overrides, rule editing, or core management. Official site: clashplus.io. Check the documentation for your platform for supported protocols and feature differences.

Download Clash

Choose another client when you have a specific need

For frequent mihomo config changes on desktop, consider Clash Verge Rev. For a similar interface on desktop and Android, consider FlClash. Linux users should compare both. If you already have a Surfboard-format config, first check whether you really need to migrate. Clash for Windows and ClashX Meta are listed for reference only, not as default choices for new users.

Importing a subscription and connecting after installation

Compare all eight clients

Platforms listed here reflect this site’s download links, not every historical build from each project. Ease of use refers to the learning curve for configuration and permissions, not software quality. Scroll horizontally to view the table on narrow screens.

Eight clients compared by platform, core, maintenance, learning curve, features, and audience
Client Platforms available here Core and configuration format Maintenance status Learning curve Key features and best for
Clash Plus Windows、macOS、Android、iOS Check each platform’s documentation for core and protocol support Actively maintained Low; start by importing a config and choosing a policy Recommended starting point for first-time and multi-device users
Clash Verge Rev Windows、macOS、Linux mihomo; Clash YAML Actively maintained Basic use is straightforward; overrides and TUN require extra knowledge Desktop config management and overrides; for users who regularly adjust rules
FlClash Windows、macOS、Linux、Android mihomo; Clash YAML Actively maintained Low; permissions vary by operating system Cross-platform interface; for users on both desktop and Android
Clash Nyanpasu Windows Includes core management; capabilities vary with the selected core Actively maintained Moderate; distinguish interface settings from core settings Core selection and config management; for desktop users willing to troubleshoot
Clash for Windows Windows Legacy Clash / Clash Premium ecosystem; varies by build No longer maintained Many legacy guides are available, but compatibility issues with newer configs can be harder to troubleshoot For reference when migrating an existing legacy setup
Clash Meta for Android Android Meta / mihomo ecosystem; capabilities vary by core build Check the project’s maintenance announcements before installing Moderate; requires familiarity with VPN permissions and config files Android config management; for users familiar with Meta configs
Surfboard Android Its own implementation and config format; not a Clash core Check the project’s maintenance announcements before installing Easy with a compatible config; cross-format migration is more involved For users with an existing Surfboard-compatible config
ClashX Meta macOS Meta ecosystem; check capabilities for the specific legacy build No longer maintained Basic use is straightforward; check compatibility with newer protocols Menu bar controls; useful as a reference when migrating an older Mac setup

Client reviews: configuration limits and trade-offs

First check whether a client meets your needs, then compare interface preferences. If the same config behaves differently across clients, check core-specific fields, client overrides, and system permissions rather than repeatedly switching nodes.

Clash Plus: get your everyday connection working first

Clash Plus is this site’s top pick for beginners, with download links for Windows, macOS, Android, and iOS. The idea is to start with the everyday workflow: import a subscription, select a config, choose a policy, and confirm that your apps are using the proxy. If you don’t need to change DNS settings or maintain complex rules yet, this path helps you get started without having to learn several advanced settings at once.

Availability on multiple platforms doesn’t mean every feature is identical, especially for system-wide traffic routing, background operation, and permissions. Don’t assume a client supports every mihomo extension just because its name includes Clash. If your subscription uses a specific protocol, scripts, or advanced DNS settings, check the documentation for your platform first. On iOS, follow the download link to the App Store; on other systems, choose the installer for your processor architecture.

View Clash Plus downloads by platform

Clash Verge Rev: desktop rules and override management

Clash Verge Rev suits users who want clear, accessible config management on desktop. Its mihomo core handles connections, rules, and DNS, while the graphical interface manages config selection, system proxy settings, and service-related options. You don’t need to know all of YAML to import a config, but subscription merging, rule overrides, and TUN routing require you to understand how the final config takes effect.

Distinguish the original subscription from the runtime config generated by the client. Direct edits to a locally downloaded subscription may be overwritten when it updates; use the client’s override features for rules you need to keep. Service permissions and routing behavior differ across Windows, macOS, and Linux. Guides for other operating systems can offer general ideas, but don’t copy their toggle names and permission steps exactly.

View desktop download options

FlClash: a similar interface on desktop and Android

FlClash is a good fit for users who switch between a desktop computer and Android and want to minimize interface changes. It uses the mihomo core, but compatibility still depends on specific protocols and config fields—not just whether a subscription URL can be saved. Similar config screens and workflows can make it easier to build consistent habits, but subscriptions, policies, and rules do not automatically sync across devices.

Before choosing it, make sure an installer is available for your device’s architecture. Android uses system VPN permissions to route traffic, while desktop versions may use the system proxy or TUN. The connect button may look the same, but the traffic each mode covers can differ. If a config imports successfully but an app still bypasses the proxy, check the routing mode and app exclusions before assuming a compatibility issue.

View Android client downloads

Clash Nyanpasu: a desktop option with core selection

Clash Nyanpasu offers desktop config and core management, with a Windows download available here. It suits users who want to inspect runtime details, understand core selection, and fine-tune their desktop setup. Core management adds flexibility, but also means you need to know which core is currently running. Changing the interface theme and changing the core are separate operations.

When comparing features, track client settings separately from core capabilities. Whether a protocol or rule field works depends on the selected core and its build; documentation for another core is no guarantee that it works in your setup. If config parsing fails, note the client name, selected core, field that triggered the error, and traffic routing mode. That gives you a clearer starting point than simply reporting that you can’t connect.

View Windows client options

Clash for Windows: legacy setups and migration reference

No longer maintained

Clash for Windows, often shortened to CFW, still appears in screenshots in many older guides. Historical builds used the Clash or Clash Premium ecosystem. Sharing the Clash name doesn’t mean they support newer Meta / mihomo protocols and config fields. For a first install, choosing a client that’s still maintained is usually easier than searching old guides for matching buttons.

If you have a working legacy setup, use it as a reference before migrating. Note the subscription source, selected proxy groups, local ports, and custom rules. When moving to a new client, re-import the original subscription rather than copying the entire old data directory. Start the new client with just one traffic routing mode enabled. This avoids two clients changing system proxy settings at the same time and leaving both unable to connect properly.

View archived downloads and alternatives

Clash Meta for Android: a mobile client for config-file users

Clash Meta for Android, often shortened to CMFA, is an Android client in the Meta ecosystem. It suits users who already know Clash YAML and want to organize policies and rules in config files. Meta is the established name used in the ecosystem; mihomo is the name of the related core as it has continued to develop. A package labeled Meta doesn’t tell you which core build it includes, so check runtime information for supported features.

On Android, account for VPN permissions, background restrictions, and conflicts with other VPN apps. Importing a config is only one step; routing traffic also requires system permission and a running service. Check the project’s current maintenance announcements before installing rather than treating recommendations in older guides as a promise of ongoing support. For an easier starting point, compare Clash Plus and FlClash.

Compare Android download options

Surfboard: check the config format before switching

Surfboard appears alongside other Android proxy tools on the download page, but it isn’t another look for a Clash interface and doesn’t use a Clash core. It has its own config syntax and feature set. If you already have a Surfboard-compatible config and know how it organizes policies and rules, you can assess it within that ecosystem. If you only have Clash YAML, don’t assume it can be imported directly.

Even when two formats both include proxies, policy groups, and rules, similar field names don’t guarantee identical behavior. Conversion may require reorganizing protocol parameters, DNS, rule sets, and app handling. Before downloading and repeatedly trying subscription URLs, ask your configuration provider for a compatible format and check which protocols Surfboard supports. Confirm the project’s maintenance status before installing, too.

View Surfboard and other Android clients

ClashX Meta: moving on from the old Mac menu bar workflow

No longer maintained

ClashX Meta is a macOS menu bar client using a Meta-family core. It’s useful for understanding a legacy setup, but isn’t a first choice for a new installation. A simple menu bar interface doesn’t mean its config support matches current mihomo builds; check protocol, DNS, and rule support for the specific historical build. The Meta name alone doesn’t erase differences between cores.

Before switching to Clash Plus, Clash Verge Rev, or FlClash, note your config source and local proxy port, then quit the old client. Choose the right installer for Apple Silicon or Intel, and check system requirements on the download page. After migrating, test your browser and other apps separately. If the old app left system proxy settings behind, restore them before letting the new client take over; otherwise, you may mistake leftover settings for a problem with the new app.

View macOS alternatives

Narrow down your options by use case

You don’t need to choose a client for every possible future need right away. Get it working reliably on your current devices with your current subscription, then add advanced features as needed. This makes it easier to see the effect of each change.

Four checks before installing

The download page lists platforms and installers. Use these checks to make sure your migration goes smoothly.

  1. Check your operating system and architecture. Confirm whether your device runs Windows, macOS, Android, iOS, or Linux, and check installer requirements such as x64, ARM64, Apple Silicon, or Intel. Support for a platform doesn’t guarantee compatibility with every OS version.
  2. Check your subscription format and protocols. Distinguish full Clash YAML configs, collections of node links, and Surfboard-compatible configs. Being able to open a subscription URL only confirms that the URL is reachable; config parsing and protocol connectivity need to be verified separately.
  3. Record your old setup and avoid running two clients at once. Keep the original subscription source, custom rules, and local port settings. Quit the old client while testing the new one. Start with a single traffic routing mode, then configure startup behavior, background services, and TUN once it works.
  4. Test individual apps, not just the connection toggle. Check your browser first, then test command-line tools or other target apps. Apps that use system proxy settings may behave differently from apps that need a virtual network interface. Troubleshoot by checking whether traffic reaches the client.
Can I move my subscription and custom rules directly to another client?

Not always. You can usually re-import an original subscription if its format and protocols are supported, but client-specific overrides, scripts, local file paths, and system settings may not carry over. Import the original config and verify the connection first, then restore custom settings one at a time. Don’t overwrite the entire data directory.

Why do two clients behave differently if both use mihomo?

Besides differences between core builds, clients may merge different overrides, use different DNS settings, or route traffic in different ways. Compare the runtime configs and system permissions first, then check the logs. Seeing the same node name in both interfaces doesn’t prove they’re using the same connection settings.

Where do I start after choosing a client?

Go to the download page, choose your operating system, then select an installer for your device’s architecture. Clash Plus is a good first choice for most users; Linux users can compare Clash Verge Rev and FlClash. After installing, follow the setup guide to import your subscription and verify app traffic.