Installers for Windows, macOS, Android, iOS and Linux, paired with step-by-step guides, a YAML configuration handbook and a troubleshooting index. From installation and subscription import to fine-tuning rule-based routing, everything lives on this one site.
Always freeOpen sourceFive platformsEnglish docs
FEATURES
Core Capabilities of the Clash Client
Pick a capability on the left to see its explanation and matching config snippet on the right; every item has a full field reference in the YAML handbook.
Rule-based routing
Rule-based routing is what sets Clash apart from a plain global proxy: every request is checked against the rules list from top to bottom, and once a match is found, it's sent to the designated exit — direct, through a proxy, or blocked outright. Matching covers domain suffixes, domain keywords, IP geolocation, process names and ports, with enough granularity to route browsers, games and download tools to different lines. Compared with switching per-site in a browser extension, rules written into the config file apply system-wide, and moving to a new device just means carrying the same YAML along. The full rule syntax reference lives in the site's YAML handbook.
A proxy group bundles multiple nodes behind one switchable exit, and rules only reference the group name without caring which server is actually behind it. A url-test group sends requests to a test URL at a set interval and automatically picks the lowest-latency node; a fallback group takes the first available node in listed order, which suits primary/backup setups; a select group keeps manual selection, and a relay group supports chained forwarding. These types can be nested — grouping by region first and then auto-testing within each group is the most common setup once a subscription has many nodes.
A system proxy only works for programs that actively read the proxy settings — command-line tools, game clients and quite a few desktop apps bypass it entirely. TUN mode creates a virtual network adapter on the system, intercepting all traffic at the network layer and handing it to the kernel to process according to the rules, no longer depending on whether an app cooperates. It's usually paired with fake-ip DNS mode to cut down on resolution delays; enabling it for the first time requires administrator or root privileges, and on Windows a virtual adapter driver component must be installed — see the matching section on the guides page for step-by-step instructions.
config.yaml
tun:
enable: true
stack: system
auto-route: true
dns-hijack:
- any:53
Subscriptions & config management
A subscription is a URL that a provider packages a node list into; the client fetches it on a schedule to stay in sync with the latest nodes, with no need to copy server parameters by hand. In the config file, proxy-providers declares a subscription as an external resource, with support for a custom update interval, a local cache path and health checks, and multiple subscriptions can be mounted at once as backups for each other. When a subscription's format isn't compatible, a subscription conversion service can convert between Base64, Clash YAML and sing-box formats — a dedicated post in the site's technical notes covers the details.
The GEOIP and GEOSITE rule types are backed by two independently updatable databases: the former matches by IP geolocation, commonly used to send traffic from a specific region direct; the latter contains domain lists grouped by category, so a single GEOSITE,category-ads line can replace thousands of hand-written ad-domain rules and keep a config short. The database files can be downloaded and swapped in manually, or a mirror URL and update interval can be declared in the config so the core pulls updates on a schedule automatically — differences between distributions and update syntax are compared in a dedicated technical note.
Installers are grouped by operating system — click a platform card to jump straight to the matching tab on the download page; version numbers are pulled live on the download page and match each project's latest stable release.
From installation to a confirmed connection usually takes under ten minutes; detailed walkthroughs and screenshots for each step are on the guides page.
Install the client and import a subscription
Grab the installer matching your system from the download page, open the client once it's installed, and paste the subscription link your provider gave you into the "Config / Profiles" page to import it. The client fetches the node list and builds a config file — seeing nodes appear in the list means the import worked.
Pick a proxy mode and a node
Set the running mode to "Rule", so traffic is routed automatically according to the rules in the config; then pick a low-latency node in a proxy group, or just let an auto latency-test group decide for you. Global and direct modes are only for temporary troubleshooting.
Turn on the system proxy and verify
Flip the client's "System Proxy" switch, then visit a site that wasn't reachable before to confirm the connection works; if you need to cover command-line tools, games and other apps that ignore the system proxy, enable TUN mode following the guide. If verification fails, work through the checklist at the end of the guides page.
Every client listed on this site comes from a public repository — source code, issues and release history can all be verified on the hosting platform.
Project history
Clash started out as a rule-based proxy core written in Go, and its clean YAML configuration format and flexible routing rules grew into a full open-source ecosystem. After the original repository stopped being maintained, the community fork Clash Meta continued development and was renamed mihomo, adding more protocols and rule types along the way to become the common core behind today's graphical clients.
Clash Verge Rev, FlClash, Clash Nyanpasu and other graphical clients are all built on mihomo, each with its own release schedule and interface style; their configuration formats are cross-compatible, so a single YAML file usually needs no changes when switching clients. This site tracks stable releases from a fixed list of projects, and version numbers on the download page are read live from that list to stay in sync with upstream releases.
Getting the core source code
Anyone who wants to run the core directly on a server or router, or read through the implementation, can clone the mihomo repository and build it themselves; the issue tracker and commit history are the most direct source when digging into core-level problems.
shell
git clone https://github.com/MetaCubeX/mihomo.git
The repository is released under the GPL-3.0 license, with thousands of stars and an ongoing stream of merged commits visible on the hosting platform; most users don't need to build it themselves and can just use the pre-built packages on the download page.
FAQ
Frequently Asked Questions
One-line answers to four common questions; full answers and more entries are on the FAQ page and in the concept reference.
Is Clash free? The core and every client listed here are open-source projects and free to use; subscription nodes are provided by third-party services and have nothing to do with the software itself.See FAQ
No nodes after importing a subscription? First check that the subscription link is complete and not expired, then check whether the format is Clash-compatible, and run it through a subscription conversion service if needed.Troubleshooting steps
System proxy or TUN mode — which one? System proxy is enough for everyday browsing; command-line tools, games and other apps that don't read proxy settings need TUN mode to take over.Concept reference
Latency looks low but speed feels slow? Latency measures handshake time, not bandwidth — picking a node should factor in actual download performance.Explained in detail
NOTES
Latest Technical Notes
Long-form posts on configuration structure, database updates and troubleshooting, newest first.
Walks through the config file top to bottom, breaking down the responsibilities of the general fields, proxies, proxy-groups and rules, with a minimal working example showing how the sections work together.
Sorts certificate errors into their common sources — system clock drift, node-side interception, DNS-pollution fallback under TUN mode, and leftover certificates from local packet-capture tools — with a priority-ordered checklist.
Breaks down the full path and target of a URL test, explains how the handshake method, test URL and caching affect the result, clarifies why low latency doesn't mean high bandwidth, and offers a node-selection method closer to real experience.