Clash ecosystem · Client comparisons

ClashRanking Client downloads & setup

Choose a GUI client by platform and compare rule-based routing and subscription setup.

  • Open-source mihomo core
  • Chinese configuration docs
  • Platform and use-case comparisons
Clash Verge Rev
Desktop GUI client
05Platform download links
mihomoOpen-source proxy core
GPL-3.0Core license
YAMLConfiguration file format

Clients import configurations and control system settings; the core parses rules and establishes connections. Similar names don't guarantee identical settings. Check your platform first, then compare the features you need.

Clash configuration features at a glance

Browse by task, from rule-based routing to traffic interception. These are configuration snippets or setting checklists, not complete configs with proxy nodes. Before merging, check existing fields and proxy group names. Selecting an item pauses the carousel for easier reading.

Rules are matched in order

Rule mode lets different destinations use different outbound routes, which is useful when you need to access LAN devices, direct-connect sites, and proxy services at the same time. The core checks rules from top to bottom, so specific domain and LAN rules usually belong before the catch-all rule. In this example, sample domains and private IP ranges connect directly; all other traffic goes to a proxy group named "Proxy Selection." That group must already exist in your config. Unlike Global mode, Rule mode routes traffic rule by rule. After switching modes, check the matched rule on the Connections page rather than relying only on whether a webpage loads.

# Config snippet: requires an existing "Proxy Selection" proxy group
mode: rule
rules:
  - DOMAIN-SUFFIX,example.com,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - MATCH,Proxy Selection

Choose a Clash client by platform

This directory is organized by platform, use case, and maintenance status—not by ratings that ignore fit. Desktop and mobile platforms use different permission models, and their installers aren't interchangeable. Check the client and system requirements for your platform before deciding whether you need TUN, subscription overrides, or a standalone core.

Windows

The downloads page lists Clash Plus first, followed by Clash Verge Rev, FlClash, and Clash Nyanpasu. For everyday browsing, start with the system proxy. If you need to intercept traffic from other apps, check the client's service mode and TUN permissions. Archived clients are clearly marked and listed separately from actively maintained options.

Check your OS and CPU architecture before installing. On first launch, import a config, select a proxy group, and make sure its local port isn't already in use. Administrator privileges are generally needed for services and virtual network interfaces—not every time you import a subscription.

Go to downloads Windows client

macOS

Choose the right installer for Apple Silicon or Intel, then compare how Clash Plus, Clash Verge Rev, and FlClash manage configurations. ClashX Meta is listed under archived clients for users who need to look up an existing setup. Consider whether you prefer menu bar controls or a full settings window.

If you need to install a helper service, authorize it through macOS. First check that the system proxy is set for the active network service, then decide whether TUN is needed. After switching Wi-Fi networks or quitting the client, check whether macOS still has an old proxy address if the connection stops working.

Go to downloads macOS client

Android

Compare configuration support in Clash Plus, Clash Meta for Android, FlClash, and Surfboard. Mobile connections usually require permission to create a system VPN; installation and connecting are separate steps. Choose an installer for your device architecture. If you're unsure, check the platform notes instead of choosing based only on file size.

For extended use, check battery management and background restrictions, but don't change every battery setting upfront. First verify that the current config works, then adjust background permissions if you experience disconnects. If you need per-app routing, check what the client supports and avoid running another VPN connection at the same time.

Go to downloads Android client

iOS

The downloads page links to Clash Plus on the App Store and lists its official website, clashplus.io, so you can verify the product and find more information. After installing, import a supported config and follow the system prompts to allow a VPN configuration. Desktop system proxy instructions don't apply to phones; use the app settings and check the system VPN status instead.

After switching between mobile data and Wi-Fi, test whether you can reach the same destination, then check for config updates and confirm the selected proxy group. Some extended fields from desktop cores may not transfer directly. If an import fails, check which config formats the app supports rather than reinstalling it repeatedly.

Go to downloads iOS client

Linux

Desktop users can compare Clash Verge Rev and FlClash, then choose a package for their distribution. Server and router users can find mihomo in the core downloads section. GUI clients handle tray controls, configuration management, and OS integration; a standalone core suits environments where you manage services and file paths yourself.

Before installing, check the architecture, desktop environment, and dependencies. A browser using the system proxy doesn't mean command-line tools will use it automatically; terminal apps may need proxy environment variables configured separately. Before enabling TUN, check routing permissions and existing network services, and make sure you know how to restore your network settings.

