Pick a feature on the left; the panel on the right shows the problem it solves and its real specs. Every item has a matching section in the full manual.
Rule-Based Routing
Traffic is matched against rules before a destination is decided: domain-suffix matches go direct, geo matches go back to the source, and everything else is handed to a proxy group. Rules are evaluated top to bottom — the first match wins, with a trailing MATCH rule as the catch-all. Compared with an all-IP or all-domain blanket proxy, rule-based routing keeps direct traffic from detouring and makes sure proxied traffic isn't missed. Combined with RULE-SET references to remote rule sets, rules can auto-update alongside GEO data instead of maintaining thousand-line lists by hand. Syntax and debugging methods are covered rule by rule in the manual's rules chapter.
DOMAIN-SUFFIX · DOMAIN-KEYWORD · GEOIP · RULE-SET · MATCH
Some apps ignore system proxy settings — command-line tools, game clients, and some UWP apps connect directly, bypassing regular HTTP/SOCKS proxies entirely. TUN mode creates a virtual network adapter on the system, intercepting all outbound traffic at the network layer and handing it to the core, regardless of whether the app cooperates. With auto-route enabled, the routing table is taken over automatically and restored when TUN is disabled. Windows uses the wintun driver, while macOS and Linux use native utun/tun devices; the first activation requires admin or system-extension permission.
A profile is a config.yaml file: ports, DNS, proxy nodes, proxy groups, and rules all live in one file. A subscription link is its remote form — the client fetches it on a schedule and refreshes the node list automatically, while local edits kept via Override survive updates instead of being overwritten. Multiple profiles can coexist — one for home, one for work, one for testing — and switching is a single click; import supports URL download, local files, and clipboard paste. Profile structure and managing multiple profiles are covered in the getting-started guide and a dedicated blog post.
A proxy group bundles multiple nodes into one selectable unit: a select group lets you pick manually, a url-test group auto-picks the fastest by latency, a fallback group switches down the list when the preferred node fails, and a load-balance group spreads connections across several nodes. Latency tests send a single HTTP HEAD request to a given URL and time the round trip — the number reflects handshake latency, not bandwidth, so pick a node by weighing region and rate together. Groups can nest — a rule points to a group, and a group points to nodes — keeping the topology clear and changes localized instead of editing every rule.
Traditional DNS resolves a real IP before connecting, but the result can be tampered with, and the domain name is lost before the connection even starts. Fake-IP mode instead returns a made-up address from a reserved range (198.18.0.0/16 by default) instantly; the app connects using that fake IP, and the core looks it up when the connection is made to recover the original domain, then routes precisely by domain rules. Skipping a real lookup makes connections faster and improves domain-rule hit rates; the few cases that need a real IP (LAN discovery, some games) can be excluded via fake-ip-filter.
mihomo continues the Clash Meta fork, taking over maintenance after the original core stopped receiving updates. Compared with the classic core, it adds outbound protocols (VLESS, Hysteria2, TUIC, and more), supports online updates for rule sets and GEO data, improves the TUN network stack, and extends the RESTful API. Today's mainstream clients — Clash Plus, Clash Verge Rev, FlClash, Clash Nyanpasu — all bundle this core, and its config syntax stays backward-compatible with classic files, so most old configs work unchanged. Standalone binaries of the core are also available for server and router deployments.
After installation, getting from subscription import to a verified connection takes three steps. The full tutorial covers where to click at every step and how to troubleshoot.
1
Import a Subscription
Copy the subscription URL from your provider and paste it into the client's Profiles page. The client downloads the config and lists every node, then updates automatically on the interval you set.
2
Choose a Mode and a Node
Leave the proxy mode on the default Rule setting; on the Proxies page, pick a node with reasonable latency from a proxy group, or let a url-test group choose automatically.
3
Turn On the Proxy and Verify
Turn on the System Proxy switch (or switch to TUN mode when you need full traffic takeover), visit a site covered by your rules to confirm connectivity, and check the connections panel to verify traffic is hitting the right rules.
The Clash project has developed as open source since 2018, with its core code released under the GPL-3.0 license. After the original core stopped receiving updates in 2023, the community's Meta fork carried development forward and was renamed mihomo, becoming today's de facto standard core — every client listed on this site is built on top of it.
An active client ecosystem has grown up around the core: graphical clients such as Clash Verge Rev, FlClash, and Clash Nyanpasu are each developed and released independently, with public repositories, commit histories, and release notes that anyone can review or contribute to. That's also why this site only lists open-source or app-store clients — the origin can be verified and every update has a traceable source.
The core and each client release on their own schedules: the core updates frequently as protocols and rule data evolve, while clients pull in core updates and repackage releases at their own pace. The installer links in this site's download center point to each project's current release, and they're updated automatically to point to new files, so there's no need to chase version numbers by hand.
To study the core's implementation directly or deploy a bare core on a server, start from the source:
git clone https://github.com/MetaCubeX/mihomo.git
LicenseGPL-3.0
Coremihomo (Clash Meta)
Implementation LanguageGo
Desktop PlatformsWindows / macOS / Linux
Mobile PlatformsAndroid / iOS
Config FormatYAML
FAQ
Frequently Asked Questions
Clash for Windows is discontinued — what should I install now?
On desktop, Clash Plus or Clash Verge Rev are the top picks — both bundle the mihomo core, receive ongoing updates, and stay compatible with older configs. Compare clients →
No nodes show up after importing a subscription — what now?
First trigger a manual update on the profile page and check that the subscription URL wasn't truncated; if it still fails, the link is usually expired or malformed — the tutorial page walks through the checks step by step. View the getting-started guide →
System proxy or TUN mode — which one should I use?
Regular apps like browsers work fine with the system proxy; command-line tools, games, and other apps that bypass it need TUN mode to take over at the network layer. Read in the full manual →
Does a lower latency number always mean a faster node?
Latency reflects handshake round-trip time, not bandwidth; picking a node also means weighing region, rate, and protocol — the blog covers a full node-selection workflow. Visit the blog →
BLOG
Latest Articles
In-depth articles on configuration principles, client selection, and platform details, newest first.