Open-source ecosystem · mihomo core clients actively maintained

Clash Client Download & Cross-Platform Configuration Guide

A download and configuration guide for Clash clients on Windows, macOS, Android, iOS, and Linux: clients run on the mihomo core, with support for rule-based routing and TUN mode. Download links, a quick-start walkthrough, and advanced configuration each get their own dedicated page.

DOWNLOAD INDEX

Get the Client by Platform

Each of the five platforms has its own client and installer format. Click a card to jump straight to that platform's section on the download page, which also lists system requirements and archived notes for clients that are no longer maintained.

Windows

Graphical clients such as Clash Plus and Clash Verge Rev support both system proxy and TUN virtual adapter modes, and run on Windows 10/11 with installers for both x64 and ARM64.

Go to Download

macOS

Installers cover both Intel and Apple Silicon. The client lives in the menu bar and supports enhanced mode for taking over all traffic; older Macs can fall back to the archived ClashX Meta build.

Go to Download

Android

Root-free proxying via VpnService, with per-app proxy rules and automatic subscription updates. Separate APKs are available for ARM64 and ARMv7 devices.

Go to Download

iOS

Clash Plus is available directly on the App Store. Subscription import and rule-routing logic match the desktop clients, with no extra configuration tools needed.

Go to Download

Linux

A deb package and graphical client are available; for servers and routers, you can deploy the mihomo core binary directly and run it as a systemd service.

Go to Download

Mihomo Core

A headless core binary covering AMD64, ARM64, ARMv7, and MIPS architectures, aimed at server and router users; desktop users should stick with one of the graphical clients above.

Go to Download

View All Clients →

SPEC SHEET

Core Feature Ledger

Each entry below documents one core capability as a spec sheet item: what problem it solves, how to use it, with a matching config snippet on the right as a quick reference. Full parameter details are in the advanced configuration page.

F-01

Rule-Based Routing

Traffic is split across different exits based on conditions like domain suffix, IP ownership, or process name: local sites go direct, target services go through the proxy, and ad domains get rejected outright. Rules are matched top to bottom, the first hit wins, and a trailing MATCH catches whatever's left. Compared to routing everything through the proxy, this keeps local access fast and avoids the extra latency of sending all traffic the long way round; rules can be written inline or pulled from remote rule-providers that refresh automatically on a daily schedule.

rules:
  - DOMAIN-SUFFIX,openai.com,PROXY
  - GEOIP,CN,DIRECT
  - MATCH,PROXY
# config.yaml · rules
F-02

TUN Mode

A system proxy only affects apps that respect the proxy setting — command-line tools, game clients, and some desktop software bypass it entirely. TUN mode creates a virtual network adapter at the OS level, capturing all of a device's traffic at the network layer and handing it to the core to process under one rule set, without relying on individual apps to cooperate. On desktop, the first activation requires installing a service component and granting admin rights; on mobile, VpnService achieves the same effect. It's typically paired with Fake-IP to cut down on DNS round trips.

tun:
  enable: true
  stack: system
  auto-route: true
# config.yaml · tun
F-03

Proxy Groups & Latency Testing

A proxy group bundles multiple nodes and defines how one gets picked: select for manual choice, url-test for periodically pinging a test URL and auto-switching to the lowest-latency node, fallback for trying nodes in list order, and load-balance for spreading connections across several nodes. interval sets the test cycle and tolerance sets a switching margin so two nodes with near-identical latency don't flip back and forth; groups can also nest inside each other, letting you build a "region groups plus auto-pick" structure.

proxy-groups:
  - name: AUTO
    type: url-test
    url: http://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50
# config.yaml · proxy-groups
F-04

Subscriptions & Config Management

A subscription link is generated by your provider, and the client fetches it periodically to pick up the latest node list. proxy-providers decouples node sources from local rules: multiple subscriptions can merge into the same proxy groups, and refreshing nodes won't wipe out local changes; health-check probes nodes on a schedule and drops the ones that fail. Graphical clients also offer override and merge mechanisms that layer personal rules and DNS settings on top of a subscription, so switching subscriptions doesn't mean rewriting the whole config.

proxy-providers:
  main:
    type: http
    url: "your-subscription-link"
    interval: 86400
# config.yaml · proxy-providers
F-05

DNS & Fake-IP

