Choose your operating system first, then select a package. Clash Plus is our recommended pick for Windows, macOS, Android and iOS; on Linux, start with Clash Verge Rev. For a self-managed service deployment, head to the Mihomo core section.
Five operating systemsGUI clients and core packages listed separatelyArchived projects clearly marked
Windows Clients
The desktop packages below are primarily for x64 systems. Check your system type under Settings → System → About. After installation, import a configuration, then choose between the system proxy and TUN. When setting things up for the first time, don’t enable traffic interception in multiple clients at once.
Clash Plus
Recommended
A good choice if you want to get started with subscription import, mode selection and everyday connections. The Windows download is an x64 installer. Follow the setup wizard, then add a subscription or local file from the configuration screen. Before connecting, make sure a valid configuration is selected. Rule mode determines routing based on your rules; it does not replace the subscription itself.
For desktop users who want configuration management, rule inspection and easy access to TUN settings. After importing a configuration, enable it on the configuration page, then check the system proxy and service mode in settings. TUN requires a virtual network interface and system permissions. First verify that a standard proxy connection works, then enable traffic interception step by step to help distinguish configuration issues from permission problems.
For users who want a similar workflow on desktop and mobile. Choose the EXE for a standard installation, or the ZIP if you prefer to extract and manage the app directory manually. The portable version still requires you to manage configuration storage, the system proxy and any necessary permissions; extracting the files does not enable traffic interception.
For users looking for an alternative desktop interface for managing configurations. Whether a configuration field works depends on the selected core and its supported features, not just the client’s name. When migrating an existing YAML file, first check that its proxy groups and rule references load correctly. Restore local changes afterward, and don’t assume settings unique to the old interface are portable.
Archived download for migrating existing setups and comparing older configurations. For new installations, consider one of the clients above. Older cores may not support newer protocols or rule fields. A successful import does not guarantee that every feature will work as expected. Keep the original configuration and test it separately in a new client; never overwrite your only backup.
Modern client packages in this section are x64 / AMD64. Check the publisher’s current notes for supported Windows versions. For ARM devices, confirm system compatibility separately.
Installation permissions
Grant permissions when prompted. Service mode and TUN may require administrator privileges.
First launch
Check whether an older client is still running in the system tray to avoid multiple apps competing for mixed-port or changing the system proxy.
macOS Clients
Check your chip under About This Mac in the Apple menu. Choose a package based on whether your Mac has Apple Silicon or an Intel processor. A channel label doesn’t guarantee the file’s architecture: some channels currently point to the same x64 package, as noted below.
Clash Plus
Recommended
For importing configurations and managing everyday proxy connections on a Mac. Choose ARM64 for Apple Silicon and x64 for Intel. Open the DMG and follow the prompts to move the app to Applications. Launch it and import a configuration. If you enable system-level traffic interception, follow the permission prompts, then check connections in your browser and other apps.
For Mac users who need subscription management, local overrides and traffic interception settings. Enable a configuration first, then check the system proxy in settings. Both Apple Silicon and Intel channels currently link to an x64 DMG. Before using it on Apple Silicon, confirm Rosetta compatibility; this is not a native ARM64 build.
For users already familiar with FlClash on mobile who want a similar workflow on desktop. Desktop settings differ from mobile VPN permissions, so check each separately. Both macOS channels currently offer an AMD64 DMG. Apple Silicon users should confirm Rosetta is available. After importing the same configuration, recheck local settings such as the system proxy and TUN.
Archived download for users with an existing menu bar client, useful for checking older configurations during migration. For new installations, use one of the clients listed above. Both architecture channels currently point to an x86_64 DMG. Since the project is no longer maintained, don’t expect continued updates for new macOS releases or core features; check compatibility before use.
Archived · Both channels currently offer an x86_64 DMG
Apple Silicon uses ARM64; Intel uses x64. If you’re using an x64 package on Apple Silicon, confirm Rosetta compatibility.
OS support
Check the current release notes for the minimum macOS version. A file extension alone won’t tell you whether a package works on an older system.
Permissions & launch
Grant app and network permissions when prompted. Avoid disabling system security protections globally to solve an installation issue with a single app.
Android Clients
ARM64 works for most recent phones. Before installing an APK, allow the browser or file manager you used to download it to install apps. Grant VPN permission when connecting. Android typically allows only one active VPN service at a time, so check for conflicts with other VPN apps.
Clash Plus
Recommended
For Android users getting started with subscription import. This page provides an ARM64 package. After installing, add a configuration and confirm it loads before starting a connection. The system VPN prompt on first connection is part of traffic interception. If the connection drops in the background, check battery optimization and background activity restrictions; there’s no need to change every system setting right away.
For Android users who need Clash configuration support and Meta core features. ARM64 is the best choice for most recent phones; the ARM build is for compatible 32-bit devices. If you’re unsure of your architecture, use the universal build, which is usually larger. After importing a subscription, enable the configuration. Your proxy-group selection on the proxy page determines which outbound is used when rules match.
For users who want a configuration workflow similar to the desktop version. Choose an ARM64 or ARM package based on your device ABI; the x86_64 package is mainly for compatible devices and emulators. Mobile connections use Android’s system VPN interface to route traffic, which is different from the system proxy on desktop. Stop the existing VPN session before switching clients.
For Android users who already have a compatible Surge-style configuration. Surfboard is not a drop-in replacement for importing Clash YAML: check the configuration structure, policy definitions and supported fields. If you only have a Clash YAML subscription, choose one of the clients above instead of converting formats just to install an app.
Check your Android version and CPU ABI. See the client’s current package notes for the minimum OS version. ARM64 and 32-bit ARM packages are not interchangeable.
Installation permissions
Allow app installation only for the browser or file manager you actually use to open the APK, then follow the system prompts.
VPN & background activity
VPN permission is required for the first connection. If it disconnects when the screen locks, check battery optimization, background permissions and other VPN services.
iOS Clients
Check Clash Plus’s current system requirements and app details in the App Store. After installing, import a compatible configuration and follow the system prompts to authorize the VPN. Installing the app and having a usable configuration are separate steps; check your subscription and proxy-group selection before connecting.
Clash Plus
Recommended · App Store
For users managing proxy configurations on iPhone or iPad. The App Store listing has current device compatibility, system requirements and release notes. After downloading, open the app and add a subscription or file from the configuration screen. On the first connection, iOS will ask you to approve the VPN configuration. Once authorized, check the connection status. If a configuration won’t load, check its URL and format first; repeatedly deleting the system VPN configuration won’t fix the underlying issue.
Check the App Store listing for current iOS / iPadOS requirements and supported devices.
Connection permissions
When starting a connection, follow the prompts to add and authorize the VPN configuration. Check for other enabled VPN apps.
Configuration
Use a subscription or configuration file you’re authorized to access and that’s in a supported format. The app does not provide a proxy service.
Linux Clients
For desktop use, start with a GUI client. DEB packages are common on Debian and Ubuntu-based distributions; RPM packages are common on Fedora and similar distributions. Package format is only the first check: also confirm AMD64 architecture, runtime dependencies and desktop environment compatibility.
Clash Verge Rev
Recommended
For Linux desktop users managing Mihomo configurations, subscriptions and rules. Choose DEB or RPM for your distribution and let the package manager handle dependencies. Whether apps follow the desktop system proxy depends on their own settings. For more complete traffic interception, configure service mode and TUN after confirming a standard connection works. This avoids troubleshooting dependencies, permissions and routing all at once.
For Linux desktop users who want to keep using FlClash’s configuration workflow. This section provides an AMD64 DEB package; confirm your distribution supports this format before installing. After importing a configuration, check that proxy groups and rules load correctly, then review the system proxy and DNS. On a headless server, the Mihomo core below is usually easier to manage as a service.
Run uname -m to check your architecture. Packages in this section are AMD64 / x86_64; then choose a package format supported by your distribution.
Desktop dependencies
A GUI client needs a working desktop environment and its runtime dependencies. Check the current release notes for specific version requirements.
Network permissions
TUN and route management require appropriate system permissions. Avoid running the entire graphical interface as an administrator.
Download Mihomo Core
For users managing processes on servers and routers. Mihomo handles protocols, rule matching, DNS and more; the core package does not include a full GUI client. For everyday desktop or mobile use, choose one of the GUI clients above.
The configuration is usually stored as config.yaml in the working directory. Run mihomo -t -d ./config to check the configuration in that directory, then start Mihomo with mihomo -d ./config. On Linux, the extracted file needs execute permission. On Windows, adjust the command’s executable name to match the actual file. A successful configuration check does not verify upstream connections, permissions or system routing.
Mihomo Runtime Requirements
Check
Requirements & steps
Architecture
Choose a package for your operating system and CPU architecture. Don’t mix up ARMv7, ARM64 and MIPS packages.
Working directory
Make sure the configuration directory is readable and cache and data directories are writable. A service process and an interactive shell may use different working directories.
Traffic interception permissions
Local proxy ports and TUN require different permissions. Before enabling tun.enable, confirm that the virtual interface, routes and system permissions are in place.
After downloading: configuration steps
Test installation, configuration import and traffic interception separately. This makes it easier to pinpoint the problem instead of changing ports, DNS and system routes all at once.
Install first, then make sure the app launches
Open the installer for your platform, grant any required permissions and launch the client. Keep a backup of your old client’s configuration, but quit its tray process or VPN session first. If the system reports an incompatible package, revisit the architecture choice instead of downloading the same file repeatedly. If no configuration has been imported yet, an empty configuration screen is expected during setup, not necessarily a network problem.
Import a subscription and confirm the active configuration
Add a link from the client’s configuration or subscription screen, or import a local YAML file. After importing, make sure the configuration is selected; adding a file to the list without enabling it may leave the old configuration active. In a subscription, proxies, proxy-groups and rules each serve a different purpose: proxy definitions provide connection details, proxy groups determine available outbounds, and rules select a policy in order. Don’t rename proxy groups referenced by rules.
Start by testing a connection in Rule mode
For everyday use, start with Rule mode, corresponding to mode: rule. On desktop, enable the system proxy and test a browser connection. On Android and iOS, authorize the system VPN and test the target app. If you need to route apps that ignore the system proxy, check the permissions and routing requirements for TUN. When changing ports, also update the port used by your apps: mixed-port is not the subscription update URL.
Check the client type, device architecture and configuration first. Expand a question below for an answer; see the tutorial for detailed installation and connection steps.
Installing Clash for the first time? Choose a client or the Mihomo core?
For everyday desktop or mobile use, choose a GUI client and start with the recommended option for your platform. The Mihomo core is for server and router users who manage configuration files, processes and system services themselves; the core package alone does not include a full graphical setup interface.
How do I choose between x64, AMD64, ARM64 and universal builds?
x64 and AMD64 usually refer to the same 64-bit x86 architecture, regardless of processor brand. ARM64 is for 64-bit ARM devices. On Windows, check your system type under Settings → System → About; on macOS, check the chip under About This Mac. If you’re unsure of your Android architecture, choose the universal build of Clash Meta for Android. Always confirm the architecture listed for the specific package.
Why can’t I connect right after downloading?
An installer is not a working proxy configuration. Import a subscription or YAML configuration you obtained and are authorized to use, select it, and check your proxy groups. Then enable the system proxy or an appropriate traffic-routing option. Don’t submit subscription URLs to untrusted conversion services or include them in public screenshots.
The installer says it’s incompatible or won’t launch. What should I check first?
Check your operating system, processor architecture and package format, then compare them with the publisher’s current system requirements. If an older client is still running, quit its tray process and disable its traffic interception before trying again. Keep a configuration backup and note the exact error message; don’t keep changing network settings just because the app won’t launch.
Are Clash for Windows and ClashX Meta suitable for new installations?
Both projects are no longer maintained. Their archived downloads remain available for migrating existing setups, comparing older configurations and compatibility research. For a new installation, start with the client listed for your platform above. An older app’s ability to install does not guarantee support for newer protocols, rule fields or operating systems.
What should I keep before upgrading or switching clients?
Back up your configuration files, local overrides, rule-set references and any proxy-group selections you need. Confirm that your subscription URL is still accessible. Client UI settings, scripts and configuration directories may not be compatible. During migration, import the original configuration first, then restore ports, DNS and TUN settings one at a time. Remove the old app only after confirming everything works.