CLASH SYSTEM BIOS Open source code · Continuously maintained clients

Clash Client Download Center Cross-platform clients and configuration references

Choose a client for your device, then import a subscription, select a policy group, and configure the system proxy. The site brings together free clients, open-source cores, and Chinese configuration guides so you can look up fields and troubleshoot issues after installation.

Free forever Open source Five device platforms YAML configuration references Step-by-step troubleshooting

BIOS SETUP / CLIENT FUNCTIONS

Clash core features and configuration

Choose a feature on the left. The panel on the right explains what it affects, when to use it, the recommended sequence, and configuration boundaries that are easy to miss.

PROFILE INPUT / YAML

Subscription links, remote profiles, and local YAML

Clash clients typically read configuration from a subscription URL, but they can also import a local YAML file. A subscription URL is the entry point for retrieving configuration; the YAML file contains details such as ports, proxy nodes, policy groups, rules, and DNS settings. On first use, add the complete URL to the profile manager, wait for the client to parse it, and then set the new profile as active. Treating a web page URL as a node, omitting characters from the link, or importing ordinary text will make the configuration unreadable.

After a successful import, do not repeatedly add the same URL. First check that the profile name, update time, and proxy groups appear, then open the policy page to choose a node. Remote updates can replace content managed by the provider, while local edits may be overwritten by the next update; rules that must persist are better placed in the client’s override, merge, or script configuration. See the complete sequence in the user guide.

DEVICE DOWNLOAD MAP

Open the Clash download page for your device

The homepage only helps you identify the right platform. Client models, processor architectures, system requirements, and package links are collected in the download center.

DEV 00 / WINDOWS

Windows client

For Windows desktop devices. The download page separates GUI clients by current maintenance status and provides installers for common x64 hardware. After installation, import a profile before enabling the system proxy; if you need to capture more app traffic, check service mode and TUN permissions.

[ Go to Windows downloads ]

DEV 01 / MACOS

macOS client

macOS packages are split between Intel and Apple Silicon. Check the chip type in About This Mac before choosing a file. The first launch may require approval in System Settings; enabling TUN or a system extension may require additional authorization shown by the client.

[ Go to macOS downloads ]

DEV 02 / ANDROID

Android client

Android devices typically require an installer matched to the ARM architecture; on newer devices, check the ARM64 build first. After importing a subscription, the system will request VPN permission to establish the connection. If it disconnects after running in the background, review battery optimization, background restrictions, and the always-on VPN setting.

[ Go to Android downloads ]

DEV 03 / IOS

iOS client

iPhone and iPad install available clients through the App Store. After adding a subscription, the system will ask you to approve the VPN configuration. Cross-check the connection status in both the client and the system VPN settings. If cellular and Wi-Fi behave differently, check DNS, local-network permission, and the active policy separately.

[ Go to iOS downloads ]

DEV 04 / LINUX

Linux desktops, servers, and routers

Linux users can choose a desktop client for their distribution or use the Mihomo core directly. GUI clients suit desktop environments, while the core is better suited to servers, containers, and routers. When selecting a file, confirm both the system architecture and package format. Command-line use also requires a configuration path, service permissions, and a startup method.

[ Go to Linux downloads ]

ARCHITECTURE CHECK

Confirm the processor architecture before installing

macOS mainly distinguishes Intel from Apple Silicon. Android commonly uses ARM64 or ARM, while Linux may involve AMD64, ARM64, ARMv7, or other device architectures. The architecture label in the filename must match the device.

CLIENT OR CORE

Desktop users should generally choose a GUI

Graphical clients provide profile management, policy switching, logs, and system-proxy controls. The Mihomo core is better suited to server or router users who are comfortable with the command line, service management, configuration paths, and network permissions.

FIRST BOOT

Installation does not enable the proxy by itself

After launching the client, you still need to import a valid profile, choose a policy group and node, and enable the system proxy or TUN for your use case. Verify connectivity through an actual request, the exit status, and the runtime logs.

OPEN SOURCE CONTEXT

The Clash open-source ecosystem and its boundaries

