Platforms / Core / Config Compatibility

Clash Client Comparison and Selection

For a new install, start by considering Clash Plus. Choose Clash Verge Rev for desktop config overrides, or FlClash if you want to use a similar client on Android and desktop. Check your OS and config format first, then compare interfaces and features—client names alone don’t tell you what the core supports.

Choose by platform and config needs

Top pick: Clash Plus

Start with Clash Plus if you’re new to Clash

Windows, macOS, Android, and iOS users can start by checking the Clash Plus download for their platform. Its broad platform coverage and straightforward config management make it a useful first option—not a claim that it ranks fastest. Before installing, check your OS, processor architecture, and subscription format. Network routing and supported fields can vary between versions of the same client on different platforms.

If you maintain a mihomo config that relies on proxy-providers, rule-providers, or specific DNS behavior, check field compatibility before choosing based on interface preferences. On desktop, also compare Clash Verge Rev and FlClash. Linux users should start with these two options. The platform list here reflects this site’s download links, not every platform each project has ever supported.

Check downloads and system requirements by platform →

Compare eight Clash clients

Ease-of-use ratings assume you’re importing an existing config, choosing a policy, and enabling the proxy; they’re not performance benchmarks. Maintenance status is a general guide and may change, so check each project’s release notes before installing. Scroll horizontally to view the full table.

Client comparison; platform availability reflects this site’s download list
Client Platforms available here Core Maintenance Ease of use Key features Best for
Clash Plus Windows / macOS / Android / iOS Implementation varies by platform; don’t assume they all use the same core Actively maintained Easy; check your subscription format first Multi-platform downloads, subscription management, and policy selection Beginners and everyday use across devices
Clash Verge Rev Windows / macOS / Linux mihomo (Clash Meta ecosystem) Actively maintained Easy for basics; overrides and service settings require config knowledge Desktop config management, overrides, system proxy, and TUN Desktop-first and power users
FlClash Windows / macOS / Android / Linux mihomo (Clash Meta ecosystem) Actively maintained Easy to start; advanced network settings require extra learning Cross-platform interface, policy management, and traffic and connection views Users who switch between Android and desktop
Clash Nyanpasu Windows Supports core management; select mihomo if you use Meta-specific fields Actively maintained Moderate; distinguish interface settings from core settings Desktop interface customization, config management, and core management Users who want to customize their desktop workflow
Clash for Windows Windows (archived) Original Clash / legacy Premium core Discontinued Plenty of older guides, but migration takes extra work Checking legacy configs, UI, and behavior For checking older setups, not recommended for new installs
Clash Meta for Android Android Clash Meta / mihomo ecosystem Actively maintained Moderate; requires config knowledge and VPN permission Config import, policy selection, and app-specific routing Android users with existing Clash configs
Surfboard Android Independent implementation; not Clash or mihomo Actively maintained Depends on whether you already have a compatible config Its own config format, rules, and Android traffic routing Users with a Surfboard-compatible subscription
ClashX Meta macOS (archived) Clash Meta ecosystem; built-in capabilities depend on the legacy release Discontinued Simple menu bar controls; check compatibility with older systems Menu bar policy switching and legacy config management Checking and migrating existing macOS setups

How to choose between clients

Clash Plus

Top pick

A strong first option for new users, especially if you want a similar workflow on desktop and phone. Start by importing a config, selecting a policy, enabling the proxy, and testing the connection. Then decide whether you need more advanced rule customization. A client is not a subscription service: you still need a working config in a supported format.

Support for multiple platforms doesn’t mean every version uses the same core or accepts every mihomo field. If you have a complex YAML config, check support for its protocols, DNS, policy groups, and rules. Install the iOS app from the App Store; the official website is clashplus.io. Don’t assume desktop TUN or service-mode instructions apply across platforms.

Clash Verge Rev

A good fit if desktop is your main workspace for managing configs. mihomo handles rules, protocols, and connections; the GUI handles config selection, subscription updates, and system integration. If you need custom rules, use the client’s override or merge features rather than editing a config that may be overwritten by remote updates.

More advanced options also mean more to check when troubleshooting: separate config issues from system-level ones. System proxy works with apps that respect the OS proxy settings. TUN routes more traffic but involves permissions, routing, and DNS. Don’t enable multiple traffic-capture methods just to get one app working; first identify where the issue occurs.

FlClash

A good fit if you use Android and desktop and want to minimize the learning curve. Its mihomo ecosystem makes it easier to reuse similar rules and policy groups, but cross-device migration still depends on config sources and supported fields—not copying the entire app data directory. Android VPN permission and the desktop system proxy are different controls.

Start with a small, clearly structured config. Make sure policy groups can select working nodes before adding rule sets and complex DNS settings. Similar interfaces can reduce the learning curve, but background activity, network permissions, resume from sleep, and routing can still differ by OS.

