CLIENT SELECTION / Platform and configuration compatibility

Clash Client Comparison and Selection

Start with your operating system, then check subscription format and required fields. The client interface, proxy core, and configuration file are separate layers. Similar names don't guarantee identical features.

The platforms covered here match the download options on this site. Archived clients are included to help identify legacy setups, not as first-choice installs.

START WITH THE PLATFORM

Recommendation: Start with Clash Plus

For a new setup or a mix of computers and phones, start by checking Clash Plus. This site links to downloads for Windows, macOS, Android, and iOS. It's a practical first choice for installing a client, importing a subscription, and switching proxy groups. Verify the configuration on one primary device before setting up others; troubleshooting one system at a time makes problems easier to isolate.

This doesn't mean every platform uses the same core or supports every field. If you already have a complex config.yaml, custom DNS, or transparent proxy requirements, check the release notes for your platform first. For a Linux GUI client, consider Clash Verge Rev. For a similar desktop and Android workflow, compare FlClash. To manage Clash configurations directly on Android, see Clash Meta for Android.

Compare platforms, cores, and maintenance status

Setup difficulty means importing an existing subscription and getting a basic connection working; it doesn't measure resource use or network performance. The platform column lists only installers covered by this site's download page, not every release from each project. Maintenance notes are qualitative; check project announcements and system requirements before installing.

On narrow screens, scroll horizontally to view the table. Select a client name to jump to its review.

Client platform, core, maintenance status, setup difficulty, key features, and intended users
Client Platforms on this site Core or configuration system Maintenance Setup difficulty Key features Best for
Clash Plus
Top pick
Windows / macOS / Android / iOS Check the release notes for each platform Actively maintained Low: import a configuration to get started Multi-platform downloads; create separate configurations for each device Beginners and multi-device users
Clash Verge Rev Windows / macOS / Linux mihomo (Meta family) Actively maintained Easy to start; overrides take some learning Desktop subscription management, configuration overrides, service mode Desktop users and advanced configuration users
FlClash Windows / macOS / Linux / Android mihomo Actively maintained Low: most tasks are easy to find Similar configuration management on desktop and mobile Users combining computers and Android devices
Clash Nyanpasu Windows Supports mihomo; available cores depend on the release package Actively maintained Moderate: distinguish interface settings from core settings Desktop configuration management and core selection Users looking to customize their desktop workflow
Clash for Windows
Archived
Windows Original Clash ecosystem; capabilities depend on the bundled core Discontinued Plenty of legacy tutorials; check differences when migrating Reference for legacy configurations and interfaces Existing users identifying a legacy setup
Clash Meta for Android Android Meta / mihomo Actively maintained Moderate: VPN and background permissions are involved Configuration management and Android VPN routing Users familiar with Android network permissions
Surfboard Android Independent implementation with Surfboard configuration syntax Actively maintained Easy with a compatible configuration; migration requires conversion Surfboard configuration and traffic-routing workflow Android users with configurations in a compatible format
ClashX Meta
Archived
macOS Meta family; capabilities depend on the bundled core Discontinued Basic tasks are simple; check compatibility with legacy setups macOS menu bar controls Existing users who need to preserve legacy configurations

Original Clash, Meta, and mihomo: what's the difference?

The client handles controls; the core does the work. Subscription lists, system proxy toggles, and configuration editors belong to the client. Parsing proxy protocols, applying rules, and handling DNS are the core's job. A client opening a YAML file only shows that it can read the file; it doesn't mean the current core accepts every key or that the file is the one ultimately used at runtime.

Clash Meta is a core lineage that extends protocol and configuration support in the Clash ecosystem, later continued under the name mihomo. Meta fields in older tutorials are historically related to mihomo fields in newer documentation, but check the exact support in each version. Original Clash and mihomo configurations share much of their structure, but they aren't fully interchangeable in both directions.

For example, mixed-port defines a local mixed-protocol proxy port, proxy-groups defines proxy groups, and rules determine outbound routing in order. When migrating, make sure every group referenced by a rule exists. Check DNS settings such as enhanced-mode and fake-ip-filter against the current core and client. Matching field names don't guarantee matching behavior.

Treat Surfboard separately. It's not a Clash client with a different look: its configuration sections, proxy group definitions, and supported protocols have their own limits. If you have a Clash YAML subscription, ask the provider whether a Surfboard-compatible format is available. Changing the file extension alone won't convert it.

Reviews of all eight clients

Clash Plus: a first choice for beginners and multi-device setups

Clash Plus suits users who want to get a basic proxy workflow running before learning configuration fields in depth. First check that it supports your main devices, then confirm you can import your subscription, select proxy groups, and use the system routing method you need. Multi-device support can reduce the number of workflows to learn, but it doesn't make network permissions, background behavior, or features identical across devices.

iOS users can follow the download link to the App Store. The project's official site is clashplus.io. If your configuration depends on a specific protocol or mihomo extension field, check the documentation for your platform before migrating the whole setup. Desktop experience doesn't always carry over to mobile operating systems.

Clash Verge Rev: desktop configuration and override management

Clash Verge Rev targets Windows, macOS, and Linux desktops and uses the mihomo core. Subscription, proxy group, and connection controls are easy to access for everyday use. It also provides clear settings for service mode, TUN, and configuration overrides. If you have an existing YAML file and want to preserve local changes, focus on how the original subscription relates to the final active configuration.

