Open source community · Clients for every platform

Clash client downloadsand configuration guide

From choosing a client to routing traffic by rules, find practical config.yaml references and instructions in one place.

Open sourceYAML configurationDocumentation
config.yaml YAML

config.yaml

Clash Open Source Community · Configuration workspace

Ports and mode

mixed-port: 7890allow-lan: falsemode: rulelog-level: info

DNS

enable: trueenhanced-mode: fake-ipnameserver:- 223.5.5.5- 119.29.29.29

Proxy nodes

name: Example nodetype: ssserver: example.comport: 443udp: true

Proxy groups

select url-test fallback load-balance

Rules

DOMAIN-SUFFIXDOMAIN-KEYWORDGEOIP,CN,DIRECTMATCH,PROXY

Overrides and merging

prepend-rulesappend-proxiesMerge order

More resources

Field excerpts, not a complete configuration. Override keys are interpreted by the client.

FIELD REFERENCE / CONFIG

The six most-edited
sections in config.yaml

Understand inputs, exits, and matching order before changing settings. Ports accept connections, nodes provide proxies, groups organize exits, and rules decide where traffic goes.

These snippets explain individual fields; don't combine them and use them as-is. Node names, group names, and rule targets must match. Check which extensions your core and client support.

Browsers and other apps need a local proxy endpoint. mixed-port accepts both HTTP and SOCKS connections on the same port. Check the listening port shown by your client, then enter it in the app’s settings; this is not the proxy server’s port. If startup logs report that the address is already in use, quit the other proxy process before choosing a different port. Keep LAN access off when using the proxy only on this device. The rule mode routes traffic according to rules, but it does not mean the system is already sending traffic to the core. Configure the system proxy or TUN separately.

mixed-port: 7890
allow-lan: false
bind-address: "127.0.0.1"
mode: rule
log-level: info
ipv6: false
CLIENT DOWNLOADS / PLATFORMS

Choose a Clash client for your operating system

Choose your operating system, then check your processor architecture. A graphical client handles subscription imports, configuration management, and core controls. With a command-line core alone, you'll also need to manage the config path, startup options, and system service. For everyday desktop and mobile use, a graphical client is usually the easier place to start troubleshooting.

Windows

For desktop users who want a system tray, system proxy controls, and visual rule panels. The download page lists clients including Clash Plus, Clash Verge Rev, and FlClash, and retains an archived guide to Clash for Windows.

When migrating from an older client, back up your subscription URL and custom rules first—don't copy the entire application folder. If the app launches but other apps aren't proxied, check the system proxy toggle, listening port, and each app's proxy settings before considering TUN.

Download Windows client

macOS

Check About This Mac to see whether your Mac has Apple silicon or an Intel processor, then choose the right installer. Clash Plus, Clash Verge Rev, and FlClash offer different interfaces and configuration workflows. Check the download page for current system requirements.

System proxy settings and terminal environment variables are separate routes. A working browser connection doesn't mean command-line tools are using the proxy; if terminal requests fail, check which proxy options the tool supports. Installing a helper service requires permissions—follow the client's prompts step by step.

Download macOS client

Android

Mobile users can choose from Clash Plus, Clash Meta for Android, FlClash, and Surfboard. Subscription format support varies between clients. A successful download only means the file was retrieved; it doesn't mean every field in it is supported.

On first connection, approve the system VPN request. If the connection drops after the screen locks, check battery management and background activity restrictions. Another app using the VPN connection may also cause conflicts. For per-app routing, check whether the selected apps belong in the include or exclude list.

Download Android client

iOS

The download page links to Clash Plus on the App Store and lists the official site, clashplus.io. After installing, follow the interface prompts to import a supported configuration. Make sure a selectable node is available in the proxy groups, then allow the app to add a VPN configuration.

Switching between Wi-Fi and cellular can change DNS resolution and available proxy exits. If a page stays stuck loading, first determine whether the subscription failed to refresh, the node failed to connect, or the rule for a particular domain is wrong. Don't assume desktop client scripts will work on mobile too.

Download iOS client

Linux

For desktop, consider Clash Verge Rev or FlClash; for servers and routers, consider the mihomo core. Check the package format, processor architecture, and distribution environment together—seeing Linux in the filename isn't enough.

Command-line tools usually need proxy environment variables set separately; system services don't automatically inherit your current terminal settings. Before enabling transparent proxying, verify the connection through the local proxy port first, then check routing, DNS, and firewall settings. Avoid changing several layers of the network at once.

Download Linux client

Installers provide the runtime; subscriptions provide connection settings. This site covers clients and configuration, but you'll still need a valid, authorized node or subscription. Don't expose subscription URLs or credentials in public screenshots, support requests, or shared configurations.

Browse all clients →
OPEN-SOURCE ECOSYSTEM / SOURCE

Clash, clients, and mihomo

These three names often appear together, but they refer to different things. Choose a client for its usability, check core documentation for configuration fields, and inspect the active configuration when troubleshooting. Separating these layers helps uncover the real cause behind problems that might otherwise seem fixed by switching apps.

View the mihomo source repository ↗

From the Clash project to an evolving ecosystem

Clash popularized a way of working built around a rule-driven proxy core and YAML configuration. After the original Clash project and some early graphical clients stopped receiving updates, the community continued in different directions: some projects focus on interfaces and subscription management, while others extend core protocols and rule capabilities. So “Clash configuration” is a common term in the ecosystem, not a promise that every app supports the same fields.

With Clash for Windows no longer maintained, choose an alternative based on active maintenance, OS support, and migration effort—not just a familiar interface. Menu locations, helper service setup, and default field values in older tutorials may no longer apply. Keep old configurations for reference, but after importing one, check how it parses, how groups reference nodes, and how it takes over system traffic.

The interface and core handle different layers

Graphical clients usually handle subscription downloads, configuration switching, tray controls, and log display. Cores such as mihomo interpret the configuration, match rules, resolve domains, and establish connections. A toggle in the interface doesn't guarantee a field with the same name exists in the config file; conversely, a core-supported extension may not be editable in every client's interface. When consulting documentation, check both the client name and core type.

mihomo extends the configuration approach used across the Clash ecosystem. The project is licensed under GPL-3.0; its source code, changes, and issue discussions are available in the repository. That license applies to the open-source project in question, not automatically to every third-party interface, app store release, or related service. This site organizes community resources; each project remains responsible for its own releases, store listings, and feature scope.

Review changes before updating; verify results afterward

Client updates, core updates, and subscription refreshes are three different things. A client update may change the interface or system integration; a core update may affect field parsing or connection behavior; a subscription refresh mainly changes the sources of nodes and rules. When something goes wrong, note which layer changed most recently. Don't blame a subscription issue on the installer or repeatedly reinstall the app over a single dead node.

A safer approach is to keep a working configuration, change one category of settings at a time, reload, check the logs, and then test the target app's actual requests. When testing nodes, keep conditions consistent. For connection failures, record the time, target domain, and matched rule. Remove server credentials and subscription details before sharing logs. Reproducible steps are usually more helpful than a screenshot showing only a red error.

Browse source code · Git must be installed locally

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

Cloning is for reading source code and documentation; it doesn't install a client or provide working proxy nodes. For everyday use, choose a graphical client from the download page.

RECENT ARTICLES / NOTES

Subscription imports and connection troubleshooting

First identify whether the problem is fetching the configuration, parsing it, or establishing a connection. These articles focus on specific scenarios, so you don't need to read the entire field reference first. Start with the error and your actual configuration to find the next step.

Download a client