Open-source project · Continuously maintained clients for every platform

Clash Clients
For Every Platform

Explore clients for every platform, subscription import steps, and rule-routing configuration in one place. Before downloading, choose the graphical client for your operating system, then import your configuration, select a proxy group, and verify the system proxy.

Free forever Open source Chinese documentation mihomo ecosystem
  • Overview
  • Proxy
  • Rules
  • Connections
  • Logs
  • Profiles
  • Settings
Proxy groups Node selection Auto select Global direct DIRECT REJECT
System proxy
TUN mode
Allow LAN connections
IPv6
Launch at startup
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090

Core configuration capabilities

Rules & Routing, TUN mode, and subscription management

These three features cover the most common configuration paths in everyday Clash use. First understand how traffic matches rules, then decide whether TUN is needed, and finally establish a reliable configuration update workflow.

mode: rule

Process every connection in match order

Rule mode reads the rule list from the configuration file and matches domains, IPs, processes, or rule sets from top to bottom. Once matched, the connection is handed to the specified proxy group; unmatched requests are ultimately handled by MATCH. Rule order determines the result, so more specific domain rules generally belong first, while broader regional rules and fallbacks should come later.

In practice, split frequently used services into separate proxy groups so browsers, development tools, and local services can use different exits. After changing rules, reload the configuration and check the matched rule name in the connection log. Unlike proxy tools with only a global on/off switch, Clash lets you define connection decisions in a configuration file for reuse, review, and migration across devices.

TypeMatchPolicy
DOMAIN-SUFFIXexample.comNode selection
DOMAIN-KEYWORDserviceAuto select
GEOIPCNDIRECT
MATCHAll other connectionsNode selection

Platform access

Choose a Clash client for your device

Graphical clients package configuration imports, proxy-group switching, log viewing, and system integration. For servers and routers, see the mihomo core packages in the download center.

Windows

Best for desktop users who need tray controls, a system proxy, TUN mode, and launch at startup. The download page lists Clash Plus, Clash Verge Rev, FlClash, Clash Nyanpasu, and archived clients, with package differences explained.

Go to downloads

macOS

For Intel and Apple Silicon desktop devices. On the download page, confirm your processor architecture before choosing an installer; the first launch may also require permission for network extensions, proxy configuration, or background services.

Go to downloads

Android

For phones, tablets, and some Android TV devices. The client uses the system VPN interface to handle connections, and first-time activation requires connection authorization. Background operation may also require changes to battery optimization and persistent notification settings.

Go to downloads

iOS

iPhone and iPad users can get Clash Plus from the App Store. After installation, import a subscription and allow the system to add a VPN configuration; connection status, on-demand rules, and profile updates are managed in the client.

Go to downloads
Linux

Linux

Desktop distributions can use Clash Verge Rev or FlClash, while server and router users can download the mihomo core for their architecture. Before using a graphical client, confirm the desktop environment, tray support, and package format.

Go to downloads

Getting started

From subscription import to connection verification

You do not need to change every option during initial setup. After downloading, follow three steps—import, select, verify—to establish a working connection first, then adjust routing and TUN settings for your use case. This avoids the troubleshooting difficulty caused by changing several variables at once.

View the full guide →
  1. 01

    Import a subscription or configuration file

    Open the client’s Profiles, subscription, or configuration page, paste the complete subscription link, and import it. For a local YAML file, choose the file import option. After importing, confirm that the profile appears in the list and switch it to the active configuration. If the subscription fails, do not repeatedly reinstall the client. First check for extra spaces in the link, verify the system time, and confirm that the current network can reach the subscription address.

  2. 02

    Choose a mode and proxy group

    For everyday use, choose rule mode so the configuration determines which connections go direct and which use a proxy. Then open the Proxy page and select an available node in a group such as “Node selection.” Auto-select groups perform health checks according to the configuration, but panel results reflect only the response from a specific test address—not download speed or the real experience across every website.

  3. 03

    Enable the proxy and check match logs

    On desktop, enable the system proxy first; on mobile, confirm system VPN authorization. Then visit a site that requires a proxy. The Connections page should show the request, matched rule, and proxy group. If the browser works but terminal programs do not, consider enabling TUN mode. If no application can connect, recheck configuration status, proxy-group selection, and system time one by one.

