Choose a client for your operating system. Check your CPU architecture, download and install the right package, then import a subscription and configure rules and proxy mode.
For desktop and mobile, start with a client that has a graphical interface. The standalone core is for servers, routers and users who manage configuration manually.
Windows clients
Desktop installers here are mainly x64. Clash Plus is a good starting point for new users. If you prefer a different interface or configuration workflow, compare Clash Verge Rev, FlClash and Clash Nyanpasu. Quit similar clients before installing to prevent conflicts over ports and system proxy settings.
Clash Plus
Recommended
A good fit if you're starting with subscription imports, rule mode and the system proxy. After installing, check that your configuration is active, then choose a proxy group. Configure TUN separately if you need to route apps that ignore system proxy settings.
A desktop client built on the mihomo core for managing subscriptions, rules and proxy groups. If you use local overrides or rule sets, check their merge order after migrating so a subscription update doesn't overwrite settings you want to keep.
A good option if you want a similar workflow on desktop and mobile. The installer creates system shortcuts; the archive can be unpacked manually. Check how the client stores configuration and handles permissions.
Another option for managing desktop configurations. After importing an existing YAML file, check the configuration validation results before setting up the system proxy. Service mode, configuration directories and startup options can differ between clients, so don't copy the entire application folder.
Archived download for recreating legacy environments and reference during configuration migration. The fact that its name includes Windows doesn't mean it's suitable for every new Windows system. Its older core has limited support for newer protocols and configuration fields; for new installs, choose a maintained client listed above.
Go to Settings → System → About to check your system type. This section offers x64 packages; on Windows ARM devices, check compatibility with emulation separately.
Windows version
Install on a supported Windows 10 or 11 system. Check the installer prompts for the exact minimum version and runtime requirements.
Permissions and ports
System proxy and TUN have different permission requirements. Installing a service or virtual network adapter may require administrator access. Make sure the mixed port doesn't conflict with another application.
macOS clients
Check About This Mac to identify your chip first. Apple Silicon and Intel use different architectures, and an architecture key in a listing doesn't always match the file itself. Package types are labeled below; also check that the client supports your macOS version.
Clash Plus
Recommended
Installers are available for Apple Silicon and Intel. Open the DMG, move the app to Applications, then launch it and import a subscription. Before enabling the system proxy, make sure the configuration loads. Grant TUN permissions as prompted by macOS.
Manage mihomo configuration, subscriptions and proxy groups. Both macOS links in the current listing point to x64 files. On Apple Silicon, check Rosetta and macOS compatibility; these links are not native ARM installers.
Another option for managing configurations across platforms. Both macOS listing links currently return AMD64 packages. You can import a mobile configuration, but adjust local listening ports, network interfaces and DNS settings for your desktop.
Kept for legacy menu bar workflows and configuration migration reference. The current links all point to x86_64 files. Legacy system extensions, permission prompts and configuration fields may not work with newer macOS versions. For a new installation, consider a maintained client.
If About This Mac shows an Apple chip, choose a package explicitly labeled ARM64. For Intel Macs, choose x64 / AMD64.
Windows version
Minimum macOS versions vary by client. Check the installer prompts and the project's current documentation; don't try to install on an older system by switching architectures alone.
First launch
Launch the app from Applications. If macOS shows a security alert, check the specific reason under Privacy & Security rather than disabling system protections altogether.
Android clients
For most recent phones, first check for ARM64 support. On first connection, the client will request Android VPN permission; Android typically allows only one app to use the VPN at a time. After installing, check battery optimization settings so the system doesn't stop the app in the background.
Clash Plus
Recommended
The ARM64 installer is for Android devices that support this architecture. Import and select a subscription, start the connection and approve the VPN permission prompt. To route traffic by app, first understand how app selection differs from rule mode.
Supports Android setups using Clash Meta / mihomo configurations. If you know your device's architecture, choose the matching package. If not, use the universal build if your device supports it. Universal doesn't mean faster; it simply includes multiple architectures.
Manage subscriptions and proxy groups on Android. The ARM64 build suits most current phones; the ARM build is for compatible older devices, and x86_64 is for devices or emulators with that architecture. Successful installation doesn't guarantee that every network feature works in your emulator.
A good fit if you already have a Surfboard-compatible configuration. Its configuration format differs from Clash YAML, so the same subscription shouldn't be assumed to work in both. Before importing, check the format provided by your service and whether it supports the protocols you use.
Check whether your system supports ARM64, ARM or x86_64. The installer specifies the minimum Android version; some devices have 64-bit hardware but an OS that restricts app architectures.
Installation permission
Follow the system prompt to allow your browser or file manager to install apps from this source. You can revoke that permission afterward. If installation fails, check the error message instead of repeatedly trying again.
Connection and background use
Approve VPN access and check whether another VPN is already using the connection. If the connection drops when the screen locks, adjust the client's background and battery optimization permissions as needed.
iOS clients
Install Clash Plus from the App Store. The store listing shows device compatibility, system requirements and current app details. After installing, import a subscription you own and follow the system prompt to allow the VPN configuration.
Clash Plus
Recommended
Import subscriptions, choose a proxy group and connect on an iPhone or compatible device. Installing the client and subscribing to a proxy service are separate steps. If you have a YAML configuration, check which fields are supported; desktop network interface and port settings won't necessarily apply.
Check the App Store listing for compatibility and confirm your device and iOS version meet the requirements for the current release.
VPN configuration
When you connect for the first time, approve the VPN configuration. The system may ask for your device passcode or biometric authentication. After granting permission, select a valid configuration in the app.
Importing a subscription
Use a subscription you own or a local configuration. If import fails, check whether the link is inaccessible, the format is incompatible or a configuration field is invalid.
Linux clients
For a desktop environment, choose a GUI client. DEB and RPM are different package formats, so don't choose based on file size alone. Packages here are AMD64 / x86_64. For servers, routers and other architectures, see the standalone core below.
Clash Verge Rev
Recommended
Manage subscriptions, the system proxy and rules on a Linux desktop. Debian and Ubuntu users generally want DEB; Fedora and other RPM-based distributions use RPM. Service mode and TUN may require additional permissions; check them separately from your desktop session permissions.
A Linux desktop GUI client. This section provides an AMD64 DEB package for compatible package environments. If the app won't launch after installation, check dependencies and graphical environment errors first; a startup failure doesn't mean your subscription is invalid.
Run uname -m to check your architecture. x86_64 usually corresponds to AMD64; aarch64 corresponds to ARM64. The AMD64 packages here won't run directly on aarch64.
Distribution and dependencies
Install a package that matches your distribution using its package manager to keep dependency handling and error messages traceable. Minimum library versions depend on the current client build.
Network permissions
Check whether your desktop environment picks up the system proxy. TUN also requires device access and routing permissions. Command-line apps may need proxy environment variables set separately.
Standalone core
Download the mihomo core
For users managing servers, routers and services themselves. The core reads configuration and handles connections; it doesn't include a desktop subscription management interface. Most users should choose a GUI client above to avoid duplicate cores, services and virtual network adapters.
Check architecture and configuration before deployment
A GZ archive usually contains an executable, not a graphical installer. On Linux and macOS, set execute permissions and specify the working directory, configuration path and log location. For routers, also check CPU architecture, endianness, memory and firmware; don't choose a package based on the device's appearance or brand.
Once your configuration is ready, run a configuration check to catch YAML indentation, field and proxy group reference errors before starting a long-running service. Stop the service before updating the binary and preserve your configuration and startup arguments. Don't replace a service configuration with a client subscription link without accounting for format differences.
Check core information first, then validate your local configuration. A successful configuration check doesn't guarantee that every proxy in your subscription can connect; connections still depend on the network, server and authentication details.
After installation: subscriptions, modes and migration
Downloading installs the client, but connecting requires a valid configuration. Follow these steps to avoid mistaking configuration issues for installer problems.
Import first, then activate the configuration
Add a link on the client's subscription or configuration page, wait for it to finish loading, then set it as the active configuration. If the link returns an HTML login page, a plain list of nodes or malformed content, the client may not be able to read it. Check that the subscription provides Clash / mihomo YAML.
Subscription URLs may contain account identifiers. When troubleshooting, you can keep the error message, but hide URL parameters, proxy passwords and external controller credentials before sharing screenshots. Don't upload a full configuration to an unfamiliar online converter.
Configure rule mode and system traffic routing separately
Rule, Global and Direct modes control how connections are handled once they reach the core. System proxy and TUN determine which connections reach it. Rule mode doesn't automatically route every app, and enabling TUN doesn't create sensible routing rules.
First, confirm that your proxy group names work in rule mode, then enable the system routing method you need. If a site won't load, check app proxy settings, ports, DNS, rule matching and remote connections in turn. Avoid changing several settings at once, so you can identify the cause.
Installer selection, configuration migration and compatibility. For more connection troubleshooting, visit the Help Center.
Which Clash client should I download first?
Start with Clash Plus on Windows, macOS, Android or iOS. On Linux, try Clash Verge Rev. Check your OS, architecture and installer compatibility before choosing an interface. Most desktop users don't need to download the mihomo core separately.
What's the difference between ARM64, x64 and universal builds?
x64, AMD64 and x86_64 generally refer to the same 64-bit architecture; ARM64 and AArch64 refer to another. Check your system information rather than relying on your device's brand. Universal builds may include multiple architectures but are usually larger. Some macOS links on this page return x64 files, so a listing label alone doesn't guarantee a native ARM build.
Why do I need to import a subscription after installing a client?
The client reads configuration, applies rules and creates proxy connections; the installer itself doesn't provide proxy service. Import a valid subscription you own or a local YAML configuration, then choose a proxy group and connection mode. Subscription links may contain credentials, so don't share them publicly.
What should I save before updating a client?
Export or back up your subscription configuration, local overrides, rule files and custom ports first. Quit the old client before installing the update, and don't run two clients' system proxy or TUN modes at the same time. After migrating between clients, recheck DNS, proxy group names and rule compatibility.
What should I check first if the download won't install?
Make sure the file finished downloading, its extension matches your platform, the CPU architecture is compatible and your OS meets the client's requirements. Check the system's installation prompt for details instead of disabling security protections. On Linux, check the package format and dependencies; on Android, check permission to install from that source and available storage.
Can I use a discontinued client with a new configuration?
Archived clients are mainly for recreating legacy environments and reference during configuration migration. Older cores may not recognize newer protocols, rule fields or DNS options. For a new installation, choose a maintained client. Before migrating, save your original configuration and check the logs for incompatible fields.