Open-source mihomo core · Cross-platform clients

Clash Chinese EditionCross-platform client downloads

Rule-based routing, subscription imports, and YAML configuration—from choosing a client to verifying the outbound route.

Configuration guidesOpen-source core ecosystemClients by platform

Rule-based routing and match order

A single configuration can send different connections through different exits. Set mode to rule, then list rules from most specific to broadest. Domain suffix rules work well for related sites, while address rules target specific network ranges. Use MATCH last to catch everything else. Once a rule matches, its specified policy is used; later rules are not checked. Unlike global mode, rule mode lets you handle traffic by category. If routing does not behave as expected, check the matched rule in the connection log and adjust the order before switching nodes.

View the rules field
config.yaml · rules
mode: rule
rules:
  - DOMAIN-SUFFIX,github.com,Proxy
  - GEOIP,CN,DIRECT
  - MATCH,Proxy
↖ rules · First match wins

Download Clash clients by platform

Choose your operating system, then check your processor architecture and installation format. The downloads page lists clients, system requirements, and installation links; this page provides platform navigation without mixing in installers.

Windows

For everyday desktop use, start with Clash Plus, then compare how Clash Verge Rev, FlClash, and Clash Nyanpasu manage configurations. Before downloading, check the system type in your settings to confirm your processor architecture. Do not choose an installer based on your computer's brand alone.

Import and select your subscription, then enable the system proxy. TUN may require a service component. Check startup and automatic proxy settings separately, and verify that the system proxy is restored after quitting.

Go to Windows client downloads

macOS

Open About This Mac and use the chip information to choose an Apple Silicon or Intel installer. Compare Clash Plus, Clash Verge Rev, and FlClash on the downloads page. ClashX Meta is listed separately as an archived, unmaintained project so its status is clear.

Move the client to Applications and complete setup. Import a configuration, choose a proxy group, and enable routing. If macOS blocks the app, verify its source and review the permission prompt rather than disabling system security.

Go to macOS client downloads

Android

Choose from Clash Plus, Clash Meta for Android, FlClash, and Surfboard based on your needs. The installer must match your device architecture. If you are unsure, check your device details and the download page rather than repeatedly trying installers for different architectures.

Grant VPN permission, select the imported configuration, and start the connection. Disconnect other VPN apps first. If the connection drops when the screen locks, check battery optimization and background activity settings; their names vary by manufacturer.

Go to Android client downloads

iOS

iPhone and iPad users can find the Clash Plus store link on the downloads page. For product information, see the official site at clashplus.io. Follow the store's current guidance for installation and system compatibility. Subscription services and client installation are handled separately.

Import a working subscription or local configuration, grant VPN permission, then select and enable it. If connection fails, check subscription expiry, node availability, and other active VPNs. Installing a client does not provide nodes automatically.

Go to iOS client downloads

Linux

For desktop Linux, compare Clash Verge Rev and FlClash, choosing a supported package format such as DEB or RPM for your distribution. For servers, routers, and secondary routers, see the core section on the downloads page and choose mihomo for your processor architecture and runtime environment.

Check desktop proxy settings, shell variables, or TUN routes as appropriate; a running GUI alone does not route traffic. For standalone core deployments, verify configuration paths and permissions, then test in the foreground before enabling a system service.

Go to Linux client downloads

Open-source cores and client ecosystem

Understanding the interface, core, and configuration source as separate parts makes it easier to choose a client and troubleshoot issues. This site organizes download links and configuration guides; each client is maintained by its own project, with its own features and release schedule.

How Clash, Meta, and mihomo relate

The Clash ecosystem has grown around rule-based proxying, with a range of cores and graphical clients. Early configuration conventions are still widely used, and many field names appear across projects. Clash Meta continued development under the name mihomo. Even when a client uses the familiar Clash name, check which core it actually runs rather than assuming every product supports the same protocols and fields. This is especially important when migrating an older configuration: successful parsing is only the first step. Also check proxy group references, rule data, and DNS behavior.

Graphical clients display configuration lists, proxy selection, logs, and system routing controls; the core handles connections and traffic routing. Their release schedules may differ, so an option in the client interface does not guarantee every underlying capability is supported. If a field is rejected or behavior differs, check the current core notes and project documentation before deciding whether to change the configuration or update the client. This site's configuration reference focuses on commonly used mihomo fields and does not imply that different cores share identical syntax.

Open source: trace implementation from the docs

You can browse mihomo's source code, project documentation, and issue discussions in its public repository. Open source makes it possible to trace field definitions, review changes, and connect reproducible issues to their implementation—not just rely on brief claims on a download page. For a rule type or DNS option, start with the official documentation's scope, then check repository discussions for edge cases. When filing an issue, include your operating system, routing method, a minimal configuration, and relevant logs so the discussion can focus on reproducible behavior.

Cloning the repository is for reading source code and documentation, not installing a graphical client. If you just need a client for everyday use, go to the downloads page. If you want to study the core, track changes, or build it yourself, use the command on the right to get the source. Before sharing a minimal configuration, remove subscription URLs, account details, and node credentials; keep only the relevant fields and rules needed to reproduce the issue. Do not post a complete private configuration in a public discussion.

Updates: clients, cores, and subscriptions are separate

A client update changes the interface and integrations; a core update can affect protocols and configuration behavior; refreshing a subscription updates content from the provider. These are separate operations: a successful subscription refresh will not fix installer compatibility, and updating the client will not extend a subscription. Before troubleshooting, identify which update is running, then check network requests, configuration parsing, or permissions as appropriate. Keep a separate backup of custom rules and verify they still apply after refreshing the subscription.

Before updating, save the working configuration and any essential settings. Afterward, verify the basic connection, then check custom routing, automatic proxy groups, and DNS. Archived clients are clearly marked on the downloads page to help identify them when migrating older setups; for a new installation, start by comparing actively maintained options. The home page does not pin release numbers: the downloads page is the single place for current installers and client details, so you do not have to compare information across multiple pages.

Verification: check the matched rule, not just the toggle

A lit connection toggle only means the client is running; it does not prove that an app is using the intended route. Open a specific destination and check its domain, matched rule, and selected policy in the connection list. Then test an app that ignores system proxy settings to see whether TUN is needed. If the browser works but other apps fail, check the routing method first; if nothing works, check the node and basic network connectivity. Change one thing at a time to avoid conflating DNS, node, and rule issues.

For more detailed steps, start with the user guide. To look up configuration fields, go straight to the configuration reference. Subscription conversion involves format compatibility and trust in the service; read the subscription conversion guide before deciding whether to use one. If the client does not connect automatically at startup, check launch at startup and proxy startup settings separately—they are not the same toggle.

Clash guides and configuration articles

From choosing nodes and managing multiple configurations to router deployments, these articles add practical context for specific questions. The user guide covers basic imports; articles focus on trade-offs, limitations, and troubleshooting steps.