mihomo core · Clients for every platform, regularly updated

Clash Official Site for ChinaClash Downloads for Every Platform

Choose a client for your OS, then follow the steps for subscription setup, routing rules, and Troubleshooting.

Open-source ecosystemYAML configurationGuides in Chinese

Rule-based routing
and essential client settings

View setup guides

Clash setup has three layers: the configuration defines proxies and rules, the mode determines how connections are handled, and the system proxy or TUN controls which traffic reaches the client. Understand these layers first, then enable features one at a time. This makes results easier to reproduce than changing several settings at once.

The window below is an illustration, not a running client. Menu names and locations vary by app, but subscriptions, proxy groups, rules, and DNS work in much the same way. Select a tab to see what each feature does; after you interact with the demo, it stays on the selected tab.

Clash · Subscription management demo

Add subscription

Subscription URL · Example
+https://example.com/sub?token=xxxx
Update configurationMake sure the download succeeds before activating it
Import configuration

Client downloads
Choose your OS and architecture

Browse all clients →

A client combines an interface with background capabilities. Installation, permissions, and traffic entry points vary across operating systems. If you're new to Clash, start with Clash Plus, our top pick in the download center. Linux users can also explore Clash Verge Rev and FlClash. If you already have a configuration, check core compatibility and feature support before migrating; there's no need to change your subscription and rules just to try a different interface.

Before installing, check your processor type in system settings. Packages with similar names may target different architectures, so don't choose by file size alone. The download page lists available clients and system requirements; the platform links on the home page take you to the relevant OS section and don't start a download. Archived clients are marked with their maintenance status, so you can distinguish everyday options from references for older configurations.

Windows

A good fit for desktop browsers and everyday apps. Check system requirements and processor architecture first, then enable the system proxy or service mode as needed. Launching the client doesn't automatically route traffic from every app.

Go to downloads

macOS

Choose the right installer for Apple Silicon or Intel. Follow the system prompts for permissions on first launch. Before enabling network features, check the system proxy settings; after quitting, make sure your original network settings are restored.

Go to downloads

Android

Import a configuration after installing, then approve the system VPN permission when connecting for the first time. If the connection drops in the background, check battery optimization and background activity limits instead of repeatedly switching nodes.

Go to downloads

iOS

Find Clash Plus on the App Store; its official site is clashplus.io. After installing, follow the app's prompts to add a configuration and grant VPN permission. Before connecting, make sure the right subscription and proxy group are selected.

Go to downloads

Linux

For desktop use, choose a GUI client and the package format for your distribution. Server and router users can explore the core section and manage configuration paths, process permissions, and background services themselves.

Go to downloads

Not sure which client to choose? Start with the client comparison and focus on platform support, configuration management, and traffic routing. Don't confuse the client, core, and subscription service: installing the app alone won't provide usable proxy nodes.

Set up a subscription
Three steps to test your connection

View the full guide →

For your first setup, start with the essentials: a valid configuration, a selected proxy group, and an enabled traffic entry point. Keep other settings unchanged and confirm that you can connect before adding automatic updates, routing exceptions, or LAN sharing. That way, if something goes wrong, you can pinpoint which step changed.

Import and activate a subscription

Open the subscription or configuration page in your client, paste the full URL, and import it. Once the configuration appears, make sure it's selected as the active one and check that its proxy groups have loaded. If you see a format error, first check whether the link returns configuration content; don't use a regular webpage URL as a subscription URL.

See how to import a subscription →

Choose a mode and traffic entry point

Select Rule mode, then choose an available node in the relevant proxy group. On desktop, enable the system proxy first; test TUN only if you need to route apps that ignore it. On mobile, approve the VPN permission prompt and avoid running another app that uses the same kind of network entry point.

Learn about proxy modes →

Check connections and logs

Open a site you want to visit, then check the client's connection list to see whether the request appears, which rule matched, and which route it used. Once it connects, test other apps. If there's no request in the log, check the traffic entry point first instead of changing the node protocol or DNS settings.

Troubleshoot connection issues →

Open-source core
and the Clash client ecosystem

Read the configuration guide

Know the difference between the client, core, and configuration

In the Clash ecosystem, GUI clients manage subscriptions, proxy selection, and system integration; the core handles protocol connections, DNS, and rule matching; and the configuration defines how nodes, proxy groups, and rules fit together. An app's name doesn't necessarily tell you which core it uses. Whether a configuration can be migrated depends on the target core's support for its fields and protocols, as well as the client's override mechanism. The same file extension alone doesn't guarantee compatibility.

mihomo follows the technical lineage of Clash Meta and is a widely used open-source core in the Clash ecosystem. Older articles may refer to Clash, Clash Meta, or current client names interchangeably, so check the specific project when following instructions. Open source doesn't mean every client has the same interface or defaults. When troubleshooting, note the client name, platform, and actual core version to avoid applying steps that don't fit your setup.

Explore the implementation and changes in the public repository

mihomo is released under the GPL-3.0 license. Its source code, commit history, and issue discussions are available in the public repository. Release notes can help you identify changes to configuration fields, protocol support, or network behavior. Star counts, download numbers, and latency figures aren't measures of connection quality: your experience also depends on the server, network path, and local settings. Public source code offers a way to review and trace the implementation, not a guarantee about any particular connection.

Most users don't need to compile the core. If you use a GUI client, follow its update instructions and make sure the bundled core remains compatible with your configuration. Replacing the core manually can cause permission, path, or interface compatibility issues, so it's best left to users who can restore their setup themselves. For server deployments, define the working directory, log location, and startup arguments; desktop client buttons don't translate directly to background services.

mihomo / GPL-3.0

Get the core source code

The commands below clone the public repository for code review or development setup only. They won't install a desktop client or configure a proxy automatically.

git clone https://github.com/MetaCubeX/mihomo.git

Protect configuration and personal information

Subscription URLs may contain access credentials. Before asking for help, redact the full URL, account details, and server authentication information. Logs may also include domains, device addresses, or file paths, so review them and remove anything unnecessary before sharing. To describe a problem, it's usually enough to include what happened, how to reproduce it, the matched rule, and the error type. There's no need to publish your entire private configuration.

If routing doesn't behave as expected, first check which configuration is active, then review rule order and data files. If no nodes connect, check your local network and service status first. The site's GeoIP update guide and rule troubleshooting section cover data loading and routing logic separately. Follow the guide that matches your symptoms instead of changing everything at once.

Configuration guides
and recent how-tos

Browse all articles →

Once you have a basic connection, explore advanced topics as needed. Configuration structure guides are for users editing YAML; traffic routing comparisons help you decide whether to use TUN; and subscription update guides explain how to distinguish link problems, download failures, and configurations that haven't been activated. Each article focuses on a specific task, so you don't need to read every setting before getting started.

Still not sure if the problem is installation, configuration, or traffic routing? Browse the Help Center by topic. If the client starts but you can't connect, check in this order: local network → active configuration → proxy group → traffic entry point → rules and DNS. Record what you find at each step to avoid introducing new variables while troubleshooting.