Open-source core mihomo · Clients for every platform, regularly updated

Clash clients Downloads androuting rules

Choose a client for your device, manage traffic with routing rules, and follow the setup guides to configure subscriptions, system proxy, and DNS.

Open-source coreRules and proxy groupsConfiguration examples
SETTINGS / CONFIG

Clash settings and configuration in context

First, understand how traffic reaches the client; then decide where requests should go. These six configuration snapshots cover common entry points. Interface labels may vary by client, and configuration fields depend on the core in use.

Settings / config.yaml

Use Rule mode as your everyday default

Routing mode
✓ RuleGlobalDirect
mode: rule

Rule mode uses the rules in your configuration to choose an outbound, making it suitable when you want both direct and proxied connections. Global mode sends requests that have reached the core through the selected global policy; it can help troubleshoot rule mismatches, but does not automatically capture traffic from every app. Direct mode connects those requests straight to their destinations. After switching modes, make a new request and check the connection log to confirm which rule and outbound were used. Existing long-lived connections may keep their original route, so close and retry them. For everyday use, start with Rule mode and check which outbound the proxy group actually selects.

Learn about routing modes →

What the profile, client, and core each do

A profile stores proxy entries, proxy groups, routing rules, DNS settings, and other configuration. The client imports subscriptions, displays connection details, and manages the system proxy or service permissions. The core reads the final configuration and handles DNS resolution, rule matching, and traffic forwarding. Changing a switch in the interface does not necessarily modify the original subscription file. When troubleshooting, check the runtime configuration generated by the client rather than relying only on the original subscription.

The YAML snippets above are partial examples. Before copying anything, back up a working configuration and check the indentation, proxy group names, and core compatibility. For your first connection, test one configuration with one traffic capture method. Once the result is repeatable, add rule sets, overrides, and automatic selection. To understand individual fields, start with the Glossary, then see the Advanced Configuration Guide for complete examples.

PLATFORM / CLIENT

Choose a Clash client for your platform

Browse all clients →

Check your operating system and processor architecture before choosing a client. Clients built around the same core may still differ in interface, permissions, and configuration overrides. The download center lists installers and system requirements; this page provides platform links, not installation packages.

Windows

For everyday desktop use, start with Clash Plus. If you already manage routing rules, compare Clash Verge Rev, FlClash, and Clash Nyanpasu as well. Check your system type before installing, and don't confuse processor architecture with operating system bitness.

On first launch, import a subscription, select Rule mode, then enable the system proxy. If your browser connects but terminal apps do not, check whether those apps use the system proxy. Decide whether you need TUN or service mode based on the apps you use, rather than changing several settings at once.

Download for Windows →

macOS

Check System Information to see whether your Mac has Apple silicon or an Intel processor, then download the matching installer. Clash Plus, Clash Verge Rev, and FlClash offer different configuration interfaces. Before migrating from another client, save your subscription and any local overrides.

After installation, grant any permissions requested by macOS and check whether the client configured the proxy for your current network service. Recheck the proxy settings after switching Wi-Fi networks, connecting a dock, or using another VPN. Turn off the system proxy before quitting the client to avoid apps trying to connect through a local port that is no longer listening.

Download for macOS →

Android

The download center lists Clash Plus, Clash Meta for Android, FlClash, and Surfboard. Check your device's supported architecture before choosing an installer. Supported configuration formats and fields depend on the app; being able to paste a subscription URL does not guarantee compatibility.

Your first connection requires system VPN permission. If the connection drops when the app goes into the background, check battery optimization and background activity permissions, then review the client logs. Per-app routing and domain-based rules work at different levels: the former determines which apps are captured, while the latter chooses the outbound for captured requests.

Download for Android →

iOS

iPhone and iPad users can open the Clash Plus App Store page from the download center. Its official website is clashplus.io. After installing, add a subscription or configuration, allow iOS to create a VPN configuration, then return to the client and connect.

The connection icon only indicates that traffic capture has started; it does not confirm that every rule is working as expected. Test with the apps you actually use and check the selected proxy group and profile update time. If another VPN configuration is installed, check which one is active. For troubleshooting, use one traffic capture method at a time to avoid confusing results when switching settings.

Download for iOS →

Linux

Desktop users can compare Clash Verge Rev and FlClash, then choose an installer based on the package format for their distribution. Server and router users can find the mihomo core in the download center and manage the configuration directory, startup options, and service themselves.

