For everyday use, start with Clash Plus. The GUI installers below are x64 builds. Windows ARM users should check app emulation and network service compatibility; a successful x64 installation doesn’t guarantee every feature will work.
A good choice for everyday tasks, from installation and configuration import to selecting a proxy group. Run the installer, then import a subscription or local configuration on first launch and enable the system proxy. If you need TUN, follow the client prompts to grant service permissions. Don’t let another client control network traffic at the same time.
Official site: clashplus.io. If you already have an older client, back up custom rules before migrating your configuration.
A desktop client for managing subscriptions, rules, and runtime logs in a GUI. After installation, check the service status and local listening port, then choose between the system proxy and TUN. If Windows reports missing components, install the required dependencies as instructed instead of repeatedly reinstalling the app.
A cross-platform client with a graphical interface. For a standard desktop installation, choose the EXE. The ZIP is useful if you want to choose the program directory yourself; after extracting it, check runtime dependencies and service permissions. Updating the program doesn’t update your subscription, so check both the configuration and proxy group after installation.
Another desktop GUI option for users who want to adjust settings and monitor connections in an interface. When migrating from another client, import the original subscription first, then restore overrides individually. Configuration merging can differ between clients, so copying the entire user data directory isn’t recommended.
Kept for reference when reproducing or migrating legacy environments. This client is no longer maintained, so don’t expect compatibility with newer systems or configuration syntax. For new installations, choose one of the clients above. If you need this archived build, keep a copy of your existing configuration and avoid loading configurations with newer fields in its older core.
Windows requirements and pre-install checks
Check
What to check
Recommendation
Operating system
Use a supported version of Windows 10 or 11 when possible; check each installer for its minimum version
On older systems, check runtime component support. Don’t use an archived client as a substitute for maintaining your OS.
CPU architecture
Settings → System → About → System type; the GUI installers here are x64
x64 packages don’t work on 32-bit systems. Check compatibility before installing on an ARM device.
Network permissions
System proxy and TUN have different permission requirements
Installing a service may trigger UAC. Grant firewall access only for the intended use.
After installation, test a browser first, then other apps. If only the browser works, check whether the app respects the system proxy before changing installers. See the Windows setup guide for full instructions.
macOS Clients
Check the chip type in About This Mac. Apple Silicon and Intel require different builds. Some compatibility links currently point to x64 files, as noted below; these aren’t native ARM builds.
Download the DMG for your chip. Open the disk image, move the app to Applications, and launch it from there. Import a configuration on first use, make sure a proxy group has an available option, then set the system proxy. If macOS requests network extension or service permissions, verify the app name before allowing access.
Official site: clashplus.io. Quit your existing proxy client before switching to avoid system proxy settings overwriting one another.
Manage configurations and proxy modes in a GUI. Both links currently point to x64 builds. Apple Silicon users should check Rosetta and related service compatibility before installing. After installation, check that the core starts before importing a subscription; a working interface doesn’t prove the network service is running.
A good option if you want a similar interface across multiple devices. The current compatibility link is for an AMD64 build; Apple Silicon users should check translation support before installing. When migrating, keep the original subscription and local rules. Start with just one traffic-capture method to help distinguish permission issues from configuration problems.
No longer maintained; kept for migrating existing setups and referencing legacy configurations. The current compatibility link still points to an x86_64 build, not a native ARM package. For new devices, choose a maintained client. Before migrating, note the old configuration path, listening port, and proxy group selection; copying the app alone won’t bring over local settings.
macOS requirements and pre-install checks
Check
Requirement
Where to check
OS version
Minimum versions vary by client. Check the app prompts and release notes before installing.
System Settings → General → About
Chip type
Choose ARM64 for Apple Silicon and x64 for Intel. Check Rosetta compatibility for x64 builds.
“Chip” or “Processor” field
Permissions and location
Move the app to Applications. Network services may require permission.
Privacy & Security and network-related items in System Settings
If macOS blocks the app from opening, check the downloaded file and the security warning first. Avoid disabling system-wide security protections. See the macOS setup guide for the recommended order for installation, subscription import, and network permissions.
Android Clients
Most recent phones use ARM64, but check which app architectures your device actually supports. Install the APK, then import a configuration. If Android asks for VPN permission on first connection, make sure you launched the client you intended to use.
For everyday subscriptions and proxy connections on Android phones. After downloading, allow installation only for the browser or file manager you’re using, then import a configuration. If Android stops the connection after you switch apps, check background activity, battery optimization, and your device maker’s power-saving settings instead of reinstalling repeatedly.
Official site: clashplus.io. This is an ARM64 package; 32-bit devices should choose a client below that matches their architecture.
Available in ARM64, ARM 32-bit, and universal packages. If you know your device architecture, choose the matching build. Otherwise, consider the universal package, which is usually larger. After importing a subscription, update the configuration and check the parsing results before connecting. This helps distinguish a configuration download issue from an APK installation problem.
For Android phones, tablets, and devices with a matching architecture. Emulators don’t always use the ARM64 architecture common on phones, so choose a build based on the emulator’s ABI. After installation, check that the configuration is active before granting VPN access. Other VPN apps can interfere with the connection, so close them before testing.
For Android users with configurations in a format Surfboard supports. Surfboard’s configuration syntax differs from Clash YAML; changing the file extension alone won’t make a file compatible. Before downloading, check that your subscription provider offers a compatible format, and verify protocol and rule support before installing and testing the connection.
Android requirements and pre-install checks
Check
What to check
Notes
OS version
Check the minimum OS version and installer prompts for each APK
If your OS is outdated, first confirm which versions the client supports
App architecture
ARM64 uses arm64-v8a; 32-bit ARM uses armeabi-v7a
Check your device specifications if unsure; for emulators, check x86_64 support
Installation and runtime
Permission to install from the selected source, VPN permission, and background runtime settings
If you encounter a signature conflict, back up your configuration first. Don’t uninstall immediately and risk losing data.
If the installer says “Not compatible,” check the OS version and architecture first. A “Signature mismatch” indicates an issue with the upgrade source and requires a different fix. See the Android setup guide for connection and battery settings.
iOS Client
Install Clash Plus from the App Store. Before installing, check the store listing for OS compatibility and app details. After installation, import a configuration in the client and grant VPN permission.
Open the App Store listing and check the app name and compatibility before installing. On first launch, add a valid configuration, then allow the VPN configuration when prompted by iOS. Select a proxy group and connect. Before switching configurations, make sure the new one has loaded, then test access in the target app.
Official site: clashplus.io. Check the system requirements and app details on the store listing before installation.
iOS requirements and pre-install checks
Check
Requirement
Recommendation
OS compatibility
Check the current App Store listing
Check device compatibility and OS requirements before installing
Network permissions
Allow the VPN configuration when prompted on the first connection
Check which app is named in the system permission prompt
Configuration
A valid subscription or a configuration file supported by the client
Check proxy groups after importing. Don’t rely on the VPN icon alone to confirm connectivity.
A VPN-connected status only means the tunnel is enabled. Proxy nodes, DNS, and routing rules can still affect individual apps. First try an address you know is reachable, then test the apps you actually use. See the iOS setup guide.
Linux Clients
For desktop environments, start with a GUI client. The packages below are AMD64 builds; choose DEB or RPM to match your distribution. For servers, containers, and routers, see the Mihomo core section—there’s no need to install a desktop interface.
A top choice for Linux desktops. Debian- and Ubuntu-based distributions typically use DEB; Fedora and other RPM-based distributions use RPM. Follow your distribution’s package management conventions to install the app and dependencies. After launch, check the core status, then configure the desktop proxy and import your settings.
For managing connections and configurations in a GUI on Debian-based desktops. Before installing, check that your system is AMD64 and has the required graphical dependencies. Terminal apps usually don’t follow the desktop system proxy automatically; configure proxy environment variables per app or set up TUN after confirming the routing scope.
Linux requirements and pre-install checks
Check
How to check
Requirements and recommendations
CPU architecture
Run uname -m
The GUI packages here are for x86_64 / AMD64. For ARM servers, see the core section.
Distribution package format
Check your distribution documentation and package manager
DEB and RPM aren’t interchangeable by renaming. Resolve dependencies during installation.
Runtime environment
Check the desktop session, runtime libraries, and service permissions
For headless systems, use the standalone core. For TUN, check network management and firewall rules separately.
If the interface opens but the core fails to start, check execution permissions, port conflicts, and service logs first. Before changing the default route on a remote machine, keep a management connection available for recovery. See the Linux setup guide for deployment details.
Standalone Mihomo Core
For servers, routers, and users who manage services themselves. The core doesn’t include a GUI; desktop and mobile users should choose one of the GUI clients above.
Download Mihomo Core · Extract archives before use
Prepare a valid YAML configuration, a writable data directory, and an available listening port. Extract the program from the ZIP and run it. GZ files contain a binary that must be extracted; Unix-like systems also need execute permissions. Install DEB packages with your distribution’s package manager, not as standalone binaries.
On Linux, run uname -m to check the architecture, then consult your firmware documentation. Similar architecture names don’t mean the ABIs are the same; don’t mix MIPS, MIPSel, and softfloat packages. If you see “cannot execute binary file,” check the architecture instead of repeatedly retrying with elevated permissions.
Test the configuration and integrate the service
Rename the extracted program to mihomo and place config.yaml in the same working directory. Then you can test whether the configuration syntax is valid. A successful test only means the configuration parses; node connectivity and DNS routing still need to be checked separately. Before running it as a service, note the working directory, startup user, and log location.
The commands above are for manual testing in Unix-like terminals. On Windows, use the corresponding executable name with the same options. If you need TUN or transparent proxying, configure permissions and routes based on your system. Don’t apply a GUI client’s service configuration directly to a router. For general setup and platform-specific details, see the cross-platform guide.
Before and after installation
Handle installation, configuration, and network testing separately to pinpoint which layer is causing a problem.
Before installation: keep a recoverable copy of your configuration
Before upgrading, note your current client, configuration path, and proxy mode, then back up custom rules and overrides. Subscription links may contain access credentials; don’t share them in public comments, screenshots, or online conversion tools. When switching clients, reimport the original subscription first, then restore local changes as needed.
Having multiple clients on one device doesn’t mean you can run them at the same time. Before installing a new client, quit the old one and turn off its system proxy or tunnel to avoid conflicts with ports, virtual network adapters, and DNS settings. When an installer requests permissions, check the source and purpose before proceeding.
After installation: load a configuration, then test connectivity
On first launch, check that the core is running, import a subscription or local YAML file, and confirm that the configuration is active and a proxy group is available. Enable one traffic-capture method, then test a browser followed by the apps you actually use. Some apps ignore the system proxy and require separate settings or TUN.
If you can’t connect, save the error message and relevant logs. First determine whether the issue is configuration parsing, node connectivity, DNS resolution, or routing. Logs may contain subscription URLs, domains, or node details; redact sensitive information before sharing. See the Clash getting started guide, or check the quick glossary for terminology.
Download and installation FAQs
How to choose packages, upgrade, and handle archived clients. For connection issues, see common questions.
Which Clash client should I install first?
For Windows, macOS, Android, and iOS, start with Clash Plus; for Linux, start with Clash Verge Rev. Check your OS and CPU architecture before downloading a GUI client. The Mihomo core is for users who want to manage configuration, startup options, and system services themselves.
How do I choose between ARM64, x64, and universal packages?
Choose based on the CPU architecture reported by your operating system, not the device’s appearance. On Windows, check System type; on a Mac, check the chip in About This Mac; on Android, check the device specifications; on Linux, run uname -m. Universal packages can work on Android devices when the architecture is unknown, but they’re usually larger. Some Mac downloads currently link to x64 builds; Apple Silicon users should check Rosetta compatibility.
Why can’t I connect right after downloading the installer?
Installing the client and configuring a proxy are separate steps. After installation, import a valid subscription or local YAML configuration, select a proxy group, then enable the system proxy or configure TUN if needed. Installers don’t include working proxy nodes. If you can’t connect, first check whether the configuration loaded and review the logs.
What should I do before upgrading a client?
Note your current client, configuration path, and proxy mode, then back up local rules, overrides, and configuration files. Quit the old client before running the installer to avoid port or virtual network adapter conflicts. When switching clients, reimport your configuration rather than overwriting the entire user data directory.
Are discontinued clients suitable for new devices?
Clash for Windows and ClashX Meta are kept as archived downloads for reproducing legacy environments and migration. Since they’re no longer maintained, compatibility with future OS changes, new protocols, and configuration fields isn’t guaranteed. For new devices, choose a maintained client. Back up old configurations and check the parsing logs before migrating them.