Choose a client for your operating system, then check your processor architecture. If you’re new to Clash, start with a GUI client; see the Mihomo core for server and router deployments.
5 platforms
GUI clients
YAML configuration
Mihomo core
PLATFORMS
Choose your OS and client
Check your device’s system information before downloading. The architecture guidance below helps you choose a package, but doesn’t replace each client’s compatibility requirements.
Windows installers
Open Settings → System → About and check your system type. The GUI installers here are mainly for x64. On ARM devices, confirm compatibility with x64 apps; an ARM64 core archive is not a GUI installer.
A good starting point for importing a configuration, choosing a proxy group, and managing connections through a GUI. Run the installer and follow the prompts. On first launch, import a subscription or local YAML file, then enable the system proxy. TUN mode requires additional system permissions; set it up after confirming the basic connection works.
For users who want to manage Profiles, rules, and core settings on desktop. After installation, check that the required system components are available. If the interface is blank or the app won’t start, review the system and app logs, then install any missing dependencies indicated by the error. Reinstalling repeatedly while keeping the same broken configuration is unlikely to help.
For users who want a similar configuration workflow across devices. AMD64 and the commonly used x64 name refer to the same architecture family, regardless of processor brand. When migrating, import the original subscription first, then restore local overrides one by one. Don’t copy another client’s app settings file directly into the new directory.
For desktop configuration management and proxy group selection. Quit any other client currently controlling the system proxy before installing. On first use, check the active configuration, mode, and outbound selection. If you want the app to start at login, first test a normal connection and quit, then enable startup to make permission or port conflicts easier to diagnose.
This archived download is kept for reference with older setups and configuration migrations. Since development has stopped, future OS compatibility, protocol changes, and bug fixes won’t be maintained. For a new installation, choose one of the clients above that’s still maintained. Before migrating, keep your existing Profile and local rules; once migration is complete, disable the old app’s system proxy, startup entry, and related services.
Windows requirements and installation checks
Check
What to look for
System
Use a 64-bit Windows version that still receives security updates. Check the installer’s prompts for the minimum supported version.
Processor architecture
Packages in this section are x64 / AMD64. Check compatibility requirements separately for Windows ARM devices.
Permissions and components
System proxy and TUN have different permission requirements. Installing services or virtual network adapters may require administrator approval.
After installation, first check that the configuration loads. Then set up any additional features, such as UWP loopback or TUN. A successful download, a successful launch, and a working proxy connection are separate steps—check each one.
macOS installers
Check your chip in Apple menu → About This Mac. Apple Silicon and Intel require different architectures. Some dual-architecture download links currently point to the same x64 package, as noted below. If you need a native ARM64 build, verify the actual package contents before downloading.
Choose the DMG for your chip. Open it and drag the app to Applications, then launch it from there. Approve the network configuration when prompted on first connection. If you only need the system proxy, start with the basic setup and decide whether to enable TUN afterward; changing fewer network settings at once makes troubleshooting easier.
For users who want to manage subscriptions, rule overrides, and desktop proxy settings. The Apple Silicon link in the current listing also points to an x64 file, not a native ARM64 build. Apple Silicon users should check Rosetta compatibility. If you run into permission issues after installation, first check the authorization status in System Settings.
For configuration and proxy management across devices. Both architecture links currently point to an AMD64 file, so Apple Silicon users should check compatibility before installing. When migrating, keep your subscription URL and separate overrides. Recheck keyboard shortcuts, startup behavior, and system network settings in the new app.
Archived downloads are available for migrating existing setups and referring to older configurations. Both links currently point to x86_64 files; Apple Silicon users should check compatibility. OS upgrades may change permissions or app behavior. Before moving to another client, export your configuration and disable the old app’s automatic proxy and login startup.
macOS requirements and installation checks
Check
What to look for
Chip
For Apple Silicon, choose a native ARM64 package when available. For Intel, choose x64 / AMD64.
Compatibility
Before running an x64 package on Apple Silicon, check Rosetta and the client’s compatibility. This doesn’t guarantee that every feature will work.
Permissions
Network extensions, helper services, and VPN configurations require approval based on the client and mode. Check the installer notes for the minimum macOS version.
If the app won’t open or macOS displays a permission alert, first check the download source, app location, and system authorization records. Avoid disabling system-wide security protections. For details, see macOS installation and permissions notes →
Android installers
Most recent Android phones use ARM64, but check the system ABI to be sure. After installing the APK, the first connection usually prompts for VPN permission. Android can only have limited VPN control at once, so quit other VPN apps before testing.
A good choice for importing subscriptions and selecting connection strategies through a GUI. When installing the APK, grant only the necessary install permission to the app that opens it; you can revoke that permission afterward. Import your configuration and check the nodes before approving the VPN connection. If connections drop in the background, check the app’s battery restrictions.
Choose the version that matches your device’s ABI. If you’re unsure, try the universal package, provided your Android version meets the requirements. After importing a Profile, make sure it’s enabled, then select a proxy strategy. If the import succeeds but no nodes appear, check the subscription contents and format instead of trying installers for other architectures.
For managing mobile subscriptions and connection modes. The ARM 32-bit package is for compatible devices and system environments; it isn’t an upgrade to the ARM64 version. When updating the app, use the same source and signing identity where possible. If Android reports a signature mismatch, back up your configuration and check where the existing app came from before uninstalling it.
For users with a compatible configuration. Its configuration format and feature implementation differ from Clash YAML, so don’t assume every Clash subscription will import correctly. Check which formats your provider supports before downloading. If parsing fails, review the compatibility notes rather than simply changing the file extension.
Android requirements and installation checks
Check
What to look for
Device ABI
arm64-v8a is ARM64; armeabi-v7a is 32-bit ARM. A universal package includes multiple supported architectures.
Android version
Minimum Android versions vary by client. Check the release notes and whether the package installs on your device.
Connection and background activity
Approve the VPN request on first connection. If the connection drops in the background, check battery-saving settings, background activity restrictions, and conflicts with other VPNs.
Being able to download an APK in your browser doesn’t guarantee that it can be installed. If you see “Can’t parse package,” check that the download completed, the Android version and ABI match, and device management policies allow installation.
iOS client
Check Clash Plus in the App Store for device compatibility, system requirements, and current availability. The store listing is the best source for installation requirements. After installing, you’ll still need to import a valid configuration to connect.
After installing from the App Store, open the client, import a subscription or local configuration, and add a VPN configuration when prompted. For your first test, use clear rules and a fixed proxy group. Once connected, adjust DNS, rule overrides, and other features one at a time to see how each change affects the connection.
Check the Compatibility section of the App Store listing for the current minimum iOS version and supported devices.
Installation
Open the App Store listing using the link above, then install and update the app on your device.
Network configuration
Approve VPN access on first connection. On managed devices, follow existing network and configuration profile policies.
If your device already has another VPN or organization-managed network policies, check for conflicts before connecting. Keep a record of existing settings while troubleshooting, and don’t delete unfamiliar organization profiles just to test.
Linux desktop packages
Choose DEB or RPM based on your distribution’s package manager, and confirm your processor is AMD64 / x86_64. This section contains desktop clients; servers without a desktop environment are usually better suited to a direct Mihomo core deployment.
DEB packages are commonly used on distributions such as Debian and Ubuntu; RPM is for distributions that use the RPM package system. Installing through your package manager can help identify missing dependencies. After installation, check the desktop interface, system proxy, and TUN permissions separately. A working desktop app doesn’t mean every network control mode is ready.
For DEB-based desktop environments that meet the dependency requirements. After importing a subscription, make sure the configuration parses, then check the proxy settings for your desktop session. Terminal apps may not use the desktop proxy automatically, so you might need to configure their proxy environment separately. A working browser connection doesn’t mean every app is using the proxy.
Linux requirements and installation checks
Check
What to look for
Package format
Choose DEB or RPM for your distribution. You can’t convert between them by simply changing the file extension.
Processor architecture
Desktop packages in this section are AMD64 / x86_64. Don’t use them on ARM devices.
Runtime environment
GUI clients require a compatible desktop environment and runtime libraries. Core services need separate setup for permissions, startup, and logging.
Use uname -m to check your system architecture. If it returns aarch64, your system isn’t a target for the AMD64 desktop packages in this section. Server and router users can choose a suitable architecture in the core downloads section.
Mihomo core
For users managing services on servers and routers. The core handles configuration parsing, proxy protocols, and traffic routing, but doesn’t include a GUI. Most desktop users should choose a GUI client above instead of setting up startup arguments, permissions, and services themselves.
Check system bitness, endianness, and runtime environment as well as CPU architecture. A MIPS softfloat package won’t work for every MIPS router.
Files and permissions
After extracting the files, check executable permissions, configuration and working directories, and keep any required DNS and rule-set resources.
Network and services
Test the configuration and ports in the foreground before setting up a service. TUN requires compatible kernel support and sufficient permissions.
DEB is for compatible package-managed systems. GZ is a compressed binary; extracting it won’t register a system service automatically. After deployment, restrict access to listening addresses and external control interfaces. Don’t expose management endpoints directly to the public internet. See the advanced configuration guide →
AFTER INSTALLATION
Configuration steps after installation
Start with the simplest working connection, then add rules, DNS, and TUN settings one at a time. This makes it easier to tell whether a problem comes from installation, configuration, or the network.
PROFILE
Import and enable a configuration
Use a subscription link you’re authorized to access or a local YAML file. After importing, check that the Profile is selected and that nodes and proxy groups appear. Subscription links may contain account information, so don’t share the full URL in public screenshots, comments, or logs.
ROUTING
Choose a mode and outbound
Rule mode matches connections in the order listed under rules. Global mode uses the global proxy group; direct mode is mainly useful for restoring a connection or comparing behavior. Check the selected outbound in the proxy group before enabling the system proxy or VPN. Simply opening the app doesn’t configure all network settings automatically.
VERIFY
Check the connection and logs
First, make sure your regular internet connection works, then test the app you want to use. If it fails, check the logs for DNS, port, or configuration parsing errors. During migration, let only one client control the network at a time. Back up your YAML before editing, and keep the original subscription and local overrides separate.
For your first download, should you choose a GUI client or the Mihomo core?
If you're new to Clash, start with the GUI client for your platform. Its interface makes it easier to import subscriptions, choose a proxy group, and review logs. The Mihomo core is better suited to servers, routers, and self-managed deployments; you'll need to provide a configuration file and set up how it starts.
Why do I need to import a configuration after installing the app?
The installer provides the client application; it does not configure a proxy service for you. After installation, import a subscription link you’re authorized to use or a local YAML file, enable the configuration, then choose a rule mode and proxy group. Treat subscription links as sensitive information.
How do I choose between ARM64, x64, and a universal package?
Check your processor and operating system architecture first. x64 and AMD64 usually refer to the same desktop architecture; ARM64 is a different processor architecture. An Android universal package can help when you’re unsure of the device’s ABI. Don’t rely on the device brand or download button alone—check the package details to confirm its architecture.
Can I still use Clash for Windows now that it’s discontinued?
Discontinued versions may still run in their original environments, but future OS compatibility, protocol support, and bug fixes are limited. This page keeps an archived Clash for Windows download for reference when migrating older setups. For a new installation, choose a client that’s still maintained and back up your configuration first.
What should I back up before updating my client?
Back up your local Profile, rule overrides, proxy group settings, and any app settings you want to keep. Quit the old client before installing the new version. On first launch, check the configuration path, system proxy, and TUN status so multiple clients don’t try to control your network at once. Subscription updates may overwrite the original configuration, so keep local changes separately.
Installed, but can’t connect to the internet? Check these first
First, make sure your internet connection works without the client. Then check that the current Profile is enabled, the subscription includes usable nodes, the right proxy group is selected, and system proxy or VPN permissions are active. Next, review the logs for configuration parsing, port conflicts, and DNS errors. Temporarily disable the client’s network control and restore your normal connection to help isolate system issues from configuration issues.
For more on traffic routing, DNS, and connection issues, see the FAQs →. To learn about proxy groups and overrides, continue with the advanced configuration guide →.