CLIENT SELECTION / PLATFORMS · CORES · ROUTING

Compare Clash Clients

Check your OS and subscription format first, then compare configuration management and traffic routing. Similar interfaces do not mean the clients use the same core, and a configuration may not work across clients without changes.

Top pick: Clash Plus

Start with Clash Plus for a new installation

We recommend Clash Plus first for Windows, macOS, Android, and iOS. Check system requirements, then import your subscription using the guide for your platform. Linux users should compare Clash Verge Rev and FlClash first. If you need to maintain mihomo configurations directly, prioritize field compatibility and useful logs over interface preferences.

Compare eight clients

Platforms listed here reflect the download links provided on this site, not every build target supported by each project. Maintenance status is a general guide, not a guarantee of compatibility with every system; check each project's current documentation before installing. Scroll the table horizontally on narrow screens.

Difficulty reflects the effort involved in a first import and troubleshooting. Check platform permissions separately for TUN, service mode, and background operation.
Client Platforms available here Core and configuration Maintenance status Setup difficulty Key features and limitations Best for
Clash Plus Windows、macOS、Android、iOS Core features and configuration compatibility vary by platform; implementations are not necessarily identical. Actively maintained Low; import using the guide for your platform Desktop and mobile support; available features vary by OS New users and multi-device users
Clash Verge Rev Windows、macOS、Linux mihomo; Clash YAML configurations Actively maintained Moderate; involves services and permissions Desktop configuration management, system proxy, TUN Desktop users and rule maintainers
FlClash Windows、macOS、Linux、Android mihomo; Clash YAML configurations Actively maintained Low to moderate Similar workflows on desktop and Android Users switching between desktop and mobile
Clash Nyanpasu Windows Supports multiple cores; features depend on the selected core, including original and Meta/mihomo options Actively maintained Moderate; distinguish the GUI from the core Core management and desktop configuration tools Users willing to check core differences
Clash for Windows Windows Legacy Clash core; not the same as current mihomo No longer maintained Many legacy guides; compatibility troubleshooting can be difficult Reference for legacy configurations and older setups Users reproducing older setups
Clash Meta for Android Android Meta/mihomo family; Clash YAML configurations Actively maintained Moderate; requires background access permissions Android VPN routing and per-app access control Android users maintaining configurations
Surfboard Android Independent implementation, not Clash or mihomo; uses its own supported configuration syntax Actively maintained Moderate; check format compatibility Android setups with an existing compatible configuration Users with an existing Surfboard-compatible configuration
ClashX Meta macOS Meta family; archived core with limited capabilities No longer maintained Few basic setup steps; migration troubleshooting can be difficult Menu bar controls and a reference for legacy configurations Users migrating an existing installation

Choose by use case

First make sure the configuration imports and apps can route through the proxy. Then consider the interface and automation. Avoid adding complexity to your setup for a toggle you do not need yet.

What to expect from each client

These reviews focus on configuration workflows and migration effort, not made-up performance rankings in place of real testing.

Clash Plus

Top pick

A good fit for new users who want one straightforward path from installation and import to choosing rules, as well as anyone using both desktop and mobile. Its appeal is broad platform coverage, not identical settings across every version. On iOS, traffic routing uses the system VPN; on desktop, distinguish the system proxy from other routing options. Read each permissions prompt carefully.

If you already have a complex YAML configuration, first check which fields the target platform supports. After importing, verify that proxy groups, rules, and DNS behave as expected. Seeing a configuration name in the app does not mean migration is complete. For product details, visit clashplus.io.

See Clash Plus downloads by platform →

Clash Verge Rev

A good fit for desktop users who need a long-term setup and want to inspect connections and maintain routing rules. The mihomo core makes it easier to troubleshoot against a consistent set of field documentation; the GUI handles everyday tasks such as selecting configurations, setting the system proxy, and using TUN. After installation, test a basic proxy connection before setting up service mode or granting administrator permissions.

Its configuration management tools also require you to distinguish the original subscription from local changes. Edits to content that gets overwritten on update may disappear at the next refresh. When using merges, overrides, or scripts, keep both the input and final configurations, and organize changes using mechanisms the client actually supports.

See desktop client downloads →

FlClash

A good fit for users who switch between desktop and Android and want a similar workflow on both. Its mihomo-based configuration makes it easier to reuse routing ideas, but desktop proxy settings and Android VPN authorization work differently. On phones, you also need to account for background operation, battery optimization, and conflicts with other VPN apps.