Remote subscription updates may replace the original content, so put local changes in the client's supported override or extension mechanism. To troubleshoot, check the final configuration first, then review the load results in the logs. Interface settings for ports, DNS, and the system proxy can affect runtime behavior; don't inspect only the YAML in the subscription editor.

FlClash: a similar workflow on desktop and Android

FlClash uses mihomo and is available here for Windows, macOS, Linux, and Android. It's suited to users who switch between computers and Android devices and want a similar way to manage configurations. After importing, check proxy group selection, operating mode, and routing controls one by one. Similar interfaces don't remove differences in operating system permissions.

A desktop system proxy and Android's VPN service work differently. A working desktop connection doesn't mean Android background restrictions are handled; a working phone connection doesn't mean every desktop app follows the system proxy. Compare clients using the same configuration and access task, not just similarly named buttons.

Clash Nyanpasu: desktop workflow and core selection

Clash Nyanpasu suits users who want to customize desktop configuration management and can distinguish client settings from core capabilities. This site's download page provides a Windows option. For core selection, check the options actually included in the installer. Before switching, make sure the target core supports your existing protocols and extension fields.

It's better as an interface choice once you have the basics covered, not as a fix for every connection problem. If the subscription is invalid, a group reference is wrong, or DNS is misconfigured, switching clients may leave the same issue unresolved. Migrate with a minimal working configuration first, verify the connection, then restore local rules.

Clash for Windows: legacy tutorials and archived setups

Clash for Windows is discontinued. It still appears in older tutorials, so it can help identify a legacy interface, explain older configurations, and guide migration. Its archived listing isn't a recommendation for new users to build a long-term setup around it, and the name shouldn't be used as a catch-all for today's Windows clients.

When migrating from CFW, note your subscription source, manually selected proxy groups, listening ports, and custom rules. Legacy scripts or configuration enhancement mechanisms may not transfer directly; reorganize them using the target client's override system. Clash Plus is a good alternative to check first; compare Clash Verge Rev for desktop configuration needs.

Clash Meta for Android: configuration files and VPN permissions

Clash Meta for Android, often called CMFA, suits Android users who want to manage Clash configurations directly. It uses a Meta/mihomo-family core and routes traffic through Android's VPN service. On first launch, grant the permissions requested by Android. If another VPN service is running, resolve the conflict before troubleshooting the configuration.

For ongoing use, check battery optimization, background permissions, and app access. If the connection drops after the screen locks, first determine whether Android stopped the background service or the proxy upstream became unavailable. For basic subscription management, compare Clash Plus or FlClash before choosing a more configuration-focused workflow.

Surfboard: choose it only if your configuration format fits

Surfboard suits Android users who already have a compatible configuration or specifically need its syntax. The key difference from Clash isn't just the layout; it's the configuration system. Nodes, policies, and routing rules must use formats supported by Surfboard. Don't assume it accepts any Clash YAML or every mihomo protocol.

If your only subscription is in Clash format, choose a client that supports it directly to avoid extra conversion steps. If conversion is necessary, check protocol parameters, policy references, DNS, and final fallback rules. Successfully generating a text file doesn't mean its full meaning was preserved. Avoid sending subscription links to unknown conversion services.

ClashX Meta: archived macOS menu bar client

ClashX Meta uses a menu bar workflow and belongs to the Meta family; it is no longer maintained. It's useful as a reference for existing macOS setups, not as a first choice for a new installation. A simple menu bar interface doesn't imply lower resource use or compatibility with newer macOS network permissions.

Before migrating, quit the old client and restore the system proxy settings it changed, so the system doesn't keep using an old listening port. Then choose an installer for Intel or Apple Silicon, import your configuration, and verify each setting. If you don't rely on a legacy workflow, compare Clash Plus, Clash Verge Rev, and FlClash.

Narrow down your options by use case

Check your configuration before switching clients

The goal of migration is to preserve what your configuration does, not copy the entire old client folder. Export or back up your local configuration, and note your rule mode, selected proxy groups, and any necessary overrides. Subscription links are sensitive: don't include them in public screenshots, shared logs, or support requests.

  1. Check installation requirements. Choose an installer for your operating system and processor. Matching architectures doesn't guarantee that system requirements are met; don't assume a startup failure is caused by the subscription.
  2. Clear old routing settings. Quit the old client and check system proxy settings and other VPN services. If two clients compete for a local port or network routing, troubleshooting becomes much harder.
  3. Import the original configuration first. Confirm that the subscription loads, proxy groups can be selected, and rule targets exist. If loading fails, check field names and indentation before restoring custom settings one by one.
  4. Verify the final active configuration. Check mixed-port, mode, dns, and rules. The final configuration generated by the client may differ from the subscription source.
  5. Test the tasks you actually use. Use a familiar app or site and check which rule and outbound target the connection uses. One successful request doesn't prove every app follows the same route.

Once you've chosen a client, visit the client and platform downloads page to pick an installer. Follow the getting started steps for your first setup; for field-by-field checks, see the config.yaml reference. The best choice can change with your needs, but keep a recoverable copy of your configuration before every migration.