Client selection · Platform and core comparison

Clash client comparison

Start with your device and configuration format, then compare cores and management features. Similar interfaces do not guarantee the same protocol support, rule syntax, or system-level routing.

Start with Clash Plus

For a first installation or use across a computer and phone, start with Clash Plus. Downloads are available here for Windows, macOS, Android, and iOS. Import your subscription, choose rule mode, and verify the connection first. Compare other clients when you have a specific need for desktop overrides, core management, or Linux support.

This recommendation is about the easiest setup path, not a speed ranking. Connection performance also depends on the server, route, protocol settings, and local network. Clients with the same name may also differ across platforms.

Platforms, cores, and learning curve

Platforms listed here reflect the download options on this site, not every target the projects have ever supported. On narrow screens, scroll the table horizontally. Check each project's notes for current maintenance status and bundled core details.

Client comparison and selection guide
Client Platforms available here Core and configuration Maintenance Learning curve Key features and best for
Clash Plus Windows / macOS / Android / iOS Clash-compatible configurations; core and field support vary by platform Actively maintained Low; check subscription compatibility first For choosing a client across devices; a good fit for first-time setup and everyday subscriptions
Clash Verge Rev Windows / macOS / Linux mihomo Actively maintained Low for basic use; overrides and TUN require extra learning Configuration overrides, service mode, and TUN; for advanced desktop management
FlClash Windows / macOS / Linux / Android mihomo Actively maintained Low; system permissions vary by platform Similar cross-platform workflows; for users switching between desktop and Android
Clash Nyanpasu Windows Supports core management; capabilities depend on the selected core Actively maintained Moderate; distinguish client settings from core settings Desktop configuration and core management; for experimentation and advanced use
Clash for Windows Windows (archived) Primarily the original Clash core; legacy installations may have had the core replaced manually Discontinued Familiar in legacy setups; assess migration effort For recreating legacy configurations; not recommended for new installations
Clash Meta for Android Android Meta/mihomo family; depends on the bundled build Maintained by individual forks; check the relevant fork's notices before installing Moderate; requires VPN permission and attention to background restrictions Per-app routing and profile management; for Android users who manage their own configurations
Surfboard Android Proprietary implementation; Surge-style configuration, not a Clash core Actively maintained Low with a compatible configuration; otherwise conversion may be needed For users with a compatible configuration who are willing to check syntax and protocol support
ClashX Meta macOS (archived) Meta family; not the same as an actively updated mihomo build Discontinued Straightforward menu bar controls; check support for legacy fields For recreating legacy macOS workflows and configurations

Original Clash, Meta, and mihomo: how they relate

The client provides the interface, subscription management, and system integration. The core parses configurations, matches rules, and establishes connections. Keep these two layers separate when choosing a client.

Original Clash and legacy clients

Original Clash underpins many older guides and configuration examples. Clash for Windows was a popular graphical client from that era, but a client name does not identify its core version. The original project is no longer maintained. Legacy configurations may still work, but that does not guarantee support for newer protocols, rule fields, or operating systems.

If a configuration contains an unrecognized proxy type, check which types the core supports. Importing the same subscription again usually will not fix syntax the core cannot handle.

Clash Meta and mihomo

Clash Meta was a core fork that extended the Clash ecosystem and later continued under the name mihomo. Older references to Meta are part of mihomo's history, but capabilities depend on the build date. Clients such as Verge Rev and FlClash provide configuration and system-integration features around mihomo.

Even with the same core, behavior can vary depending on how a client generates configuration, handles permissions, and applies overrides. For protocol and field differences, see the protocol guide.

Eight Clash clients reviewed

These reviews focus on configuration workflows and management overhead—not download counts, ratings, or node-test results.

Top pick

Clash Plus: first setup and use across devices

Clash Plus is a practical default starting point: choose the download for your device, then use a compatible subscription from your provider. If you mainly need to switch proxy groups, use rule mode, and check basic connection status, getting those essentials working is more useful than diving into core settings right away.

Cross-platform support does not mean every configuration works unchanged. Check proxy protocols, rule sets, and DNS fields before importing—especially when moving a desktop configuration to a phone. iOS users can open the App Store from the download page. Product details are also available at clashplus.io. For Linux or complex desktop overrides, consider alternatives such as Verge Rev or FlClash.

See Clash Plus downloads by platform →

Clash Verge Rev: desktop configuration and overrides

Clash Verge Rev is a desktop client for Windows, macOS, and Linux, powered by mihomo. It is worth considering if you want to keep a remote subscription while adding local rules, changing DNS settings, or managing the system proxy. Service mode and TUN offer different ways to route system traffic, with permissions and setup varying by operating system.

The learning curve is mainly in managing configuration layers, not making a basic connection. Keep the original subscription, overrides, and final runtime configuration distinct. Changes made directly to a locally downloaded subscription file may be overwritten on update. When migrating from CFW, import only the subscription first and confirm it works before rebuilding scripts and shortcuts one at a time.

See desktop installation options →

FlClash: a similar workflow on desktop and Android