Project and configuration sources

The Clash open-source ecosystem and the mihomo core

The core, graphical client, and configuration service occupy different layers. Understanding their relationship makes it easier to identify update sources, compatibility boundaries, and the location of a fault.

From the Clash core to community forks

Clash began as a rule-driven proxy core that established its configuration syntax and proxy-group model. After the original project stopped receiving updates, the community continued maintaining compatible forks. mihomo preserves common configuration structures while adding support for the network stack, rule sets, DNS, and protocols. Today’s desktop and mobile clients generally handle the graphical interface, system permissions, subscription management, and update entry points, while the integrated core processes the actual connections.

“Clash client” does not refer to one fixed interface. Clash Plus, Clash Verge Rev, FlClash, Clash Nyanpasu, and ClashX Meta each handle window interaction, tray menus, and platform integration, while mihomo is closer to the underlying execution component. When choosing a client, check the operating system and processor architecture first, then consider whether you need TUN, rule overrides, configuration merging, or LAN sharing.

The configuration file determines connection behavior

Subscription providers typically generate nodes, proxy groups, and rules. The client saves this remote content as a configuration file and passes it to the core for loading. The system proxy only forwards connections from apps that support proxy settings to a local port; TUN mode covers more programs through a virtual interface. Rule mode then determines which proxy group handles each request. An inconsistency at any layer can appear as “the client is connected but nothing loads.”

Troubleshoot by layer: first confirm that the configuration loads successfully, then verify that the proxy group has a usable exit, next check whether the system proxy or TUN is active, and finally inspect rule matches in the connection log. Switching every option at once only adds variables. Error types, request targets, and policy names in the log are more informative than simply observing toggle states.

Core updates

Core updates primarily affect protocol implementation, rule processing, DNS behavior, and network-stack compatibility. Whether a graphical client adopts a new core is decided by its maintainers, so different clients may differ in supported fields and defaults even when they load the same configuration. Read the client’s release notes before updating and keep the currently working configuration.

Client updates

Client updates usually address system permissions, the window interface, subscription tasks, tray interaction, and core integration. If a desktop upgrade causes the proxy service to fail, permission prompts to repeat, or the tray icon to disappear, check client compatibility first instead of immediately changing node configuration. Discontinued clients are best treated as references for legacy environments.

Subscription updates

Subscription updates are controlled by the remote configuration source and may change nodes, proxy groups, and rules. If an existing policy name disappears after an update, recheck the default groups and manual selections. Maintain personal rules through a local override or separate profile to prevent remote updates from overwriting temporary changes. Treat the subscription link itself as sensitive access information.

Latest articles

Clash configuration principles and usage

The articles cover the relationship between the core and clients, network testing principles, and multi-device configuration approaches—useful reading after the initial connection is working.

Ecosystem

The Clash open-source ecosystem: how mihomo, Clash Verge, ClashX, and other forks fit together

From the original Clash core to mihomo, then to graphical clients such as Verge, ClashX, and Nyanpasu, this article explains the maintenance boundary between core and interface and provides criteria for choosing by platform and features.

Read the full article
Networking

How Clash node latency tests work: why panel milliseconds do not equal real speed

Breaks down the test address, DNS, TCP, and HTTP request paths; explains why a low-latency node can still stall; and shows how to evaluate nodes using stability, bandwidth, and performance on the target site.

Read the full article
Cross-platform

One Clash configuration across multiple devices: practical options for subscriptions, syncing, and backups

Compares unified subscription updates, configuration-file syncing, and self-hosted configuration management, covering desktop/mobile field differences, conflicts, and safe handling of sensitive links.

Read the full article