Clients, cores, configuration providers, and site documentation occupy different layers. Understanding those boundaries makes downloading and troubleshooting more direct.

Project history: from rule-based proxy cores to a multi-client ecosystem

Clash first became widely used as a rule-driven proxy core with a structured configuration format. Around these capabilities, the community built desktop, mobile, and command-line clients. Different clients share concepts such as proxy nodes, policy groups, rules, DNS, and system proxies, but their interfaces, maintenance status, platform support, and extension capabilities are not identical. “Clash” therefore usually refers to a configuration and usage ecosystem, not one installer covering every platform.

Some early clients are no longer maintained, but they may still appear in searches because of older guides and legacy configurations. When choosing a client, put its current maintenance status, system support, and configuration compatibility ahead of interface preferences. The download center labels maintained and archived clients separately so names from old tutorials are not mistaken for the current first choice.

Open-source ecosystem: separate layers for code, configuration, and GUI clients

Open-source code lets the community inspect core behavior, configuration fields, and issue reports, while enabling different developers to build graphical interfaces for each platform. GUI clients handle profile management, system-proxy switches, tray actions, logs, and installation updates; the core reads YAML, establishes connections, matches rules, and handles DNS and TUN. When something fails, first identify whether the problem is in the interface, configuration, core, or system network layer. That is more effective than repeatedly reinstalling.

Subscription services are separate from the client itself. The client reads the configuration and executes its nodes, policy groups, and rules; the configuration source maintains the subscription content. Check the source for inactive nodes, subscription access, or traffic status. YAML parsing errors, occupied ports, a disabled system proxy, and TUN permission issues are better investigated through client logs and system settings.

Core relationship: Mihomo continues and expands common configuration capabilities

Mihomo is a common open-source core implementation in the current Clash ecosystem. It preserves core concepts such as rules, policy groups, DNS, and proxy protocols while continuing to expand configuration fields and runtime capabilities. Whether a client uses Mihomo, which fields it supports, and how it applies overrides depend on that client’s documentation. Copying every field supported by one core into an older client does not guarantee that the configuration will parse.

The site’s configuration references focus on general YAML structures and commonly used Mihomo fields, while explaining dependencies between fields. Before editing, keep a recoverable copy. Change one related group of fields at a time, then use the logs to confirm that the configuration loads. Changing ports, DNS, TUN, rules, and policy groups all at once makes the source of an error difficult to locate.

Update model: handle client versions and configuration updates separately

Updating the client program and updating a subscription configuration are separate paths. A program update may change the core, interface, or system compatibility; a subscription update mainly refreshes nodes, policy groups, and rules. When connections fail, do not treat “update subscription” and “upgrade client” as the same step. First confirm that the current profile parses, then check the client’s maintenance status and system compatibility before deciding whether to migrate.

The download page parses the current file links from a unified manifest, and version slots appear only when the manifest provides valid information. The homepage does not show version numbers, avoiding the impression that one client’s program version is a single version for the entire Clash ecosystem. Documentation is continually organized by configuration concepts, platform differences, and issue types for reference after installation.

CONFIG IMPORT

No nodes after importing a subscription link?

First confirm that the URL returns configuration the client can read, then check whether the profile is set as active. If the parsing log reports a YAML syntax error, start with indentation, field types, and list nesting.

View installation and configuration issues →

SYSTEM PROXY

The client is running, but the browser is not proxied?

Check that the system proxy is enabled, whether the browser uses separate proxy settings, and whether the active policy group has a node selected. Then use the logs to confirm that the browser connection reaches Clash’s listening port.

View connection troubleshooting →

UWP LOOPBACK

Windows Store apps cannot connect?

Some UWP apps are subject to loopback access restrictions. After confirming that ordinary desktop apps work through the proxy, check the UWP loopback setting provided by the client and enable the required permission only for the apps that need it.

View Clash UWP loopback settings →

DNS ROUTE

How can you tell whether the DNS path is the problem?

Check the system resolver, browser Secure DNS, the Clash DNS module, and upstream servers separately. If the domain resolves but the connection still fails, continue checking rules, nodes, and IPv6 routing.

View DNS and network modes →