Narrow down your options by device and workflow

Start with your operating system, then consider how you use the app day to day. If you want a similar setup process on Mac and Windows, compare Clash Verge Rev. If you’d like a consistent interface across desktop and Android, take a look at FlClash. If you mainly switch nodes from the macOS menu bar and prefer a compact workflow, consider ClashX Meta. These aren’t just different skins for the same app: configuration management, background services, and settings all work differently.

These clients provide the interface, manage subscriptions, and launch the proxy core. The core is the program that parses configuration, matches rules, and establishes connections. Clash Meta later adopted the name mihomo. When you see “Meta core” or “mihomo,” check the client’s release notes to understand which version is meant; don’t assume they’re entirely separate configuration ecosystems.

  • For browser use only: Check that system proxy settings, subscription updates, and switching nodes are easy to manage.
  • For terminals, games, or other apps: Check TUN support, background services, and connection logs.
  • If you often edit rules: Check configuration overrides, rule editing, and whether your settings survive updates.
  • If you use multiple devices: First confirm there are official builds for each operating system, then compare how consistent the interfaces are.

Compare the three clients

This comparison focuses on each project’s goals and common workflows, not button locations that may change between releases. Minimum OS versions, core versions, and installer architectures can also change, so check the release notes before downloading.

Feature Clash Verge Rev FlClash ClashX Meta
Platforms Windows、macOS、Linux Android、Windows、macOS、Linux macOS
Core Based on mihomo Based on the Clash Meta/mihomo ecosystem ClashX fork with a Meta core
Interface Standalone window with sections for subscriptions, proxies, connections, and settings Card-based, page-by-page workflow designed for desktop and mobile touchscreens Primarily controlled from the macOS menu bar
What to learn first Understand subscriptions, operating modes, and service settings Understand configuration selection, traffic routing, and platform permissions Get familiar with the menu hierarchy and configuration file management
Advanced checks Check overrides and background service status Check TUN support and background operation on each platform Check enhanced modes and core capabilities in the specific release
A good first choice for Desktop users who want connections, rules, and logs in one place Users who use both Android and desktop Mac users who prefer menu bar controls

“Supports the same core” doesn’t mean the features are exposed in the same way. A capability may exist in the core without a graphical toggle in the client, or it may require OS permissions. TUN is a good example: seeing it mentioned on a project page doesn’t mean every build can enable it the same way.

For Mac users: compare window management, menu bar controls, and chip architecture

Need to inspect connections and edit rules? Start with Clash Verge Rev

If you often need to check “Which node handled this request?” or “Why did this rule match?”, a standalone window makes it easier to view proxy groups, connection history, and logs together. For your first setup, import and select a subscription, choose a node on the Proxies page, then enable the system proxy. Avoid changing DNS and TUN settings before the subscription is working; otherwise, it’s harder to tell which change caused the result.

Want a similar desktop and mobile workflow? Try FlClash

FlClash’s cross-platform interface can help you build similar habits, but permissions still depend on the operating system. Android VPN permission and the macOS background service are not the same thing. After switching devices, check that the right configuration is selected, the rule mode matches, and your node selection was retained. A similar-looking home screen doesn’t mean the running state has synced.

Prefer menu bar controls? Check the specific ClashX Meta release

ClashX Meta works more like a macOS menu bar utility, making it a good fit if your main tasks are switching nodes and configurations. If you rely on newer protocols or complex DNS settings, check the release’s core details and maintenance status first. ClashX, ClashX Meta, and other ClashX-named forks are not interchangeable installers.

  1. Open the Apple menu → About This Mac and check “Chip” or “Processor.”
  2. For Apple Silicon, choose a package marked ARM64 or Apple Silicon. For Intel, choose x64 or Intel. If a Universal package is available, check the release notes to confirm it includes your architecture.
  3. Check the system requirements. For example, if your Mac runs macOS 13 Ventura, make sure the package supports macOS 13 or later. Version 13 is just an example—not a shared minimum requirement for all three clients.
  4. After installing, run only the client you’re testing to avoid leaving another proxy service running in the background.

Windows and mobile: rule out platforms that don’t fit

Windows: compare background services and connection troubleshooting

Windows users can choose between Clash Verge Rev and FlClash. If you need detailed rule matching, connection information, and configuration overrides, compare their desktop workflows. If you already use FlClash on Android, try its Windows version first to spend less time learning a new interface. ClashX Meta is for macOS and isn’t a Windows option.

Enabling TUN or installing a service may trigger a system permission prompt. Make sure it comes from the client you just installed before granting access. On a managed work PC, check whether network services are allowed by your device policy instead of repeatedly reinstalling the client or disabling security settings.

Android: check VPN permissions, background activity, and configuration compatibility

Of these three clients, FlClash has an Android version. The first time you establish a VPN connection, Android displays a system permission dialog. You still need to select a valid configuration afterward. In most cases, a user profile can have only one active VPN service, so other VPNs, packet capture tools, or local filtering apps may compete for the connection.

