Open-source core · Windows clients updated regularly

Clash Windows EditionWindows client downloads and setup guides

Follow the steps from choosing a client to verifying your connection, including system proxy, TUN mode, and rule-based routing.

  • Free and open source
  • mihomo core
  • Rule-based routing
  • TUN mode

Client Downloads

Choose a Clash client for your device

Check your operating system and processor architecture before choosing a package. Desktop GUI clients are suited to everyday use; core packages are for users who want to manage configuration and services themselves.

Install packages, clients, and subscriptions are three separate parts of the setup. Installing a client provides local configuration and traffic forwarding; connecting also requires a working service configuration. If you already have a subscription, check that its format is compatible with the selected core before importing it. For your first setup, keep the default ports and routing mode until the connection works, then adjust advanced options.

When migrating from an older client, avoid replacing the entire data directory. Back up your subscription URL, local rules, and proxy group selections first, then restore them one at a time in the new client. Scripts, override fields, and client-specific settings from an old configuration may not carry over unchanged. If errors occur, test the original subscription before adding local modifications.

Browse all clients →

Settings overview

System proxy, TUN, and routing settings

These interface snippets explain settings; they are not interactive client windows. Menu locations vary by client, but the troubleshooting order can stay the same: configuration, core, listening ports, traffic entry point, and matching rules.

Route apps that follow system settings through the proxy

The system proxy points Windows to the client’s local listening port, making it suitable for browsers and apps that follow system settings. Import a working configuration and make sure the core is running before enabling it. If only some apps connect, that does not necessarily mean the subscription is invalid; some programs use their own network stack and need a separate proxy setting or TUN. The client toggle makes it easier to enable or disable the proxy than changing system settings manually. When troubleshooting, close other proxy tools first to prevent them from repeatedly overwriting the same setting.

See this step in the guide →

Verify the connection: check the entry point, then the destination

An enabled toggle only shows that the client tried to apply a setting; it does not mean every app is using the proxy. First, test a destination in a browser that follows the system proxy, then check whether the request appears in the connection log. If nothing appears, check the system proxy, app-specific settings, and listening port first. If a request appears but fails, check the proxy group selection, DNS resolution, and service configuration. This order separates local entry-point issues from problems connecting to the remote service.

Latency tests reflect results for a particular test address and method; they cannot replace testing in the apps you actually use. Browsing, downloads, and real-time communication have different requirements, and passing one test does not guarantee access to every destination. Note the failing app, time, current mode, and matched rule, then change one setting at a time. This is usually more effective than reinstalling the client, changing ports, and editing DNS all at once. Learn about node latency and connection testing →

Open-source ecosystem

How Clash, Meta, and mihomo are related

Client names, core names, and subscription formats often come up together. Understanding what each one does makes it easier to choose the right software and figure out where to start troubleshooting.

Core development and configuration compatibility

The Clash ecosystem includes a core and multiple independently maintained GUI clients. After the original Clash project was discontinued, community development continued; the Clash.Meta fork later adopted the name mihomo. Meta in older guides and mihomo in newer documentation are often related, but that does not mean every old configuration works with current clients. When reading a guide, check which core family and environment it refers to.

Configuration compatibility is about more than whether a YAML file can be read. Support for a protocol, DNS option, or rule type depends on the core implementation; subscription imports, service mode, and startup behavior depend on the client. If a feature is missing, first identify which layer provides it. Changing the GUI does not necessarily change core capabilities, and updating the core does not necessarily move the client's menus.

When comparing protocols, focus on what your service supports, whether your device has the resources to run them, and how well they fit your network conditions. A protocol's name alone does not predict connection performance, and no single protocol is the right choice for every situation. On mobile devices, consider background operation and battery use as well. Read the protocol and core reference →

Source code and release notes

Open-source repositories help you review a project's implementation, license, and issue discussions. The mihomo community maintains its source code and documentation, while release notes describe feature changes and fixes. This site provides download links and Chinese-language guides; it does not replace upstream release notes or treat clients maintained by different teams as the same product. When choosing a client, check its current maintenance status and compatibility with your system.

Before updating, save your local rules, override settings, and a working configuration. After installation, check that the core starts, then test the system proxy or TUN. If the update affects DNS, routes, or configuration syntax, retest each one separately. For everyday use, prefer stable releases; consider other channels when you need a specific fix. Do not assume a newer installer is the right choice without checking migration notes and support for your current system.

The commands below fetch mihomo source code for development or review; they are not steps for installing a GUI client. Git must already be installed on your device. If you just want to use the software, go to the downloads page and choose a client. Copying the commands does not run them or change your local proxy settings.

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

Three things to check when getting started

Why can't I connect after installing the client?

After installing the client, you still need to import and activate a working configuration. First check that it parses successfully and that its proxy groups are available, then verify the traffic entry point through the system proxy or TUN. Subscription download failures and proxy connection failures are separate issues with different error messages. Resolve import problems before testing the connection. See the subscription import steps →

Do I need to enable both the system proxy and TUN?

You do not need to enable both by default. Start by testing the system proxy with apps such as browsers that follow system settings; enable TUN from the guide if you need to capture traffic from other apps. How the two work together depends on the client and routing setup. Test them one at a time while watching for interference from other VPNs or virtual adapters. See the TUN setup steps →

Why did my local rules change after updating the subscription?

A remote subscription update usually fetches the original configuration again. If you put local rules directly in that file, an update may replace them. Store exceptions in the client's supported override or merge area, and check the order of the merged rules. When moving to another client, confirm how its override feature works instead of simply copying the file. See how to maintain rules →

Configuration and troubleshooting guides

Guides to subscription updates, app routing, and TUN

Once the basic connection works, dig into the issue you're facing. Before troubleshooting, note the client name, current mode, and error message. Remove subscription URLs and connection credentials before sharing logs.

Download Clash