Clash Nyanpasu

A good fit for users who want to customize their desktop workflow and understand what the core does. This site provides a Windows download; that doesn’t mean the project is Windows-only. If you need specific Meta fields, check which core is currently enabled and what it supports, then verify that interface settings or overrides haven’t changed the config.

When using a highly configurable client, keep track of what each layer does: what comes from the remote subscription, what local overrides change, and what the interface toggles affect. If behavior differs from what you expect, check the running config and logs first. Avoid changing several settings at once, or you won’t know which one fixed the issue.

Clash for Windows

Discontinued

Useful for checking older guides, config structures, and existing setups, but not recommended as the starting point for a new device. Many online CFW guides still show familiar menus, but similar labels don’t mean an older core supports newer protocols and rule fields. Being able to import a file doesn’t mean the core understands every setting in it.

Looking for a Clash for Windows alternative? Note your old setup’s listening ports, mode, policy group names, and custom rules before choosing Clash Plus, Clash Verge Rev, or FlClash. After migration, set up the system proxy and startup behavior again. Make sure the old client’s service or background process isn’t still using the same port. Keep a copy of the old config for reference.

Clash Meta for Android

Often abbreviated as CMFA, this is a good fit for Android users who know Clash YAML and want to manage configs and app-specific routing directly. After importing a subscription, select the config you want to use and grant VPN permission. A config appearing in the list doesn’t necessarily mean the core has loaded it—check both.

Mobile troubleshooting also means checking battery optimization, background restrictions, and network changes. If the connection drops when the screen locks, don’t assume the node is down; check background permissions and VPN status first. For app-specific routing, confirm whether the app list uses an allowlist or blocklist so the target app isn’t accidentally left outside the routed traffic.

Surfboard

Surfboard is an Android proxy tool, not a Clash client with a different interface. It has its own config syntax and protocol support, so it’s best suited to users with a compatible subscription who know which format their provider exports. Check the config type before comparing interfaces.

When switching from Clash, don’t just change the file extension and try to import the config. Node parameters, policy group syntax, rules, and DNS behavior may all need conversion. Check the converted config for protocol support and rule order. If you want to keep an existing mihomo config, a client in the same ecosystem is usually easier to troubleshoot.

ClashX Meta

Discontinued

Useful for checking legacy setups with an existing macOS menu bar workflow. It uses the Clash Meta ecosystem, but a core included in an older release doesn’t automatically support current mihomo features just because the project name includes “Meta.” Check compatibility with your OS version, processor architecture, and config fields instead of relying on old guides.

For a new install, consider Clash Plus, Clash Verge Rev, or FlClash. Before migrating, note your current ports and policy selections. Quit the old client before enabling traffic routing in the new one. Also check login items and system proxy settings for references to the old listening address—otherwise the new interface may be running while traffic still goes through the old process.

Recommendations for four common use cases

Config checks before switching clients

Back up your config before changing traffic routing

Save your subscription source, local rules, and policy group selections. Don’t treat an entire client data directory as a portable backup format. Quit the old client and make sure its background service has stopped routing traffic before starting the new one. If both use mixed-port: 7890, running them at the same time may cause a port conflict, startup failure, or system proxy traffic to reach the wrong process.

After migration, test your browser and terminal separately. A browser may use the system proxy, while a terminal may still have old proxy environment variables. Different results don’t necessarily mean the new core’s routing is broken.

Restore settings gradually from a minimal config

First check that a node connects and the default policy group has a selectable option. Then restore DNS, rule sets, and TUN one at a time, testing after each change. If behavior differs, return to the last working state. Use spaces for YAML indentation, preserve list nesting, and avoid repeating top-level fields with the same name.

The example below shows the structure of common basic fields, not a complete, working config. You’ll still need valid nodes or a node provider, policy groups, and rules. It also doesn’t mean Surfboard or every platform-specific client can import the config unchanged.

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
Will switching to a mihomo client make connections faster?

Not necessarily. The exit route, server load, local network, and protocol settings can all affect performance. A different core may improve protocol compatibility or fix a specific issue, but that doesn’t guarantee a speed increase. For a fair comparison, use the same node under similar network conditions and confirm both clients are using the same policy.

Can I use the same subscription with every client?

Don’t assume so. First check whether your provider gives you a node list, a full Clash config, or a format for another client. Even clients that accept YAML may rely on different cores for advanced fields. Surfboard needs a config format it supports, and Clash Plus import capabilities should be checked separately for each platform.

Which client should I use for command-line or router setups?

Consider running the mihomo core directly; you don’t need to install a desktop GUI. You’ll need to manage config paths, service startup, logs, and updates yourself, so this is best for users with system administration experience. Most desktop users should choose a GUI client. Server and router users can visit the core downloads section and select a build for their system architecture.