The desktop system proxy may not cover command-line programs, which may need separate proxy environment variables. When using TUN, also check permissions, routing, and firewall settings. Before deploying a long-running service, load the configuration in the foreground and review the startup logs. Once you confirm the ports are listening, hand it over to your service manager.

Download for Linux →

Keep track of where your configuration came from when migrating clients

Reimport the original subscription instead of copying another client's entire working directory. Interface preferences, service settings, and caches usually cannot be transferred directly. Migrate local rules one by one using the new client's supported override method. Keep a working configuration until you have verified the new setup, then remove the old client. This gives you a way to roll back if permissions or DNS behave differently.

If Global mode works but Rule mode fails, check that every proxy group referenced by your rules exists, then review the match order. If all modes fail, check the local ports and actual outbound first. Routing mode determines how a route is selected; system proxy and TUN determine which traffic is captured. Test these two dimensions separately. See the Glossary for related definitions.

OPEN SOURCE / MIHOMO

Open-source core and client ecosystem

How the Clash configuration model carries on

Clash brings proxy entries, proxy groups, and rule matching together in one configuration model. You can route requests by domain, address, or other conditions without maintaining proxy lists separately in each app. Once you understand the structure, much of the same configuration approach carries over to compatible clients. Compatibility does not mean every field, interface, or update mechanism is identical.

The original Clash project and the ecosystem projects maintained today are distinct. Client names, configuration fields, and permission steps in older guides may no longer match your device. When choosing a client, check its maintenance status, bundled core, and how it handles configuration—not just platform support. Archived clients are labeled separately in the download center to help people migrating from older setups.

mihomo runs the core; the client manages it

mihomo is an actively developed, open-source core in the Clash ecosystem. It handles protocols, rule matching, DNS, and traffic forwarding. Graphical clients add subscription management, proxy group selection, connection logs, and system integration. The settings panel here is a conceptual illustration, not a claim that every client has the same layout or that all platforms use the same traffic capture method.

When comparing clients, evaluate core capabilities separately from interface features. Core support for a field does not guarantee a dedicated toggle in the graphical interface. Likewise, an override feature does not mean the original remote subscription is permanently changed. To verify actual behavior, inspect the runtime configuration, app logs, and project documentation rather than relying on button labels alone.

Browse the source code and issue tracker

mihomo source code, licensing, release notes, and issue discussions are available in the project repository. Read the release notes for protocol fixes, platform limitations, and configuration changes. Before filing an issue, search for matching log messages and check whether you can reproduce it with a minimal configuration. This site provides download links and setup guides; development and release information is maintained in the project repository.

Configuration issues often need context, but never share your entire subscription. Before posting logs or reproduction steps, remove subscription URLs, credentials, and real service addresses. Keep only the relevant rule structure, operating system, client name, and error messages. Reproducing the issue with a minimal configuration also helps keep unrelated settings out of the same report.

Know the difference between three types of updates

Client, core, and subscription updates solve different problems. Client updates affect the interface and system integration; core updates affect protocol and configuration behavior; subscription updates change the remote proxy and rule data. Refreshing a subscription does not install an update, and updating the client does not guarantee that a remote configuration is compatible. Before updating, identify the specific issue you want to resolve.

Keep a rollback-ready configuration and read the change notes before updating. After an update, confirm that the configuration loads, then test your commonly used apps, rule matches, and DNS resolution. For devices that run continuously, note the active traffic capture method and local overrides so you can restore them one at a time if behavior changes. A connection icon or a single successful test does not verify the entire configuration.

Get the mihomo source code

These commands clone the source repository; they do not install a graphical client. Most desktop users can use the download center. Developers can find build instructions and licensing information in the repository.

git clone https://github.com/MetaCubeX/mihomo.git
View the mihomo repository ↗
NOTES / GUIDES

Clash configuration and platform guides

Browse all articles →

Each article focuses on a specific issue: what you can observe and how to investigate it. For a first-time setup, start with the setup guide. If you can already connect but need help with permissions, traffic capture, or proxy selection, jump to the relevant topic rather than changing several things at once.

Choose a guide for your current stage

Haven't imported a configuration yet? Start with the Setup Guide. Already connected and ready to adjust proxy groups, rule sets, or DNS? Read Advanced Configuration. For terms like Profile, fake-ip, and mixed proxy port, start with the Glossary. Change one setting at a time and record the results before and after, so you can tell whether the difference came from routing rules, DNS resolution, or traffic capture.