Quick verdict: Start with Clash Plus
For a first install—or when choosing a client for Windows, macOS, Android, or iOS—our top pick is Clash Plus. Import your subscription, choose a node, and verify the rule mode on your target platform before deciding whether you need more advanced configuration tools. Linux users can compare Clash Verge Rev and FlClash; choose based on actual platform support, not a desire for one product name across every device.
If your main tasks are maintaining config.yaml, troubleshooting DNS, or adjusting rule sets, compare support for the fields you use, how to inspect the active configuration, and where to find logs. For desktop, take a close look at Clash Verge Rev; for a similar workflow on desktop and Android, consider FlClash. Android users with an existing Surfboard configuration should evaluate Surfboard separately—it is not another interface for Clash YAML.
Platform, core, and feature comparison
On mobile, swipe horizontally to view the table. Ease of use reflects the steps needed to import a subscription and manage everyday routing; it is not a performance rating. A simple interface does not necessarily make migration easy if you are unfamiliar with the configuration format.
| Client | Platforms offered here | Core and configuration ecosystem | Maintenance status | Ease of use | Key features and things to check | Best for |
|---|---|---|---|---|---|---|
| Clash Plus | Windows、macOS、Android、iOS | Check core and Clash configuration compatibility for each platform | Actively maintained | Easy; start with the standard import flow | Subscription import and policy selection; verify advanced fields on each platform | Beginners and users with multiple devices |
| Clash Verge Rev | Windows、macOS、Linux | mihomo;Clash YAML | Actively maintained | Moderate; TUN requires system-level services | Subscription management, configuration merging, TUN, and log access | Desktop power users |
| FlClash | Windows、macOS、Linux、Android | mihomo;Clash YAML | Actively maintained | Easy to moderate | Cross-platform interface; proxy groups, connections, and configuration management | Desktop and Android users |
| Clash Nyanpasu | Windows | Supports core management; check field support when using mihomo | Actively maintained | Moderate; requires understanding how configuration is generated | Core management, configuration processing, and desktop settings | Users willing to review merge results |
| Clash for Windows | Windows | Original Clash ecosystem; legacy builds may use Premium | Discontinued | Legacy workflow is straightforward; check fields when migrating | Legacy Profiles, Parsers, and existing configurations | Users migrating a legacy setup |
| Clash Meta for Android | Android | Meta / mihomo ecosystem; check the specific fork | Original project discontinued; check each community fork separately | Moderate; requires understanding VPN permissions and background limits | Configuration import, VPN routing, and per-app routing | Users familiar with Android network settings |
| Surfboard | Android | Independent implementation; not a Clash core or compatible with Clash YAML | Actively maintained | Easy with a compatible configuration; harder when migrating between formats | Its own configuration syntax, rules, and policy management | Android users with an existing compatible configuration |
| ClashX Meta | macOS | Meta-based; capabilities limited by its archived core | Discontinued | Straightforward menu bar controls | Menu bar controls and reference for existing macOS configurations | Users maintaining or migrating a legacy setup |
Meta is a common name in the Clash fork ecosystem, and mihomo is a major implementation of a related core today. Seeing Meta in a tutorial does not mean an older build supports every field available in current mihomo. For tun, sniffer, proxy-providers, and DNS options in particular, check the core actually in use—not just the client name.
Client-by-client reviews
Clash Plus: A first install and a choice for multiple devices
Clash Plus is our recommended starting point. It supports desktop and mobile devices, but check features on each platform rather than assuming a desktop setting also exists on iOS. Beginners can import a compatible subscription from their provider, select a policy group in rule mode, and confirm that connections use the expected egress. This makes issues easier to isolate than changing DNS and enabling TUN right away.
A good fit if your everyday tasks are updating subscriptions, switching nodes, and checking connections. If you rely on script-based overrides, process rules, or specific core fields, check support on your platform first. See the official site at clashplus.io. Installers are available on the download page; for iOS, use its App Store link.
Clash Verge Rev: Desktop configuration and TUN
Clash Verge Rev is a good fit for desktop users who manage mihomo configurations. Keep subscription files, merged content, and the active configuration distinct: editing a subscription does not mean your changes will survive the next update. If you need to add rules over time, learn how merging or overrides work and check the order of rules in the generated configuration.
TUN can route traffic from apps that do not use the system proxy, but it involves service permissions, a virtual network interface, and routing changes. Do not leave it enabled just because the option is available. First verify that nodes and rules work through the system proxy, then configure TUN and DNS to keep troubleshooting straightforward. Linux users should also check package format and desktop runtime dependencies. See Linux downloads.
FlClash: A similar workflow on desktop and Android
FlClash stands out for its cross-platform interface and mihomo configuration ecosystem. If you regularly switch between a computer and Android, similar workflows for configurations, proxy groups, and connection details can reduce the learning curve. However, system-level routing differs: desktop uses the system proxy or TUN, while Android usually requires system VPN permission. Do not expect the same permission steps on both platforms.
After importing an existing YAML file, check that all referenced policy groups exist, then verify rule-set downloads and DNS resolution. Remove local paths, controller interfaces, or client-specific fields left by other apps. A configuration opening in the interface does not mean every rule is active; check startup logs and actual connection records.
Clash Nyanpasu: Core selection and configuration handling
Clash Nyanpasu is aimed at users who want to manage desktop configurations. This site offers a Windows installer; that does not imply support for every build target of the project. Check the selected core before evaluating configuration syntax. Switching cores can change supported fields, DNS behavior, and log output—it is more than a name change.
If you have multiple subscriptions, need rule overrides, or are troubleshooting configuration processing, inspect the final YAML passed to the core. If the subscription itself looks fine but the running result does not, the merge step may be the problem. New to rule-based routing? Start with a standard import, then add processing steps once you can follow policy group references.
Clash for Windows: Archived configurations and migration
Clash for Windows is discontinued. This site retains an archived download for reference with legacy setups. Workflows in older tutorials—such as Profiles, Parsers, or service installation—may only apply to the client and core versions available at the time. For a new device, do not keep using archived software just because a tutorial looks familiar, and do not assume a client starting successfully proves system compatibility.
Before migrating, note your subscription source, policy group names, and custom rules, then configure the system proxy and startup options again in a current client. Do not copy an entire directory over the new installation or assume legacy Premium settings are equivalent to mihomo. Verify common rules first, then restore advanced fields. Find the archived installer in the Windows downloads section.
Clash Meta for Android: Fork status and system VPN
Clash Meta for Android is often abbreviated as CMFA. The name may refer to the original project, older tutorials, or later community forks, so you cannot infer maintenance status from the displayed name alone. The original project is discontinued. For a newer fork, check its package source, core documentation, and release history; do not assume every similarly named build is actively maintained.
The key steps are importing a configuration, granting VPN permission, and choosing which apps to route. If a browser works but other apps do not, check app exclusions and Android background restrictions. Android generally allows only one VPN service to control a connection, so other VPN tools may conflict with the client. These are platform-level issues, not problems a different node will fix.
Surfboard: Check the configuration format first
Surfboard is an independent Android client. It does not use a Clash core and should not be treated as a Clash YAML client. It may suit users with a compatible configuration who specifically need its rule and policy syntax. Beginners with only a Clash subscription should not switch just because Surfboard also supports proxies.
Converting between formats means handling node protocols, policy groups, rules, and DNS separately. Converting nodes does not preserve the behavior of an entire configuration, and unsupported fields will not appear just because you converted the file. Check whether your provider offers a compatible format, then review the conversion result. Read the glossary to understand the difference between configuration formats and avoid confusing a node list with a complete configuration.
ClashX Meta: An archived macOS menu bar option
ClashX Meta's menu bar interface can help explain older macOS workflows, but the project is discontinued. Existing users can refer to it when checking legacy configurations; new devices should use a client that is still maintained. After an OS upgrade, recheck proxy settings, permissions, and core operation. A setup that worked on an older device does not guarantee compatibility with a newer system.
Before migrating, record your subscription URL, policy group choices, and local rules. Quit the old client and check that it has restored the system proxy before starting the new one, so the two apps do not keep changing proxy settings. For Apple Silicon, choose the installer for your device architecture rather than relying on macOS in the filename. Find installers in the macOS downloads section.
Choose a client by use case
What to check before switching clients
The goal of migration is to reproduce your routing behavior, not every option in the old interface. Keep a recoverable copy of your configuration and note which changes come from the subscription and which are local overrides. Subscription URLs may contain credentials; do not include them in screenshots, public logs, or online conversion tools.
- Identify the configuration type. Distinguish a full YAML configuration from a node list or URI link. A client that can parse nodes may still be unable to import all policy groups.
- Check references. Make sure the policy groups referenced by
rules, the nodes referenced by those groups, and the rule-set names are all defined. - Verify a standard proxy first. Quit the old client and check the system proxy and listening port, then test a known-good connection in the new client.
- Restore advanced routing next. Enable TUN, DNS hijacking, sniffing, and per-app routing one at a time. Check the logs after each change to avoid stacking multiple variables.
- Test a configuration update. Update the subscription manually and confirm that custom rules remain intact and policy group selections are as expected before enabling startup on boot.
Once you have chosen a client, visit the client download page and select the installer for your operating system. If you cannot connect, lose background access, or UWP apps bypass the proxy, use the FAQ to distinguish system routing, DNS, and node issues before deciding whether to switch clients.