Clash Release Hub · mihomo clients and documentation

Download Clash clients and setup guides

From choosing a platform to routing rules, learn to use the mihomo core with practical configuration examples and logs.

Open-source ecosystem Subscription management Configuration guides
GPL-3.0 open source mihomo core Windows / macOS / Linux / Android / iOS
Configuration/config.yaml
Rule mode
System proxy TUN mode
RulesMatched from top to bottom · illustrative interface
  1. 1DOMAIN-SUFFIX,github.com,Proxy
  2. 2DOMAIN-KEYWORD,google,Proxy
  3. 3DOMAIN-SUFFIX,example.com,Proxy
  4. 4IP-CIDR,127.0.0.0/8,DIRECT
  5. 5GEOIP,CN,DIRECT
  6. 6MATCH,Proxy
LogsStatic log example
  • [TCP] 127.0.0.1 --> api.github.com:443 match DomainSuffix(github.com) using Proxy
  • [TCP] 127.0.0.1 --> www.example.com:443 match DomainSuffix(example.com) using Proxy
  • [TCP] 127.0.0.1 --> 127.0.0.1:8080 match IPCIDR(127.0.0.0/8) using DIRECT

Open-source code / configuration syntax / traceable connection logs

The Clash ecosystem and its core relationship

mihomoGPL-3.0YAML configurationRule-based routing

Client interfaces and proxy cores

Clash is a commonly used name for a proxy-tool ecosystem; it does not mean every client is developed by the same team. Graphical clients display proxy groups, import subscriptions, manage the system proxy, and save settings. The proxy core parses configuration, matches rules, and establishes connections. When choosing software, check both whether the client is still maintained and which core it actually uses. This site collects download links and documentation; it is not the official developer of these clients.

From Clash Meta to mihomo

mihomo continues the technical direction of the Clash Meta project. In older guides, Clash Meta often refers to a configuration system similar to the one documented for mihomo today, but supported fields can vary across versions. If you encounter an unknown option, startup failure, or unsupported protocol, check which core your client uses and consult the matching documentation. Do not rely on the filename alone to determine compatibility.

Open-source licensing and project boundaries

The mihomo source repository publishes its code, release notes, and issue discussions under the GPL-3.0 license. The license sets conditions for using and distributing the code; it does not mean the client provides network service or that every subscription is trustworthy. Clients, cores, and subscription providers are separate parts of the setup. After installing a tool, you still need a legitimately obtained configuration or server details you manage yourself to establish connections.

Keep a rollback-ready configuration before updating

Client updates, core updates, and subscription updates are separate. A client update may change menus or permission handling; a core update may change protocol and configuration support; a subscription update may replace proxy entries and rules. Export your current configuration and read the release notes before making changes. After updating, check startup logs and rule matches. Change one category at a time to make it easier to identify what caused a difference.

mihomo source repository

Browse the source code and release history. Cloning the repository requires Git installed locally and is not necessary for everyday client use.

View open-source project ↗
git clone https://github.com/MetaCubeX/mihomo.git

Client downloads / Choose by operating system

Clash downloads for every platform

Start by identifying your device's operating system, then choose a compatible client. Desktop and mobile platforms differ in permissions, network routing, and background behavior, and the same subscription may need separate setup on each.

The download page lists clients such as Clash Plus, Clash Verge Rev, and FlClash by platform, and distinguishes actively maintained projects from archived software. New users should start with the recommended option for their platform. If you already have a configuration, check compatibility for protocols, rules, and overrides before migrating.

Graphical clients are suited to everyday management. For servers and routers, see the core section and prepare your own configuration file and runtime environment. A core binary does not include a desktop settings interface or automatically replace your system network settings.

Browse all clients → Compare clients →
Configuration workspace / Four key areas

Rules, policies, and network routing

The examples below illustrate configuration structure and settings; they do not represent a complete interface for any specific client. Menu names may vary slightly between clients, so follow the interface you are using.

Check rule matches in order

Rule mode does not guess where traffic should go based on app names. Instead, the core checks each connection against the rules from top to bottom. Domain suffixes, keywords, and IP ranges serve different needs. Once a rule matches, the connection is handed to its specified policy, and later rules are usually skipped. Put specific exceptions before general rules and place the fallback MATCH rule last. After making changes, find the target domain in the logs and check the matched rule type and policy name. Adjust the order if needed, rather than mistaking a connection issue for a proxy group issue.

View Clash custom rules →
Rule syntax

DOMAIN-SUFFIX, GEOIP, and MATCH each serve a different purpose.

Use logs to troubleshoot

Check the destination, matched rule, and final policy together.

Configuration / config.yaml
rules:
  - DOMAIN-SUFFIX,github.com,Proxy
  - DOMAIN-KEYWORD,google,Proxy
  - IP-CIDR,127.0.0.0/8,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,Proxy

Proxy must be the name of a proxy or proxy group defined in the configuration.

Proxy groups and policy selection

Proxy groups connect policy names in rules to actual outbound connections. Use select for manual selection, url-test to choose an available outbound based on configured probes, and fallback to try options in a specified order. Group names are customizable, but rule references must match them exactly. In rule mode, changing a group that no rule references will not change the route for a target connection. Global mode routes connections through a single global policy and can help with short-term comparisons during troubleshooting. After choosing a policy, establish a new test connection; existing connections may continue to use their previous route.