FlClash uses mihomo, with downloads available here for Windows, macOS, Linux, and Android. Consider it if you want a similar workflow on your computer and Android phone. A consistent layout makes configuration, proxy groups, and connection settings easier to find, but it does not sync subscriptions, rules, or local overrides automatically.

On mobile, check VPN permission and background activity restrictions. On desktop, distinguish the system proxy from TUN. Battery-saving settings on a phone are not the same as desktop service mode. After switching platforms, review DNS, bypass rules, and which apps are routed instead of relying only on a Connected status.

See Android clients →

Clash Nyanpasu: core management and configuration testing

Clash Nyanpasu offers desktop configuration and core management tools for users who are comfortable distinguishing client settings, core options, and subscription fields. This site's download list includes a Windows installer; that reflects the packages available here, not the full range of operating systems the project supports.

Switching cores is not a universal fix. Before changing cores, note the one currently in use, check for core-specific fields, and keep a restorable copy of your configuration. A configuration that starts with one core may behave differently with another, particularly for DNS and routing. If you only need to import subscriptions for everyday use, there is no need to add core switching to your maintenance routine.

See Windows clients →
Discontinued

Clash for Windows: archive and migration reference

Clash for Windows, often called CFW, is no longer maintained. The archived download is mainly for recreating legacy setups, reading old configurations, and preparing a migration. New users should not rely on it as their long-term default. Settings names and scripting methods in older guides may not map directly to current clients.

For migration, save the subscription URL, local rules, override scripts, and port settings separately. Test the original subscription in the new client first, then move over customizations one at a time—do not replace the entire configuration directory. If the old setup had a manually replaced core, record its actual name to avoid mistaking a core difference for a client compatibility issue.

Read the CFW migration guide →

Clash Meta for Android: per-app routing and configuration management

Clash Meta for Android, often called CMFA, provides Android configuration features around Meta/mihomo-family cores. Check the package architecture, Android compatibility, and maintenance notices for the specific fork separately. Builds with the same or a similar name are not guaranteed to have the same core capabilities.

Best suited to users already familiar with subscription files, per-app routing, and Android's VPN service. If the connection drops in the background, check battery management and background permissions first. If only certain apps fail, review the selected apps and matching rules. Android generally cannot run two VPN-based routing services at once under the same user profile, so disable other VPN clients during testing.

Check Android package architecture →

Surfboard: an Android option with a different configuration system

Surfboard is not Clash with a different interface. It has its own implementation and uses Surge-style configuration. Similarities in syntax do not mean it supports every Surge feature. Android users with a compatible configuration or a specific need for its rule system can compare it as a separate option.

A Clash YAML subscription will not work just by changing the file extension. Conversion involves more than mapping proxy nodes: proxy groups, rules, and DNS behavior also need attention, and some fields may have no equivalent. Confirm that your subscription provider offers a compatible format before migrating. If your configuration relies heavily on mihomo-specific fields, a client using a compatible core is usually easier to maintain.

See Surfboard downloads →
Discontinued

ClashX Meta: legacy macOS menu bar client

ClashX Meta uses a Meta-family core and is operated mainly from the macOS menu bar. It is now an archived, discontinued client. Users familiar with its old menu bar workflow can refer to it when reviewing legacy settings. For a new installation, compare actively maintained options rather than choosing software based only on its name in an old guide.

When moving from ClashX Meta to another macOS client, check for leftover system proxy settings, helper services, and local listening ports as well as the subscription. Quit the old client before starting the new one to reduce conflicts over ports and proxy settings. Choose an Apple Silicon or Intel installer that matches your hardware; the word macOS in a filename is not enough.

See current macOS options →

Narrow down your options by use case

Start with one primary need. Changing the client, subscription, DNS, and routing mode all at once makes connection problems much harder to diagnose.

What to check before installing or migrating

Once you have chosen a client, use the same working configuration for a fair comparison. Keeping a way to roll back matters more than trying several new settings at once.

  1. Check your device. Confirm the operating system version, processor architecture, and installation permissions. Desktop and mobile installers are not interchangeable; on macOS, choose the right build for Apple Silicon or Intel.
  2. Check the subscription format. Ask the configuration provider which clients and cores are supported. A client may parse proxy nodes without preserving proxy groups, rule sets, or DNS behavior correctly.
  3. Back up custom settings. Record the subscription source, rule overrides, scripts, ports, and per-app routing scope separately. Subscription URLs may contain access credentials; do not include them in public screenshots or support requests.
  4. Test the connection step by step. Quit the old client, then test basic mode in the new one before enabling TUN or custom DNS. If it fails, check the logs for parsing errors and permission prompts.
  5. Check for leftover system settings. Make sure old proxy settings, startup items, and background services are no longer overriding the new setup. Tidy up the old configuration only after verifying the new one, so the clients do not keep changing the system proxy back and forth.

For terminology, see the glossary; for connection issues, visit FAQs. All installation options are listed on the downloads page. This guide does not treat interface preferences as proof of protocol compatibility.