clashsdk / clash
PublicRelease timeline · Core mihomo — hover to see version numbers
clashsdk / clash / README.md
MIT
Core mihomo
Five-platform clients
Free forever
Clash Cross-Platform Client Downloads & Docs
Clash is an open-source network proxy client built around rule-based routing, with support for TUN mode and subscription management. This site hosts installers for Windows, macOS, Android, iOS, and Linux, along with setup guides and troubleshooting docs, kept in sync with upstream public releases.
$ mihomo -d ~/.config/mihomo
INFO[0000] Start initial configuration in progress
INFO[0000] RESTful API listening at: 127.0.0.1:9090
INFO[0000] HTTP(S) proxy listening at: 127.0.0.1:7890
Core Features
docs/features/
Click a filename on the left to open its doc panel on the right — just like browsing markdown files in a repo.
clash / docs / features / rules.md
Rule-Based Routing
Rule-based routing decides which traffic goes through a proxy and which connects directly. Clash matches rules such as DOMAIN-SUFFIX, DOMAIN-KEYWORD, IP-CIDR, and GEOIP in top-to-bottom order from the config file; the first match triggers its action — direct connection, a specific proxy group, or a straight reject.
The usual setup is to subscribe to a community-maintained rule set, then add a few custom rules for specific sites. Client UIs also let you switch between Rule, Global, and Direct modes with one tap. Compared with simple proxy tools that only offer a global on/off switch, rule-based routing keeps local traffic direct and sends cross-border traffic through nodes, giving steadier speed and compatibility. See the rule syntax in the setup guide.
clash / docs / features / tun-mode.md
TUN Mode
TUN mode creates a virtual network adapter on the system and routes all TCP/UDP traffic on the device through Clash, regardless of whether an app respects system proxy settings. Command-line tools, game clients, and apps that ignore the system proxy can all be captured by TUN mode.
Enabling it requires granting the right permissions: installing a service component on Windows, approving a system extension on macOS, and using the system VPN interface on Android/iOS. Compared with traditional HTTP proxy mode, TUN offers fuller coverage — the trade-off is watching more closely for DNS hijacking and routing table issues when troubleshooting, covered in Troubleshooting.
clash / docs / features / subscription.md
Subscription Management
A subscription packages a provider's or self-hosted server's node list into a single URL; the client fetches it periodically to sync node changes, so there's no need to enter server addresses one by one. Clash clients natively support standard YAML subscriptions, and a conversion tool can bring in other formats like Base64-encoded node lists.
Importing usually means copying the link and pasting it on the config page, or using the clash:// one-tap import scheme. A subscription can also carry routing rules and proxy groups, so a single import gives a ready-to-use config; refresh interval and expiry info show up on the client's config page too. See format differences and conversion methods in this subscription format primer.
clash / docs / features / multi-platform.md
Consistent Across Platforms
Windows, macOS, Android, iOS, and Linux all have clients built on the same mihomo core, with an identical config format — one YAML file works across all five. Clash Plus and Clash Verge Rev are the top desktop picks; on mobile there's Clash Plus and Clash Meta for Android, with iOS installed via the App Store.
Switching devices just means re-importing the subscription link — proxy groups, rules, and policies stay the same, with no new interface to learn. Installers, system requirements, and architecture notes for every platform are on the download page.
clash / docs / features / open-source.md
Open-Source Ecosystem
Both the core and the main clients in the Clash ecosystem are developed in public repositories: the mihomo core carries forward the original Clash config format while continuing to add protocol support, and GUI clients are maintained by different community teams — anyone can read, build, and audit the code.
Releases follow a public process with a full changelog. Every installer here points to a project's official public release channel and stays in sync with upstream versions; to compare maintenance status and differences between clients, see the selection guide.
Open-Source Ecosystem & Update Process
docs/project/
Project History
Clash first launched in 2018, written in Go, with rule-based routing as the design that set it apart from similar tools. After the original repo was archived in 2023, the community fork Clash.Meta took over core development, later renamed to mihomo, and it's still actively developed today — protocol support, rule types, and the API have all kept expanding on that foundation.
How the Core and Clients Relate
The core handles protocol implementation, rule matching, and traffic forwarding; GUI clients handle the interface, subscription management, and system integration — a layered relationship. Clients listed here, including Clash Plus, Clash Verge Rev, and FlClash, all bundle the mihomo core, so config formats are interchangeable — switching clients doesn't require touching your config file.
Installer Source & Updates
This site doesn't modify any installer — download links point straight to each project's official public release, and the version number on the download page tracks the latest upstream release automatically, with no manual checking needed. Once upstream ships a new version, both the in-app update prompt and this download page refresh in step, and existing users can just install over the old version to keep their config.
Community Collaboration
Beyond the core and clients, surrounding tools such as rule sets, subscription converters, and GeoIP databases are also maintained as open source by the community, rounding out the full toolchain. Feature issues can be filed on the relevant project's public repo; the docs here focus on install, config, and troubleshooting guidance that complements upstream documentation.
$ git clone https://github.com/MetaCubeX/mihomo.git
$ cd mihomo && go build
Frequently Asked Questions
docs/faq.md
No nodes show up after importing a subscription link?
First confirm the link is in Clash/YAML format, then check whether it needs a subscription converter — full steps are in the setup guide.
Pages still won't load with the proxy on?
Work through it in order: system proxy toggle → node availability → DNS settings. See the step-by-step chapters in Troubleshooting.
How do I install it on iPhone or iPad?
Just install Clash Plus from the App Store — store link and details are in the iOS section of the download page.
So many clients — which one should I pick?
Clash Plus is the top pick for both desktop and mobile; pick Clash Verge Rev if you want more room to tinker. Detailed comparisons are in the selection guide.
Fake-IP Mode Explained: How DNS Resolution Gets Intercepted, and When to Turn It On or Off
Starting from the DNS query flow, this explains how Fake-IP speeds up matching and cuts DNS leaks using reserved-range placeholder addresses, contrasts it with Redir-Host, and lists cases like LAN services and game networking where it should be disabled or excepted.
Clash Client Interface Tour: What the Proxies, Profiles, and Logs Tabs Do
A walkthrough of the main client interface section by section: group and node switching on the Proxies tab, subscription management and rule loading on the Profiles tab, and connection-log troubleshooting on the Logs tab — a map of the whole UI for new users.
Clash Subscription Formats Explained: YAML, Base64 Node Lists, and How to Convert Between Them
Breaks down the structural differences between common subscription formats — Clash YAML configs, Base64-encoded node lists, and client-specific formats — explains why some links fail to import, and covers what to watch for when converting safely between formats.