Open-source clients · Subscription and rule updates

Clash Client Downloads Subscription Import & Update Guides

Choose a client for your operating system, then check each setting—from subscription import to rule updates—against your configuration and connection needs.

  • Open-source ecosystem
  • Choose a platform
  • Configuration guides

Browse downloads by operating system

Subscriptions, rules, and network settings

Trace settings from configuration source to connection destination.

Import once; manage each update source separately

Paste the subscription URL into the client's profile page. After importing, select it as the active profile. Profile updates fetch the YAML again, while proxy providers and rule providers can refresh on their own schedules; these are three distinct update mechanisms. Local files are useful for offline backups but usually don't track remote changes automatically. Direct edits to a downloaded profile may be overwritten on the next refresh. For persistent changes, use the client's override or merge features. If an update fails, first check that the URL is still valid, then review the request logs and the network path used to fetch the subscription.

See the subscription import steps →
# Proxy provider snippet for the configuration file
# interval is measured in seconds
proxy-providers:
  remote:
    type: http
    url: "https://example.com/proxies.yaml"
    path: ./providers/remote.yaml
    interval: 86400
Client directory

Clash downloads for every platform

Browse all clients →

Filter by operating system first, then check the processor architecture and package format. The client provides the interface, system integration, and configuration management; the core handles protocols and rule execution. Similar-looking interfaces don't guarantee support for the same configuration fields. Before migrating, keep a copy of your subscription source and override files, and don't overwrite your working configuration.

Windows

Manage subscriptions, the system proxy, and startup settings on your desktop. Compare the interfaces and core support of clients such as Clash Plus and Clash Verge Rev, then install the one that fits your operating system.

On first launch, import a profile and verify browser traffic before setting up service permissions or TUN. If you keep your old client installed, don't let both apps change the system proxy or listen on the same port.

Go to downloads

macOS

Before downloading, check whether your Mac has Apple silicon or an Intel processor. System proxy support, menu bar controls, and background services vary by client, so choose a package that matches your device's architecture.

After switching clients, check the system's network proxy settings instead of assuming the old settings were cleared. If you need to route terminal or other app traffic, separately verify that app's proxy environment or TUN status.

Go to downloads

Android

Choose a package for your processor architecture, and check how the client captures traffic through the VPN. When you connect for the first time, grant the permissions requested by the system, then confirm that the profile is selected—not just imported.

Background updates can be affected by battery optimization, background network permissions, and process state. If subscriptions aren't refreshing on schedule, try a manual update in the foreground first, then check whether the system restricts the client's background activity.

Go to downloads

iOS

Find the Clash Plus App Store listing and official information. Mobile network extensions are managed by the client; check the app's own instructions for subscription imports, update options, and configuration compatibility.

After importing, select the profile and allow the VPN connection when prompted by the system. If access stops working after a network change, first check the extension's connection status and whether configuration resources have updated, then adjust routing settings.

Go to downloads

Linux

For desktop Linux, compare Clash Verge Rev and FlClash, and choose a package format such as DEB or RPM for your distribution. Headless servers and routers typically run the core directly, with services and permissions configured separately.

A successful installation only means the program can run. Check dependencies, listening ports, and whether the system proxy is configured. For a service-based setup, verify the working directory, configuration path, and write permissions for resource files.

Go to downloads

Platform icons: Windows, Apple, and Android use Simple Icons vectors; the Linux Tux icon uses a Font Awesome vector, CC BY 4.0.

Setup sequence

Three checks after importing a subscription

Read the full guide →

Installing the client, importing a configuration, and capturing traffic are three separate steps. Follow the sequence below to distinguish subscription retrieval issues from app connection issues, without changing every advanced setting at the outset.

  1. Import a profile and set it as active

    Open the Profiles or Subscriptions page and paste the URL from your configuration provider. If you only have a local YAML file, import it from disk instead. Once the client finishes parsing it, select the profile and check for syntax errors or unsupported fields. A successful import doesn't mean the profile is active; confirm it in the active profile indicator and logs.

  2. Choose a rule mode and traffic capture method

    Keep the existing policy group structure in your configuration and start with Rule mode. On desktop, begin with the system proxy; on mobile, allow the VPN connection when prompted. For apps that ignore the system proxy, consider TUN or the app's own proxy settings. Change one setting at a time and note its original state so you can revert it if something goes wrong.

  3. Test the connection, then set an update interval

    Reopen the target webpage or app, confirm its request reaches the core on the Connections page, and check the matched rule and policy. Then manually update the subscription once to verify that it can be fetched, before enabling automatic updates if the client supports them. Check units carefully: the interface may use minutes while configuration fields use seconds. Avoid setting resource updates to run too frequently.

Open-source ecosystem and maintenance

Clients, cores, and subscriptions update separately

How the Clash ecosystem has evolved

The original Clash established the YAML configuration and rule syntax commonly used across this ecosystem. Clash Meta extended it with support for more protocols, rules, and networking features, and continued development under the name mihomo. Older names may still appear in guides, but check the documentation for the core you're actually running to confirm whether a field is supported—not just the client name.

Desktop clients typically bundle a core with platform features: the core handles requests, while the client manages subscriptions, the system proxy, logs, and permissions. The same configuration may import differently across clients, and some clients generate or merge a runtime configuration. When troubleshooting, note the client name, core type, and fields that are actually in effect.

What this site covers—and what upstream projects cover

Clash Resource Hub organizes download links, setup steps, and terminology; it isn't affiliated with the development teams behind individual clients. Check upstream documentation for feature changes and platform restrictions. The download directory helps you choose an operating system and package format, while the guides explain configuration fields and how common operations fit together. Clients across the ecosystem aren't all the same software.

Updating the client isn't the same as updating a subscription

A client update may change the interface, system integration, or bundled core. A core update affects protocol handling and configuration compatibility. A subscription update fetches configuration or resource content again. Updating the program doesn't extend a subscription's validity, and refreshing a subscription won't give an old core new protocol support. When troubleshooting, identify which layer is failing before choosing what to update.

Maintain configurations with traceable changes

Before updating, back up local overrides and settings you've verified work, then review the release notes for configuration changes. After the update, check startup logs, then verify DNS, rule matches, and app connections. If something goes wrong, compare against the original configuration instead of piling on temporary changes. Keep track of where rule resources come from, too, so the final configuration remains understandable.

To learn more about how the original core, Meta, and mihomo relate, read Core evolution and feature comparison. If you're preparing to deploy on a router or server, also check the networking and permission requirements for that platform.

mihomo core source code

Browse source code, release notes, and issue discussions at MetaCubeX/mihomo. Cloning the repository for review or development doesn't install a client. If you just need a graphical interface, choose an installer for your platform.

git clone https://github.com/MetaCubeX/mihomo.git

Recent technical articles

From first setup to layered troubleshooting

Browse all articles →

After the basics are in place, choose a guide for the specific issue. For slow speeds, start with comparison tests; for router deployment, identify where traffic enters; for beginner issues, check the system proxy, mode, and ports first. Each problem calls for different evidence—repeatedly trying the same settings won't help.