Test an existing configuration on one device before migrating the rest. Do not copy desktop paths or listening addresses unchanged to a phone. If the interface says connected but an app cannot access the network, first check whether that app is included in the routing scope, then check DNS and rules. Do not mistake a platform permissions issue for a core issue.

See Android client options →

Clash Nyanpasu

A good fit for desktop users who want to distinguish the GUI from the running core. This page compares the Windows installer offered here. When managing cores, remember that switching cores within the same interface may change field compatibility. Starting successfully does not mean existing DNS, rules, and protocol options still work the same way.

First validate one core with one configuration, then try other combinations. When troubleshooting, record the selected core, the configuration actually loaded, and the parsing logs. If you only need to import a subscription and switch proxy groups, managing multiple cores may add complexity without helping.

See Windows client options →

Clash for Windows

No longer maintained

Also known as CFW, this client is mainly a reference for legacy setups and older guides. It is not equivalent to current mihomo clients. Archived cores may not recognize newer protocol types or configuration fields. Button locations, service installation, and system proxy instructions in old guides may also no longer apply to current OS versions.

Not recommended for new installations. If you have a working setup, back it up before migrating to a maintained client. Migrate using the original subscription or configuration file rather than copying the entire application data directory. If you need to reproduce an old issue, limit the scope of the test and document how it differs from your current setup.

Compare maintained Windows clients →

Clash Meta for Android

Also known as CMFA, this client suits Android users who understand Clash YAML and want to maintain configurations directly on their device. Meta/mihomo-family features depend on the specific build; do not assume every desktop field or workflow applies. On first launch, grant VPN permission and make sure the intended configuration is selected.

Android issues often stem from background restrictions or per-app access controls. If it stops working when the screen locks, check whether the OS is killing its background process. If only certain apps fail, check whether they are excluded from the VPN. Match the installer architecture to your device; the word Android in a filename is not enough to confirm compatibility.

See CMFA and other Android options →

Surfboard

A good fit for Android users who already have a compatible configuration and want to keep using that format. It is not a different interface for Clash YAML and does not use mihomo. A subscription URL opening in a browser does not mean its response can be parsed by Surfboard.

Before choosing, confirm that your provider's format, protocols, and rule syntax are supported. Format conversion can only map compatible parts; it may not preserve every proxy group, DNS option, or extended field. If you only have Clash YAML, a client that supports that format is usually the more direct choice.

See Android configuration compatibility options →

ClashX Meta

No longer maintained

This macOS menu bar client uses a Meta-family core and is best treated as a reference when migrating an existing setup. Its controls are easy to find in the menu bar, but its archived status means you should not expect ongoing support for new OS changes or core fields. For a fresh macOS installation, compare Clash Plus, Clash Verge Rev, and FlClash first.

Before migrating, note the current listening port, rule mode, and system proxy status. After quitting the old client, confirm that proxy settings have been restored before launching the new one. This helps avoid port conflicts or both apps changing the system proxy. Check whether your Mac needs the Apple Silicon or Intel build.

See macOS client options →

Before switching clients

Once you have chosen a client, keep a way to roll back. Do not run multiple proxy cores at the same time to test the same ports.

  1. Save your subscription and local changes. Treat subscription URLs as sensitive information; never include them in public screenshots or support requests. Save the original configuration and local overrides separately, and check which changes will be replaced when the subscription updates.
  2. Stop the old client and reset its routing settings. Turn off the system proxy, TUN, or VPN, then quit the app. Check whether its service is still running in the background. If the new client reports that an address is already in use, check for a port conflict first.
  3. Check the format and core. Confirm that the target client supports the format returned by your subscription. If parsing fails, check the field named in the error instead of repeatedly switching nodes. In particular, do not confuse Surfboard format with Clash YAML.
  4. Test a minimal configuration first. Import and select the configuration, then test one app before restoring custom rules and DNS. Change one thing at a time so you can tell what affected the result.
  5. Check the actual traffic path. Rule mode does not automatically route an app through the proxy. A desktop app may ignore the system proxy; an Android app may be excluded from the VPN. Confirm that traffic is being routed before checking which rule matched.
  6. Re-enable automatic updates last. Set an update interval only after a manual refresh succeeds. Keep a backup of local overrides, then confirm that proxy groups, rule references, and the selected configuration are still correct after an update.

Bottom line: Start with Clash Plus for a new installation. For direct management of desktop mihomo configurations, compare Clash Verge Rev and FlClash. On Android, choose CMFA or Surfboard based on configuration format. Keep CFW and ClashX Meta as legacy references. What matters is whether the client imports, runs, and can be troubleshot on your target system.

Download the latest Clash version