View the Clash Verge Rev guide →
Group name references

The policy name in a rule must match the proxy group definition.

Compare modes

Switch modes briefly to isolate an issue, then restore rule mode for everyday use.

Illustration of proxy and policy group types
Proxyselect
Autourl-test
Fallbackfallback
Mediaselect

Only group names and policy types are shown here. Actual outbounds come from the user's imported configuration.

Subscription updates and local overrides

A subscription link provides a configuration. Updating it may replace proxy lists, policy groups, and rules. Direct edits to a downloaded file may be lost on the next update. To keep rules long term, use the client's supported override, extension script, or merge features, and confirm they apply to the updated configuration. If an update fails, check that the link is valid, whether login is required, and whether your current network can reach the subscription URL. Hide access credentials in subscription links before sharing logs or screenshots.

View subscription import and update steps →
Update them separately

Updating a subscription is not the same as updating the client or core.

Keep local changes

Use the client's supported override features to maintain local rules.

Configuration / Subscription settings illustration
Configuration sourceRemote subscription
Automatic updates
Update intervalSet as required by the subscription
Local overridesManaged separately

The update controls and merge order depend on the client. Export your current configuration before making changes.

System proxy and TUN mode

The system proxy provides a local proxy address to apps that follow system settings, making it a good starting point for initial desktop setup. Some command-line tools, games, and apps with their own network stack ignore this setting, so an enabled switch does not mean all connections are being routed. TUN handles a wider range of traffic through a virtual network interface and also involves routing, DNS, and system permissions. First confirm that ordinary proxy connections work, then configure service mode and permissions. If you encounter conflicts, temporarily disable other VPN or network-routing software to compare results, rather than changing several network paths at once.

View Clash system proxy settings →
Route traffic as needed

Choose the right method based on whether the app uses the system proxy.

Troubleshoot in layers

Check permissions, connection logs, DNS, and routing in order.

Settings / Network routing illustration
System proxy
TUN mode
Runtime permissionsCheck before enabling
DNS settingsMatch the routing method

The switches are illustrative only. Mobile devices typically route traffic through the system VPN permission.

Quick start / From import to verification

Three steps to get started

A successful installation only means the client can launch. First import a configuration, then choose a mode and routing method, and finally verify the result with a new connection. Checking these three stages separately makes issues easier to pinpoint.

  1. Import a working configuration

    Open the Configuration page and choose to import from a link or a local YAML file. Save it, then set it as the active configuration. Use a subscription link from a trusted source; a regular web page URL cannot replace one. If parsing fails after import, check the reported line and indentation rather than repeatedly toggling the system proxy. If you already have a configuration in another client, save a separate copy before migrating to avoid overwriting the original.

  2. Choose a mode and route traffic

    On the Proxies page, select rule mode, check which proxy groups the rules use, and choose an available outbound. On desktop, you can start by enabling the system proxy; on mobile, allow the VPN connection when prompted. Configure TUN by following the guide only if the target app ignores the system proxy or you need broader traffic routing. Avoid running multiple clients that route network traffic at the same time, as their proxy settings and routes may conflict.

  3. Verify the connection route in the logs

    Open a new test page and look for its domain on the Logs or Connections page. First confirm that the connection reaches the core, then check the matched rule, proxy group, and outbound. If the connection is missing from the logs, check the routing method first. If it appears but fails, check the outbound and DNS. Restore your usual log level after testing, and hide subscription credentials and personal network details before sharing troubleshooting information.

View the full guide →

What do I need before setup?

A client manages connections but does not generate a working server automatically. Prepare a configuration compatible with your chosen client, and check that your device's date, network, and available storage are all in order. If migrating from another client, note your local proxy ports, override rules, and DNS settings. Using the same subscription link does not mean these local options will sync as well.

On Android, also check background activity and battery management settings to prevent the system from stopping the service when the screen is off. For app routing, first check whether the rules target apps or domains, then configure exclusions. Continue with the Android setup guide for platform-specific steps.

Frequently asked questions

Why can't I access sites after importing a subscription?

Importing only loads the configuration. You also need to activate it, select a policy group, and enable a routing method suitable for your device. First check whether the target connection appears in the logs, then follow the Troubleshooting steps → one by one.

Which should I use: rule mode or global mode?

Rule mode routes each connection according to the rule list; global mode routes all connections through the global policy. Global mode can help with short-term comparisons, but it does not replace checking rule order and group names. See the rule configuration guide →

Do I need to change DNS after enabling TUN?

TUN and DNS handling are related, so check the settings recommended for your client. If name resolution fails, keep a copy of the original configuration and test changes one at a time. Do not replace all DNS addresses and routing options at once. See network troubleshooting →

Configuration guides / Browse by issue

Recent configuration and troubleshooting guides

Choose what to read based on your current issue, from finding settings in the interface to syncing devices and using enhanced DNS modes. Keep a copy of your original configuration before changing network settings, and verify the effect of each change.

Browse all articles →
Clash download