Open-source client collection mihomo core

Clash ReleasesCross-Platform Client Downloads

Explore clients for every platform, rule-based routing, and setup guides. Choose a starting point by device, then check what your core supports.

Open-Source CoreConfiguration ReferenceMigration Guide

Download Clash Clients

Choose your operating system first, then check your processor architecture. Desktop users may prioritize tray controls and profile editing; mobile users should also consider background permissions, battery settings, and system network APIs. Similar client names don't guarantee identical installers, cores, or subscription formats.

Clash for Windows

Our top pick is Clash Plus. You can also choose Clash Verge Rev, FlClash, or Clash Nyanpasu. Check your system type before installing; if you need TUN, follow the client's instructions to grant service permissions. Clash for Windows is no longer maintained. When migrating an older setup, check your subscription, overrides, and system proxy port too—copying the app folder alone isn't enough.

Go to downloads

Clash for macOS

Our top pick is Clash Plus; Clash Verge Rev and FlClash are also options for desktop rule management. Check System Information to see whether your Mac has Apple silicon or an Intel processor, then choose the matching installer. After granting network permissions, check whether another proxy app is still managing system settings. Archived ClashX Meta builds may help when reviewing older configurations, but aren't recommended as the default for a new setup.

Go to downloads

Clash for Android

Our top pick is Clash Plus. The guide also covers Clash Meta for Android, FlClash, and Surfboard. Most recent devices use ARM64, but check your system information to be sure. On first connection, approve the system VPN prompt; if the connection drops in the background, check battery optimization settings. Surfboard uses a different configuration format from Clash YAML, so subscription URLs aren't necessarily interchangeable.

Go to downloads

Clash for iOS

Our top pick is Clash Plus. The download page links to the App Store and the official site at clashplus.io. After importing a profile, follow the system prompt to allow the VPN configuration, then confirm that rules and proxy groups have loaded. iOS clients use the network APIs permitted by the system, so desktop steps for service mode, port interception, or replacing the core don't apply directly to phones.

Go to downloads

Clash for Linux

For desktop use, choose Clash Verge Rev or FlClash and install the package for your distribution. Proxy toggles depend on desktop environment and app support; command-line tools may also need environment variables configured separately. Server and router users can find the mihomo core on the download page. Before running it as a service, set the configuration directory, listening address, and permissions to avoid exposing a local port to your LAN.

Go to downloads

mihomo Core and Configuration Features

The graphical client manages settings; the core handles connections. The examples below illustrate configuration fields—they aren't complete profiles you can import. Add your own proxy groups and connection details before use.

Rule-Based Routing: Match Traffic to an Outbound

Rule mode checks domains, IP ranges, or rule sets in order and sends traffic to the assigned policy on the first match. This lets you route local services, work resources, and other traffic separately instead of sending every connection through the same outbound. To troubleshoot, check the matched rule on the Connections page, then see which option the proxy group currently uses. More rules don't automatically mean better results. Unlike tools with a single proxy toggle, mihomo lets you maintain rule sources separately, but you'll still need to understand rule-set formats and update intervals. The example references a local rule file; the policy name must match a group in your configuration.

rule-providers:
  work:
    type: file
    behavior: domain
    path: ./rules/work.yaml
rules:
  - RULE-SET,work,DIRECT
  - MATCH,PROXY

Clash Setup Guide: A Three-Step Preview

Start with the smallest working setup, then expand what it manages. After each step, check one observable result so subscription issues, proxy selection, and system settings don't get tangled during troubleshooting.

  1. Import a Subscription and Confirm It Loads

    Add a subscription URL or import a YAML file, then select the profile. Check that proxy groups appear without parsing errors. Keep subscription credentials private; remove sensitive details before sharing errors.

  2. Choose Rule Mode and a Proxy

    Keep rule mode on and choose an available proxy in the relevant group. Verify browser access before enabling TUN. A latency test is not a speed guarantee; use the system proxy alone if it meets your needs.

  3. Check Connections, DNS, and Recovery

    Check the destination, matched rule, and outbound on the Connections page. Test your apps and LAN access. Before closing the client, turn off the system proxy and confirm normal access returns. See the guide for troubleshooting.

Read the full guide →

The Clash Open-Source Ecosystem and Its Limits

Clients, cores, and configuration sources are three separate layers. Knowing what each one does is more useful for migration, updates, and troubleshooting than memorizing a single software name.

Project History: Distinguish the Original from Later Forks

Clash established a workflow centered on YAML configuration, rules, and proxy groups. Later clients added graphical controls for those interfaces. After the original project and some early clients stopped being maintained, community forks continued to expand protocol and network-stack support. When you find an older tutorial, check which client it covers and compare its steps with the current interface and field documentation. Don't assume every step still applies just because the screenshots look familiar.

Clash for Windows and Clash Verge Rev are separate projects. The former being discontinued doesn't mean every Clash client has stopped receiving updates, and migrating to the latter isn't as simple as overwriting the old app folder. Record subscription URLs, shortcuts, service components, and override scripts from the old setup separately. Keep a backup of the old configuration during migration, verify the new setup works, then remove old services and leftover proxy settings.

Core Lineage: Meta and mihomo

Clash Meta is an important name to know when tracing mihomo's history. Older articles often mention the two together, but current support depends on the core actually running and its documentation. A graphical client's settings may hide some fields or generate the final configuration through its own override system. So the absence of a toggle in the interface doesn't necessarily mean the core lacks support; conversely, a field being accepted in the interface doesn't replace runtime testing.

The mihomo core is open source under GPL-3.0. See its repository for source code, release history, and issue discussions. Check the licenses and maintenance status of graphical clients, icon assets, and subscription services separately; the core's license doesn't determine theirs. This site organizes client downloads and Chinese-language resources, but implementation details should be verified against the relevant project's documentation, source code, and release notes.

Updates: Keep the App and Configuration Separate

Client, core, and subscription updates change different things. A client update may alter the interface, service components, or profile merging. A core update may change field parsing, protocol behavior, or DNS handling. A subscription update mainly replaces connection resources and upstream rules. If something breaks after an update, identify which layer changed and reproduce the issue with a saved copy of your configuration. Don't replace several components at once.

Read the release notes before upgrading, and save local overrides and any logs you need. In logs, focus on timestamps, destinations, and matched rules; remove subscription URLs and credentials before sharing. For devices you rely on, choose an update path you understand and can roll back. Test channels are useful for checking specific fixes, but a newer version number alone isn't a reason to replace a stable setup. The download page lists installation options; the homepage doesn't pin a specific release number.

Community Support: Make Issues Reproducible

A useful issue report includes the operating system, client, operating mode, and steps that trigger the error. Describe browser access, terminal requests, and LAN services separately. “Connection failed” or a single latency result usually isn't enough to identify the cause. Reproduce the issue with a minimal configuration, then restore rules and overrides one at a time to determine whether it comes from connection resources, configuration interactions, or the local environment.

For a closer look, read the protocol guide to compare trade-offs, check field definitions in the glossary, or troubleshoot by symptom in the FAQ. Open-source collaboration makes implementations inspectable, changes traceable, and issues discussable—it doesn't make every platform and configuration behave like the same environment.

mihomo Source Repository

Clone the repository to review its implementation and release history; most users don't need to do this to install a client. Check the repository instructions for build dependencies and commands.

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

Linux penguin graphic: Font Awesome, CC BY 4.0; shown in monochrome.

Configuration and Troubleshooting Notes

Start with a specific symptom and check logs, configuration, and network paths one layer at a time. Here are the three latest articles, for readers who've completed a basic installation.