If the connection drops when your screen locks, check battery optimization, background activity, and auto-start settings, then review the client logs. Menu names vary between phone manufacturers, so don’t rely on screenshots from another brand. A desktop “system proxy” is also not the same as Android’s VPN-based traffic routing.

iPhone and iPad: choose a compatible client separately

Don’t use an Android installer or macOS disk image on iOS or iPadOS. These three clients don’t provide a complete shortlist for choosing an iPhone app. Check which apps are actually available in your region, then confirm supported protocols and subscription formats. A subscription provider may offer different URL formats for different clients.

Subscriptions, rules, and TUN: check whether your configuration will work

Check the subscription format before planning a migration

YAML is a text format that uses indentation to represent structure. A complete Clash configuration usually includes more than nodes; it may also contain proxy-groups, rules, and dns settings. Importing a node-only subscription won’t produce the same result as importing a configuration with full routing rules.

When migrating, use the subscription provider’s link marked for Clash Meta or mihomo, if available. Whether an older Clash format works depends on the protocols and fields it uses. If you see “unsupported proxy type,” check core support and the configuration. Don’t share subscription URLs containing tokens in public logs or with unfamiliar conversion sites.

Understand the difference between rule mode and traffic routing

  • Rule mode: Applies rules to connections that have reached the core, choosing direct, proxy, or another action.
  • System proxy: Routes requests from apps that honor system proxy settings through a local proxy port.
  • TUN mode: Uses a virtual network interface and related routes to capture more traffic, usually requiring permissions and routing and DNS configuration.

TUN doesn’t mean “all requests go through the proxy.” Once traffic reaches the core, rules, excluded routes, and platform limits still apply. If a browser works but a terminal doesn’t, the terminal may not be using the system proxy—that doesn’t necessarily mean the node is down.

Run a reproducible test using an explicit port

This example explains mihomo configuration fields; it isn’t a complete subscription you can import. 7890 is an example mixed proxy port, not a shared default for all three clients.

mixed-port: 7890
allow-lan: false
mode: rule

Once you’ve confirmed the mixed port the client is actually listening on, run an explicit proxy test in a macOS or Linux terminal. The command below assumes the port is 7890; replace it if the interface shows a different number. A response only confirms that this request completed. Check the connection history to see whether it used the proxy or went direct.

curl -I --max-time 15 --proxy http://127.0.0.1:7890 https://example.com

Migrate clients by changing one variable at a time

Don’t copy the entire data directory from your old client over the new one. Subscription URLs and hand-written rules may be portable, but databases, login items, service state, and interface preferences are often client-specific. Follow these steps to separate configuration issues from traffic routing problems.

  1. Note your old settings: Record the subscription source, current node, operating mode, listening port, and any rules you added. Store passwords and tokens only in a trusted location.
  2. Turn off the old client’s traffic routing: Disable its system proxy and TUN, then quit the app. If you installed a background service, check whether it’s still running after you quit.
  3. Import the original configuration: Add the subscription to the new client and update it once. Check the update results and make sure the proxy groups aren’t empty.
  4. Test the basic connection first: Keep the same node and rule mode. Test the system proxy or explicit proxy first, then test TUN separately.
  5. Restore custom settings one at a time: Add rule overrides, DNS settings, and auto-start in sequence, checking the logs and connection history after each change.

If two apps both try to listen on 127.0.0.1:7890, the one started second may fail to bind the port. Even on different ports, two TUN instances can compete over routes or DNS. During testing, use only one traffic routing method at a time to get reliable results.

In macOS 13 and later versions with a similar Settings layout, go to System Settings → Network → your current network connection → Details → Proxies to check for leftover settings. If HTTP or HTTPS proxy settings still point to a local port used by a closed app, note the original values before turning off settings left by your test. Don’t remove proxies configured by your organization.

Choose which client to keep by testing the same tasks

Don’t judge a client by the latency number on its home screen alone. Latency tests may use different URLs, timeouts, concurrency levels, and connection reuse methods. Different numbers for the same node don’t prove that one interface makes the connection faster.

  • Check the subscription: Update it once and confirm the node count and proxy group names match what you expect.
  • Check routing: Open one site that should go direct and one that should use the proxy, then verify the rules and exit route in the connection history.
  • Check the terminal: Test explicit proxy settings and the TUN routing you actually need. Don’t mistake the effect of environment variables for TUN behavior.
  • Check recovery: Test once after waking from sleep, then switch from Wi-Fi to a phone hotspot and confirm DNS and connections recover.
  • Check maintenance tools: Find the logs, core information, and subscription update settings so you can troubleshoot common issues yourself.

Choose based on your needs: try Clash Verge Rev for desktop troubleshooting and rule management; FlClash for a consistent Android and desktop workflow; or ClashX Meta for macOS menu bar controls, after checking its release status and required features. Keep one client as your daily driver and save a restorable configuration backup—this makes troubleshooting more reliable than switching clients frequently.