Choose your operating system, then check your CPU architecture. Graphical clients are for everyday use; the mihomo core is for self-managed deployments.
Prepare your installer and proxy configuration separately. Check the file extension before downloading, then import a subscription from a trusted source or a local YAML file after installation. The buttons below link directly to installers; switch platforms to share the page URL for your selection.
Windows Clients
Go to Settings → System → About to check your system type. The graphical installers below are x64; on ARM devices, check your system’s app compatibility separately.
A good starting point for a fresh install. Run the installer, import your configuration, then choose a rule mode and proxy group. The system proxy routes traffic from apps that honor proxy settings; for other traffic, review the permissions and routing requirements before enabling TUN.
For desktop users who want to manage subscriptions, rule overrides, and core settings. After installation, check which configuration is active. Don’t enable the system proxy in two clients at once. Before enabling service mode or a virtual network adapter, note your existing ports and DNS settings.
Available as an installer or ZIP archive. For a standard installation, use the EXE. For the ZIP, extract all files before launching the app; don’t run it from inside the archive. Back up your configuration before changing folders, and keep program files separate from user data.
Another option for a graphical desktop client. When switching, import your existing subscription first and check that all proxy groups are present before restoring local rules. Settings folders and override options vary by client, so avoid replacing the new app’s entire data directory with the old one.
Kept for reproducing legacy environments and migrating configurations. This archived client is not recommended for new devices; newer protocols, configuration fields, or operating systems may not be supported. Before migrating, export your subscription and local rules, and disable the old client’s startup launch.
For legacy use
Windows Installation Requirements
Check
Before installing
System and architecture
Use a version of Windows that is still supported by its vendor. The files in this section are for x64. Check the installer prompts for the minimum supported Windows version.
Permissions
Importing a configuration and enabling the system proxy require different permissions from installing a service or using TUN. Grant permissions only when the feature you’re using requires them.
After installation
On first launch, import your configuration and verify the rule mode. Exit any old proxy client to prevent conflicts with ports and system proxy settings.
macOS Clients
Check your chip under About This Mac. Choose arm64 for Apple Silicon and x64 for Intel. Confirm the architecture in the downloaded filename.
Choose the disk image for your chip. Open the DMG and follow its window instructions to move the app to Applications, then launch it from there. Import your configuration before connecting. If the app requests network extensions or system permissions, read the system prompt before approving.
For managing desktop subscriptions and rules. The current file is for Intel; don’t assume it’s a native ARM app based on the link label alone. Before installing a new client, disable the old client’s system proxy. Once configuration import succeeds, restore overrides, DNS, and service settings one at a time.
In macOS filenames, amd64 and x64 refer to the same architecture; neither specifies a processor brand. Before connecting, check the active configuration and proxy group. When migrating from another platform, review file paths, network interface names, and local script settings for macOS.
Use only if you need it for a legacy environment. This archived file is x86_64, not a native ARM installer. When migrating to another client, keep your YAML and subscription source, check core-field compatibility, and don’t carry over the old app’s permissions or startup settings without review.
Archived / x86_64
macOS Installation Requirements
Check
Before installing
Chip
Apple Silicon uses arm64; Intel uses x64, x86_64, or amd64. Compatibility also depends on the operating system and app.
File
DMG files are disk images. Copy the app before launching it. Check the app documentation and system prompts for the minimum macOS version.
Network permissions
System proxy, network extensions, and TUN require different permissions. If connections fail after a system upgrade, check permission status and app logs first.
Android Clients
Most newer devices use arm64-v8a, but check your device’s architecture first. After installing the APK, approve the VPN connection in Android. Usually, only one VPN service can be active at a time.
For a first install on an arm64 device. Import your configuration, tap Connect, and approve the Android VPN request. If the connection drops when the screen locks, check battery optimization and background activity settings. Avoid changing DNS, per-app routing, and route options before confirming a basic connection.
Choose a smaller build for your device’s architecture, or use the universal build if you’re unsure. After adding a subscription, select that configuration before connecting; downloading the app does not activate a configuration. When troubleshooting, note the exact error and distinguish subscription update failures from node connection failures.
Two ARM architecture builds are available. When updating, keep your existing configuration and make sure the new installer is compatible with the installed app’s signing key. If Android reports a conflict, back up your configuration and investigate before uninstalling, or you may lose local overrides. Disconnect other VPN apps before connecting.
For users with an existing compatible Surfboard configuration. Its configuration syntax differs from Clash YAML, so changing the file extension is not enough to make it importable. Confirm the supported format with your configuration provider, then check the proxy protocols, rules, and DNS sections.
Universal build / separate configuration format
Android Installation Requirements
Check
Before installing
Processor
arm64-v8a is 64-bit ARM; armeabi-v7a is 32-bit ARM. Your device’s OS must also support the app’s architecture.
Install permission
Allow installation only for the browser or file manager you actually use. Check the installer prompt for the minimum Android version.
Runtime
Approve the VPN request and avoid conflicts with other VPN services. For reliable background use, check your device’s battery restrictions.
iOS Clients
Get the app from the App Store. Before installing, check the listing for current system compatibility requirements. On first connection, approve the VPN configuration when prompted by iOS.
After installing, add a compatible subscription or local configuration and confirm that proxy groups appear before connecting. VPN permission is only one step in establishing a connection; it doesn’t mean the remote service is available. If you see a connection error, check your subscription status, device time, and selected node first.
When switching devices, keep your subscription source and custom rules separately. Don’t post configuration links in public forums; hide subscription URLs and personal connection details before sharing troubleshooting screenshots.
Check the App Store listing for supported devices and the minimum system version.
Get the app
Open the App Store listing, verify the app name, and install it. App Store manages updates.
First connection
Import a configuration and approve the VPN request. If another VPN is connected, disconnect it before testing.
Linux Clients
For desktop use, start with a graphical client. Run uname -m to check your architecture; all packages in this section are amd64. Choose the package format for your distribution.
Install DEB and RPM files with the package manager for your distribution. Check that graphical dependencies are available, then review your desktop’s system proxy settings. Desktop environments handle proxy settings differently, and terminal apps may not inherit the desktop proxy.
For amd64 desktop distributions that support DEB packages. If the installer reports missing dependencies, resolve them through your distribution’s package repositories; don’t copy shared libraries from another system. For long-running background use without a desktop, deploy the core from the section below.
amd64 / DEB
Linux Installation Requirements
Check
Before installing
Architecture
If uname -m returns x86_64, use the amd64 package in this section. Do not use these desktop builds on ARM devices.
Distribution
Debian, Ubuntu, and similar distributions use DEB; RPM-based distributions use RPM. Let your package manager check system library compatibility.
Runtime environment
Graphical clients require a desktop environment and related runtime libraries. On a headless server, use mihomo and configure a systemd service yourself.
Mihomo Core
For servers, routers, and command-line users. For everyday desktop and mobile use, choose a graphical client above. The core does not include a subscription management interface.
The operating system, architecture, and ABI must match. On Unix-like systems, grant execute permission after extraction and choose a configuration directory you can write to.
Configuration
Prepare a valid config.yaml. Confirm it loads successfully before setting up a background service, startup behavior, and log retention.
Network and permissions
Avoid port conflicts. TUN, routing, and firewall rules require appropriate system permissions; restrict access to the controller API and configure authentication.
Before switching clients, export your subscription, local YAML, and rule overrides. Note your proxy ports, mode, and startup settings. Subscription links may grant access to personal services, so store them privately and never share the full URL when asking for help.
Installers and configuration files serve different purposes. EXE, DMG, APK, DEB, and RPM files install software; YAML describes nodes, proxy groups, rules, and DNS. Don’t treat a subscription response as an installer or paste a download page URL into the subscription field.
After installing: test a basic connection first
Open the client and import your configuration. Confirm that nodes and proxy groups appear, choose a rule mode, then enable the system proxy or mobile VPN. Visit a target site and review the connection logs to confirm the expected rule is being used; a latency test alone doesn’t verify app access.
Once the basic connection works, adjust TUN, Fake-IP, per-app routing, or custom DNS. Change one group of settings at a time and keep a copy of the previous configuration. If apps behave differently, first check which traffic the system proxy covers and whether the apps have their own proxy settings, then troubleshoot by symptom in the help guide.
Should I download a Clash client or the mihomo core?
For everyday desktop and mobile use, start with a graphical client. This page recommends Clash Plus for Windows, macOS, Android, and iOS, and Clash Verge Rev for Linux. mihomo is a command-line core for server and router users who want to manage configuration, services, and routing themselves.
Which should I choose: arm64, x64, or universal?
Check your device’s CPU architecture first. x64 and amd64 refer to the same 64-bit architecture; arm64 is for 64-bit ARM devices. If you’re unsure which architecture your Android device uses, choose the universal build of Clash Meta for Android. On macOS, check the actual filename: builds marked x64 or amd64 are not native ARM builds.
Why does the Apple Silicon download sometimes provide an x64 file?
The two macOS download links for Clash Verge Rev, FlClash, and ClashX Meta currently point to the same Intel build. On Apple Silicon, check the installer’s architecture and confirm Rosetta compatibility against your system’s prompts. For a native ARM build, choose the Clash Plus file explicitly marked arm64 on this page.
What should I check if a download won’t open or install?
Check your operating system, CPU architecture, and file extension first. Then make sure the download is complete and review any system installation prompts. Windows EXE, macOS DMG, Android APK, and Linux DEB or RPM files are not interchangeable. If you see a security warning, verify the file’s source and the warning before taking action; don’t disable system security controls outright.
Do I need a subscription configuration after installing a client?
You’ll need a configuration compatible with your client. The installer does not include a proxy service. Import a subscription from a trusted source or a local YAML file, select a proxy group, then enable the system proxy or VPN for your platform. Verify the rule mode and connection logs before changing DNS or TUN settings.
How do I keep my configuration when updating or switching clients?
Before updating, export your subscription, rule overrides, and local configuration, and note your proxy ports and mode. Quit the old client, install the new build, and make sure it can read your configuration before enabling the proxy. For a client-to-client migration, don’t just copy the UI settings folder; check subscription format, rules, DNS, and TUN settings individually.