DNS resolution quality directly determines how accurate routing decisions are. With enhanced-mode set to fake-ip, the core returns a virtual address from a reserved block for every domain; when an app connects to that virtual address, the core matches rules by domain directly, skipping the wait for a real lookup, so connections open faster and local DNS poisoning gets bypassed entirely. For cases that need a real IP — LAN printers, some multiplayer games — add them to the fake-ip-filter exception list to fall back to conventional resolution.

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
# config.yaml · dns
F-06

External Control API

The core ships with a built-in HTTP control API: switching nodes, running latency tests, listing connections, and streaming logs are all available through the external-controller address. Graphical client dashboards are built on top of this same API, and you can also connect web panels like metacubexd or yacd to manage a running core remotely from a browser — especially useful for headless instances on routers, NAS boxes, or servers.

external-controller: 127.0.0.1:9090
secret: "your-password"
# config.yaml · external-controller

Read the Advanced Configuration Guide →

QUICKSTART

Get Connected in Three Steps

From install to a verified connection, the standard flow is just three steps. This is the short version — see the full guide for exact UI locations, platform differences, and common errors.

  1. Download and Install the Client

    Pick the installer for your platform on the download page. Clash Plus is the top pick across all platforms; on Windows/macOS, grant the service component permissions when prompted during setup — you'll need them later to turn on TUN mode.

  2. Import Your Subscription

    Copy the subscription link from your provider and paste it into the client's "Subscriptions / Profiles" page. The client fetches the node list and generates a config automatically — once imported, you'll see all the proxy groups on the proxy page.

  3. Pick a Node and Verify

    On the proxy page, choose a group and a node, turn on the system proxy (or TUN mode), and visit a target site to confirm it works. Then use the built-in latency test to compare nodes and switch your main group to whichever one scores lowest.

View the Full Guide →

OPEN SOURCE

Open-Source Ecosystem & Maintenance

Project history.Clash started out as a rule-based proxy core written in Go; its clear YAML config format and flexible routing rules grew into a full client ecosystem. After the original repository was archived, the community continued maintenance under the name mihomo, building on the Meta fork with backward-compatible configs and ongoing additions like domain sniffing and more outbound protocols.

Core vs. client.The graphical clients listed on this site — Clash Plus, Clash Verge Rev, FlClash, and others — all wrap the mihomo core: the core handles protocol implementation, rule matching, and DNS, while the client handles subscription management, the UI, and system integration (system proxy, TUN service, launch on startup). Core upgrades ship bundled with client releases, so most users never need to update the core separately.

Release cycle.Each client is published in versioned releases on open-source platforms; the links on our download page always point to the latest stable release and show the version number. Clients that are no longer maintained (Clash for Windows, ClashX Meta) are archived separately with a badge, so existing users can still retrieve older installers, though we no longer recommend fresh installs of them.

Community collaboration.Both the core and the major clients are fully open and auditable, with bug reports and feature work flowing through issues and pull requests. The GeoIP/GeoSite databases that routing rules depend on are also published regularly by community repositories, and clients can update them with a single click.

$ Get the Core Source
git clone https://github.com/MetaCubeX/mihomo.git
  • Language Go
  • License GPL-3.0
  • Config YAML
  • API RESTful API
FAQ PICKS

Frequently Asked Questions

Four of the most common questions with one-line answers; full walkthroughs and screenshots are on the help page.

Q-01How are Clash and mihomo related?

mihomo is the continuation of the Clash Meta fork, with a backward-compatible config format; it's what runs under the hood in every mainstream graphical client today. See the full explanation →

Q-02No internet after turning on TUN mode?

First check whether the service component installed correctly and whether admin rights were granted, then confirm DNS is enabled and auto-route is turned on. See the troubleshooting steps →

Q-03All nodes timing out — are they actually broken?

Not necessarily: first confirm the test URL is reachable and your local network is fine, then narrow it down layer by layer — node, route, and local settings. See how to narrow it down →

Q-04Subscription import fails with a format error?

This usually means the subscription returned content that isn't in Clash format. Ask your provider for a Clash/mihomo-specific subscription link, or check whether the link got truncated. See how to fix it →

BLOG

Latest Articles

Practical articles on picking nodes, configuring proxy groups, and migration plans — the three most recent posts, newest first.

View All Articles →

Download Client