Go to downloads Linux client

Get started with Clash: three checks

Start with the shortest path to a working connection, then add advanced settings. The client itself doesn't provide subscriptions or proxy service, so you'll need a valid config. The steps below describe a typical GUI workflow; button names vary between clients and platforms.

Import and activate a profile

Open the Profiles page and choose New, Import, or Add subscription. Enter an existing URL, or import a local file. Once it downloads, select the profile and confirm it's active. If you add a file to the list but don't activate it, the core may keep using the previous profile.

If import fails, determine whether it's a network download error or a YAML parsing error. For download issues, check that the URL is reachable and hasn't expired. For parsing errors, check the field and line number in the logs. Generic proxy links aren't always complete Clash configs. Don't rename files to a different extension to force an import, and never post subscription URLs containing access credentials publicly.

Choose a proxy group and traffic mode

On the Proxies page, select a proxy group from your config and use Rule mode as a starting point. In Rule mode, the config determines whether traffic connects directly or through a proxy. Global mode sends traffic through the global policy; Direct mode bypasses proxies. Switching modes won't fix an expired subscription or restore missing proxy nodes.

On desktop, enable the system proxy. On mobile, allow the VPN connection when prompted. Consider TUN only if an app doesn't use the system proxy. Avoid running multiple proxy or VPN tools at once during testing, as they can conflict over ports and routes. Even if the client says the connection is active, verify that you can actually reach your destination.

Verify access and matched rules

Visit one destination that should connect directly and another that should use a proxy, then check the corresponding policy and rule on the Connections page. Verify two things: did the request reach the core, and did it use the expected outbound route? A single speed test is just one data point; it doesn't replace testing the site you need to access.

If you can't connect, check these in order: active profile, proxy group, system proxy or VPN, DNS, and logs. Change one setting at a time and note the result. If LAN access works but domains don't, focus on DNS resolution. Once the first connection is verified, configure startup, scheduled updates, or local overrides to avoid troubleshooting several new variables at once.

How open-source cores and clients work together

Comparisons are based on project features, platform support, and publicly available maintenance information—not made-up star counts or download figures. Understanding the difference between a core and its interface helps you judge which projects support a configuration and avoids mistaking this site's information for a commitment from the software developers.

The Clash ecosystem includes more than one client

Clash appears in both core names and the product names of several GUI clients. The original Clash projects and later ecosystem projects have different maintenance histories. An older client being discontinued doesn't mean every compatible config has stopped evolving. This site lists download links by project and separates archived software from current options. If you're migrating an existing setup, check the core and config fields you're actually using—not just whether the app name includes Clash.

mihomo handles rules; the client handles controls

mihomo is an open-source proxy core. Its public source code and documentation help you check rule, proxy group, DNS, and TUN fields. GUI clients such as Clash Verge Rev add configuration management, tray controls, and OS integration. A switch in the interface might update the core config or only change an OS network setting. For example, the client sets the system proxy in the OS, while mixed-port is a local listening port in the core. They're related, but they're not the same setting.

Licenses and feature guarantees are separate

The mihomo project is licensed under GPL-3.0. Check the project's license file for the specific terms governing use and distribution. Each client has its own source code, license, and release process; the core's license doesn't automatically apply to every app. Open source makes it easier to inspect implementations and issue discussions, but real-world results still depend on your configuration, network, and platform permissions. This site describes use cases and doesn't treat an open-source license as a guarantee that software will work in every environment.

Keep a restorable copy of your config before updating

Cores and clients may update on different schedules, and a GUI update doesn't necessarily change support for every config field. Before updating, save your current config and local overrides, then check release notes for compatibility changes. After updating, test existing rules, DNS, and TUN before adding new fields. Keep remote subscription updates separate from software updates: the former may change nodes and proxy groups, while the latter may change parsing support. Updating both at once makes issues harder to diagnose.

If config parsing fails, note the field, error line, and relevant environment details. Before reporting the issue, redact subscription URLs, credentials, and sensitive connection logs; include the smallest config that reproduces the problem. Existing discussions in public repositories can help identify whether an issue comes from the client interface or the core. Similar symptoms can have different causes, so confirm them against the actual logs.

Clash configuration articles

The three latest articles are listed by publication date, newest first. The tutorial page covers basic tasks; format conversion, rule design, and traffic interception are covered in dedicated articles. Check each snippet's prerequisites, and don't paste it over a complete config that's in use.