Open-source ecosystem · Cross-platform clients

Clash for Apple

Review clients for five major platforms, subscription import steps, and rule-based routing guides in one place. Choose the right client first, then configure it—the process becomes much clearer.

Free forever Open-source code Chinese documentation mihomo kernel guide
Configuration guide

From subscription imports to rule-based routing

Clash has plenty of settings, but the practical workflow is consistent: choose a client, import a subscription, select a proxy mode, then configure DNS and TUN as needed.

Subscription import

Put the configuration URL in the right place

Subscription links are usually generated by the service provider and contain nodes, proxy groups, and rules. Import them through the client’s “Subscriptions,” “Configuration,” or “Profiles” section—not by pasting the full URL into a node name. After the download finishes, select the newly imported profile so its nodes and proxy groups become active.

If the list is empty after an update, first confirm that the URL is still reachable, then check that it was copied in full. Some subscriptions require a specific request identifier, while others need format conversion first. Change one condition at a time during troubleshooting so cache, network, and format issues do not overlap.

Profile nameDaily subscription
Update methodManual or scheduled
Active statusSelected

Choosing a proxy mode

Rule is suited to everyday use, letting rules decide between direct and proxied connections; Global sends most connections to a chosen proxy group and is useful for temporary testing; Direct connects traffic without a proxy and can quickly show whether the proxy chain is the source of a problem. Switching modes changes traffic decisions only—it does not replace subscription updates or fix faulty nodes.

How to keep configuration changes traceable

A subscription profile may be replaced entirely during an update. Put long-term custom rules in the client’s supported override, extension-script, or local-configuration entry point. Record the original value before editing and test one target afterward. If the result is not right, you can roll back quickly instead of mixing DNS, TUN, and rule issues into one tangled problem.

Platform access

Choose a Clash client by device

Installation methods, permission models, and background policies vary by operating system. Open the relevant platform page, then choose a client based on its interface, kernel capabilities, and maintenance status.

Windows

Suitable for desktop work, browsers, and everyday apps. After installation, import a subscription and enable the system proxy; configure TUN if you need coverage for command-line tools or special programs. The download page separates actively maintained graphical clients from archived projects, making it easier to choose by interface preference and kernel capabilities.

Go to downloads

macOS

Suitable for Intel and Apple Silicon Macs. Check the processor architecture during installation and allow the client to add a network configuration. Menu bar clients are streamlined, while full desktop clients make it easier to inspect connection logs, matched rules, and override settings. If permissions appear on first launch, confirm each requested item in System Settings.

Go to downloads

Android

Suitable for phones, tablets, and TV devices. Android clients typically capture traffic through the system VPN interface, which triggers an authorization request the first time they connect. If the connection stops after running in the background, check battery optimization and background restrictions. If only certain apps are affected, inspect per-app proxying, LAN bypass, and DNS settings.

Go to downloads

iOS

Suitable for iPhone and iPad. iOS clients establish connections through the system network extension, with profile imports, proxy-group switching, and on-demand connections handled in the app. If the connection state becomes abnormal after switching between cellular data and Wi-Fi, re-establish the system VPN session and check that the subscription has updated to the current profile.

Go to downloads

Linux

Suitable for desktop Linux, servers, and some router environments. Desktop users can choose a graphical client, while server administrators often use the mihomo kernel and configuration files directly. Before deployment, confirm the CPU architecture, service permissions, listening address, and firewall rules, and avoid exposing the management interface to untrusted networks.

Go to downloads
View all clients →

The download center lists available clients, system requirements, and maintenance status by platform. The homepage provides entry points only, avoiding version details that can quickly become outdated.

Open-source ecosystem

How clients, kernels, and configurations fit together

The graphical interface handles the user experience, while the mihomo kernel handles protocols, rules, DNS, and traffic processing. Understanding this split makes both client selection and troubleshooting more straightforward.

From Clash configuration format to the mihomo ecosystem

The Clash ecosystem has long centered on YAML configuration, proxy groups, and rule-based routing. As the original projects changed status, community development gradually shifted toward successor kernels and clients that remain compatible with Clash configurations. mihomo preserves familiar configuration concepts while expanding protocol, rule-set, DNS, and TUN capabilities. Many desktop and mobile clients today are essentially graphical interfaces that package these kernel features for easier use.

“Clash client” therefore does not refer to just one app. Projects may use different interface technologies, update channels, and permission models, while subscriptions, proxy groups, Rule mode, and YAML configuration still share many concepts. This site organizes these projects by platform and clearly archives clients that are no longer maintained, keeping familiar legacy names separate from current maintenance status.

What open-source code makes verifiable

Open-source project code, commit history, issue discussions, and release notes can be reviewed collectively by the community. For everyday users, there is no need to read every line of code: maintenance frequency, issue responses, build instructions, and community discussion can help reveal a project’s health. Developers can trace rule behavior, protocol implementations, and platform compatibility issues, then submit fixes or reproduction materials when needed.

Open source does not mean every third-party build comes from the same maintainer. Before downloading, confirm the project name, target platform, and architecture, then read the installation instructions. Windows, macOS, and Linux often offer files for multiple architectures, while Android may distinguish universal packages from processor-specific builds. The download pages explain these differences separately, reducing guesswork based on filenames alone.

What the kernel and graphical client each do

The kernel reads the configuration and handles network connections, determining DNS resolution, rule matches, proxy-group selection, and the final outbound route. The graphical client manages subscriptions, the system-proxy switch, kernel startup, connection logs, and platform permissions. When something goes wrong, first identify the layer involved: settings that cannot be saved usually point to the client; unexpected rule matches require checking the configuration; kernel startup failures call for reviewing ports, permissions, and configuration syntax.

This layered approach is more effective than repeatedly reinstalling everything. When a subscription update fails, test the subscription URL first; when a usable node takes the wrong route, inspect the rules; when the browser works but command-line tools do not, compare the system proxy with TUN; when domain access fails but direct IP access works, investigate DNS. Validate one layer at a time—the process becomes like opening folders one by one instead of overturning the entire desktop.

Treat each update mechanism separately

Client updates, kernel updates, subscription updates, and geographic database updates are four different things. Client updates mainly affect the interface, platform compatibility, and integration; kernel updates may change protocols, rules, or the network stack; subscription updates determine nodes and groups through the service provider; GeoIP and GeoSite databases affect the matching results of some geographic rules.

Routine maintenance does not require changing everything at once. Keep the current configuration working first, then update only for a clear reason. Before updating, export local overrides and important settings; afterward, verify kernel startup, subscription loading, proxy-group selection, rule matches, and DNS in order. If something breaks, review the most recently changed item—it is easier to recover than replacing the client, kernel, and configuration simultaneously.

Technical notes

Recent configuration and troubleshooting articles

Long-form guides covering failed subscriptions, TUN capture, and DNS resolution. Each article focuses on one topic, making it easier to search by symptom.

View all articles →

You can also read about multi-device configuration sync, GeoIP and GeoSite database updates, and related topics.