Choose a client by operating system, then check the CPU architecture.
GUI clients handle subscriptions, proxy group selection, and system proxy settings. Mihomo core packages are for command-line, server, and router deployments. Client installers do not include proxy configs; after installing, import a subscription and configure network routing.
Choose in this order: platform → architecture → package formatFor desktop use: GUI clientFor server deployments: Mihomo core
Windows Clients
The GUI installers below are for x64 systems. Check your system type under Settings → System → About. Windows on ARM devices require a separate compatibility check; an x64 package is not a native ARM64 build.
Clash Plus
Top pick
A good fit for importing subscriptions and switching proxy groups through a graphical interface. After installing, add a config, check the rule mode and proxy selection, then enable the system proxy. To route traffic from more apps, follow the TUN setup guide.
For desktop use that calls for config management, overrides, and service mode. Import your existing YAML config and check that it parses correctly. Before enabling service mode or TUN, make sure the old client is closed to avoid having two clients intercept network traffic at once.
A good option if you want a consistent interface for managing configs. Use the installer for a standard desktop setup; the ZIP package must be extracted, and you’ll need to manage the launch shortcut yourself. Switching package formats does not migrate subscriptions, overrides, or proxy group selections from another client.
Provides a GUI for managing configs and connections. When moving an existing config, first check that the core supports its protocols and rule fields, then restore custom overrides. Don’t replace the current data directory with another client’s entire data folder.
Archived packages are available for migrating existing setups and checking compatibility. Older cores may not recognize protocols, DNS settings, or rule fields in newer subscriptions. For new installations, choose a maintained client above. Back up your config and custom rules before migrating.
Windows 10 or 11 x64 with active system support is recommended. Check the installer for the exact minimum version and runtime requirements.
Network permissions
You can usually configure the system proxy in the app. Installing a service, virtual network adapter, or TUN may require administrator privileges.
Upgrades and migration
Close the old client and turn off the system proxy before installing. Back up your config, and don’t run multiple proxy clients at the same time.
macOS Clients
Check your chip under About This Mac. Apple Silicon and Intel require different architectures. Some architecture links currently point to x64 files, as noted on the relevant cards. Check the actual file architecture and system compatibility before installing.
Clash Plus
Top pick
Installers are available for Apple Silicon and Intel. Open the DMG and move the app to Applications; follow the system prompts to authorize it on first launch. After importing a config, verify the rule mode, then choose the system proxy or TUN based on which apps need routing.
For managing configs and overrides through a GUI. Both architecture links currently return an x64 DMG. On Apple Silicon, check Rosetta compatibility before using it; for a native ARM64 build, use the installer above.
For managing subscriptions and proxy groups on desktop. Both Apple Silicon and Intel links currently point to AMD64 files, so the button labels do not indicate native ARM support. After installing, check that the config loads before restoring network interception settings.
Kept for archived builds and migrating older setups. Both architecture keys currently map to an x86_64 DMG; check compatibility yourself on Apple Silicon. When migrating an existing config to a maintained client, review core fields and proxy group references.
Choose ARM64 for Apple M-series Macs and x64 for Intel. If the package is x64, check Rosetta support before running it on Apple Silicon.
macOS version
Minimum macOS versions vary by client. Check compatibility notes from the installer and your system.
Permissions and install location
Move the app to Applications before opening it. Grant network extension or helper permissions if needed; disabling system security is not a standard installation step.
Android Clients
Recent ARM phones usually use arm64-v8a; older devices may use armeabi-v7a. Check your device’s CPU architecture before downloading. The first time you connect after installing an APK, Android will ask you to authorize the VPN.
Clash Plus
Top pick
ARM64 APK available here. After installing, add a subscription or local config, choose a proxy, and connect. If Android restricts background activity, allow the necessary background use in your device’s battery settings, then check that the connection stays active when the screen is locked.
ARM64, ARM, and universal APKs are available. If you know your device’s architecture, choose the matching build; otherwise, try the universal version. Importing a config and enabling the VPN are separate steps—a config alone does not route device traffic through a proxy.
Choose an ARM64 or ARM build for your device. When migrating, reimport your subscription and check per-app settings and proxy group selections. Android usually allows only one app to use the system VPN at a time, so stop any other VPN app before connecting.
For users with an existing compatible config. Its config format differs from Clash YAML, so changing the file extension is not enough to import it. First check which formats your subscription provider supports and whether rules, proxy groups, and node fields can be converted.
arm64-v8a is ARM64; armeabi-v7a is 32-bit ARM. A universal package does not necessarily support every Android version.
Install permissions
Grant install permission only to the file manager or browser you use to open the APK. Check the installer for the minimum Android version.
VPN and background activity
Authorize the VPN and check whether another VPN app is in use. Background restrictions can interrupt connections when the screen is locked and prevent subscriptions from updating.
iOS Client
Install Clash Plus from the App Store. Check the product page for current version, system compatibility, and store details. After installing, import a config and authorize the VPN.
Clash Plus
Top pick
Manage proxy configs on iPhone and compatible devices. On first launch, add a subscription or import a config, then follow the system prompts to allow a VPN configuration. Check that a proxy group has an available option before connecting, then verify how traffic is routed.
Check the App Store listing for supported system versions and devices. Install and update through iOS.
Network routing
Authorize the system VPN configuration when connecting for the first time. If you have other VPNs installed, check which configuration is currently active.
Config source
Prepare a valid, compatible subscription or config file. After importing, check proxy groups, rule mode, and DNS settings.
Linux Clients
AMD64 GUI clients are available here. Choose DEB for Debian- and Ubuntu-based distributions, or RPM for distributions that use RPM package management. For headless servers, the Mihomo core is usually a better fit.
Clash Verge Rev
Recommended
DEB and RPM packages are available. Installing through your distribution’s package manager also resolves dependencies. Import a config on first launch. If terminal apps don’t follow the desktop system proxy, set proxy environment variables separately or configure TUN as needed.
AMD64 DEB package for compatible architectures and package management environments. The desktop proxy toggle affects only apps that honor the system setting; it does not route all traffic. After installing, check connection logs for browser and command-line app behavior.
Run uname -m. x86_64 matches the AMD64 package here; aarch64 devices cannot run a native AMD64 program.
Desktop and dependencies
GUI clients require a desktop environment and the necessary runtime libraries. Check dependencies with your distribution’s package manager and installation output.
TUN permissions
Check TUN device, routing, and firewall permissions. Container deployments also require the correct device mappings and network capabilities.
Mihomo Core
For server, router, and self-managed deployments. The core handles connections, rules, and DNS, but does not include a full GUI. For everyday desktop use, choose one of the GUI clients above to avoid managing startup arguments, permissions, and service lifecycles yourself.
Name the extracted executable mihomo and place config.yaml in the working directory. The commands below are for Unix-like systems where the file has execute permission. Validate the config first, then run in the foreground to inspect startup output. Successful validation means the config can be parsed; it does not guarantee that proxies connect or rules behave as expected.
./mihomo -t -d .
./mihomo -d .
Once the foreground run looks good, configure startup through your system’s service manager. The service user must be able to read the config and rule resources; TUN also requires network permissions. Restrict the controller’s listen address and enable authentication—never expose it directly to the public internet. See the Clash Configuration Reference for all supported fields.
Core Runtime Requirements
Check
Requirements and notes
System and ABI
Match the target operating system, CPU architecture, and runtime environment. Embedded devices also require checks for floating-point ABI and firmware compatibility.
Config and resources
Prepare config.yaml and its referenced rules, proxy providers, and GeoIP data. Ensure the service user has the required read and write permissions.
Service permissions
Local proxy use and TUN routing have different permission requirements. Grant only what you need, and check for port conflicts and firewall rules.
AFTER INSTALL
Setup After Installation
Installing is just the first step. Work through config, proxy selection, network routing, and verification in order to distinguish config errors from proxy issues and system network settings.
Import a config
Get a compatible subscription from a trusted source or import an existing YAML file. Subscription URLs often contain credentials, so don’t share them in public screenshots or third-party sites. After the config appears, make sure it’s selected as the active one.
Choose a proxy
Start in rule mode and choose an available proxy in the relevant group. Group names must match those referenced by the rules. For config parsing errors, check indentation, field names, and core support; repeatedly toggling the system proxy won’t fix invalid config syntax.
Enable network routing
On desktop, verify the system proxy first; on mobile, authorize the VPN. Consider TUN only if you need to route traffic from apps that ignore the system proxy. Turn off network routing in the old client first to avoid conflicts with virtual adapters, routes, or listening ports.
Check connection logs
Visit a site, then check which rule matched and which proxy was selected. Direct connections can be expected in rule mode. If only some apps fail, check DNS, app proxy settings, and UDP support. See the Setup and Connection Guide → for the full walkthrough.
PACKAGE NOTES
Download and Installation FAQ
Which Clash client should I install first?
Start with Clash Plus on Windows, macOS, Android, or iOS, and Clash Verge Rev on Linux. Check your CPU architecture and package requirements, then import a compatible subscription or config. The client does not include a proxy service. For a side-by-side look at interfaces, config management, and use cases, see Clash Client Comparisons.
What’s the difference between ARM64, x64, and universal builds?
x64 and AMD64 usually refer to the same 64-bit x86 architecture; ARM64 is for 64-bit ARM processors. Android universal builds include multiple architectures and are typically larger. Check your system information and the package’s actual architecture rather than choosing based on device brand alone. Some macOS links currently return x64 files; check the notes on the corresponding cards.
Why can’t I use a proxy as soon as the download finishes?
The installer only provides the client. You’ll also need to import a valid subscription or config, choose an available proxy, and enable the system proxy or TUN as needed. In rule mode, some connections may go direct by design; check the connection log to see how traffic is routed. If no sites load after enabling routing, turn it off to restore basic connectivity, then use the FAQ troubleshooting guide to check DNS and port conflicts.
What should I back up before upgrading?
Back up your current config, subscription URL, override files, and custom rules. Note your system proxy, TUN, and startup settings. When switching clients, disable network interception in the old client first, then restore settings one by one in the new client. Never post subscription URLs or controller API keys publicly. After upgrading, make sure the config loads before restoring startup settings, so a broken config doesn’t intercept network traffic every time you sign in.
Should I install a client that’s no longer maintained?
Clash for Windows and ClashX Meta remain available for migrating existing setups and checking compatibility. For new deployments, choose a client that is still maintained. Older cores may not recognize fields or protocols in newer configs. If a field isn’t supported, consider migrating the config rather than randomly deleting sections from the subscription.
How does the Mihomo core differ from a GUI client?
The Mihomo core handles connections, rule matching, DNS, and related functions, but does not include a full desktop interface. GUI clients provide config import, proxy group selection, and system integration. Use the core for server or router deployments; for everyday desktop use, choose a GUI client. Self-hosted deployments also require managing config directories, service permissions, logs, and startup. See the Configuration Handbook for related fields.