Open-source clients · Subscription setup guides

Clash Subscription Guide Setup and downloads

Install a client for your platform, import a subscription link, then learn how the mihomo core works with routing rules.

  • Free and open source
  • YAML configuration
  • All platforms
Client downloads

Choose a package for your operating system

Check your platform and processor architecture before choosing a client. The graphical interface manages subscriptions and controls, while supported protocols, rules, and network modes depend on the core it uses.

Windows

For desktop browsers, developer tools, and everyday apps. Check your device type in system settings before installing, then choose the package for your architecture. After opening the client, enable a profile before turning on the system proxy.

Clash Plus, Clash Verge Rev, and FlClash put menus in different places, but subscriptions, proxy groups, and logs are common starting points for troubleshooting. Before migrating from an older client, back up your configuration source—copying only the application folder is not enough.

Go to downloads →

macOS

Check About This Mac to see whether your device has Apple silicon or an Intel processor. After installing and opening the client, grant the permissions it requests, then check its status and active profile in the menu bar.

System proxy and TUN are two different ways to route traffic. For your first setup, test with a browser and confirm the rules work before configuring other apps. Changing several controls at once makes problems harder to trace.

Go to downloads →

Android

Mobile clients typically route traffic through the system VPN interface. Import a subscription and select a profile, then approve the authorization prompt when you connect. If another VPN app is running, check that the two apps are not competing for the same interface.

A background connection dropping does not necessarily mean there is a subscription issue. Check battery management, background app permissions, and logs after switching networks. Settings vary by manufacturer, so use the menus on your device as a guide.

Go to downloads →

iOS

The download page links to Clash Plus in the App Store and lists its official website, clashplus.io. After installing, check that the client supports your subscription format, save the profile, and follow the system prompts to add a VPN configuration.

A full YAML file that works on desktop may not transfer to mobile unchanged. If import fails, check the format and supported fields. Do not use an account page URL as a subscription URL, and avoid exposing subscription parameters in public screenshots.

Go to downloads →

Linux

Desktop users can start with Clash Verge Rev or FlClash and choose a package for their Linux distribution. Server and router users should distinguish graphical clients from the standalone mihomo core. Installing the software is only the first step: configure the file path, permissions, and service startup separately.

Command-line tools may not use the desktop environment's system proxy. If a browser works but the terminal does not, check the proxy protocol and local port used by the application, then inspect its environment variables. Do not expose a listening address to your entire local network to fix one app's connection.

Go to downloads →
How configuration fits together

Subscriptions, rules, and network access

A subscription provides the configuration source, proxy groups provide the selection points, and rules determine where connections go. Understand these layers before changing individual fields; it is easier than toggling settings at random.

These examples illustrate mihomo configuration fields and settings; they are not complete subscriptions that can connect on their own. Click or focus a tab to pause automatic switching.

Importing subscriptions and updating profiles

A subscription link is an address for retrieving configuration, not a connection service built into the client. Paste an existing link on the Configuration or Subscription page. After it downloads, select and enable the profile. A full remote configuration usually includes proxy groups and rules; a proxy provider loads proxy entries only, which must be referenced by proxy groups in the main configuration. Updates fetch the remote content again, so direct edits may be overwritten. Use the client's override feature for settings you need to keep. Treat access parameters in the link like account credentials.

See how to import a subscription →
# Local subscription file as a proxy provider
proxy-providers:
  my-sub:
    type: file
    path: ./providers/my-sub.yaml

proxy-groups:
  - name: PROXY
    type: select
    use: [my-sub]
Getting started

From subscription import to connection testing

Work through the steps in this order: configuration source → routing destination → app traffic access. Establish a baseline you can test repeatedly before adding TUN, custom DNS, or complex overrides.

  1. Import an existing subscription and enable the profile

    After installation, open the client's profile manager, choose the option to import from a link, and paste the subscription URL from your service provider. A successful download does not mean the profile is active: select it in the list and confirm the core has loaded it. If parsing fails, check whether the URL returns content supported by the client—not a web login page or an error message.

    You can import a local YAML file from disk. Remote subscriptions update from their source, while local files are maintained by you, so they require different update workflows. When moving to another device, note the profile name, source, and local overrides. Redact subscription parameters before sharing logs. Follow the step-by-step guide to distinguish a successful import from a working connection.

  2. Choose Rule mode and the active proxy

    For your first setup, start with the Rule mode preset in your profile. Find a proxy group referenced by the rules on the Proxies page, then choose an available entry. Rule mode decides how requests are routed; the proxy group decides which route requests assigned to that group use. These are separate controls. If you switch a group that no rule references, your traffic may not change.

    Global mode can be useful for a quick comparison, but it is not a universal fix. Note the original mode and group selection before testing, then restore them afterward. Existing connections may keep their previous route, so make a new request to see the effect. Understand how the configuration groups proxies before changing automatic or manual selection, and avoid deleting names referenced by other groups.

  3. Enable traffic access and check connection logs

    On desktop, enable the system proxy, visit a familiar website in your browser, and check the client's Connections page for the domain, matched rule, and proxy route. On mobile, start the VPN connection when prompted. If requests appear in the log, traffic is reaching the client. If there are no entries at all, check how the app is connected before repeatedly updating subscriptions or switching proxies.

    If a browser works but the terminal fails, check the terminal's environment variables. If all apps fail, check in order that the profile is enabled, the right proxy group is selected, and the error logs show no problems. Change only one thing at a time and record the result. This helps separate subscription retrieval, DNS resolution, and connection issues—and avoids adding variables by reinstalling the client unnecessarily.

Open-source projects and documentation

How clients, cores, and configurations differ

Clash Subscription Guide covers installation links and configuration methods, but does not provide subscription services. Whether a client suits your device depends on its maintenance status, protocol support, and your system environment.

Project history: a shared name does not mean ongoing maintenance

Clash is a widely used name in the proxy tools ecosystem, but the original core, later forks, and graphical clients are separate projects. The original Clash and some early clients are no longer maintained. Community projects with similar names may have different maintainers, configuration capabilities, and update processes. Check the full project name when choosing software rather than relying on its icon or the word Clash alone.

An older client may still launch, but that does not make it a good choice to keep long term. OS upgrades, protocol changes, and new configuration fields can all affect compatibility. Before migrating, back up your subscription source and local settings. Re-import them into the new client and verify everything before removing the old app's startup items, system proxy settings, and background services. See the protocol and core reference for details; there is no need to run multiple proxy apps at once to compare them.

Open-source projects: check the interface and connection capabilities separately

Graphical clients provide tray menus, subscription management, configuration editing, and system integration. The core parses configuration, matches rules, and establishes connections. Different interfaces may use the same core or different implementations, so check separately whether a setting is shown in the interface and whether the active core fully supports it. Documentation, release notes, and issue discussions in open-source repositories can clarify feature boundaries and known limitations.

This site organizes guidance around real-world tasks rather than treating repository popularity as proof of compatibility. When evaluating a client, first check platform support, whether your configuration loads, whether logs are readable, and whether its update channel is clear. For useful bug reports, include the OS, client name, stage where the error occurs, and redacted logs—not just “the internet doesn't work.”

Core lineage: Clash Meta and mihomo

Clash Meta is a later fork in the Clash ecosystem; the project subsequently continued under the name mihomo. Older articles, client menus, and configuration guides may still use the Meta name. The name change does not mean builds from different eras have identical features. Check the documentation for the core actually running, especially for protocol support, DNS behavior, rule fields, and TUN implementation.

When migrating an existing configuration to mihomo, start with the parsing logs, then verify references between proxy providers, proxy groups, and rules. A YAML file being read only means it passed the current syntax or structure check; it does not prove that every request will be handled as expected. When choosing a protocol, also consider server support, network quality, and device power consumption. The protocol name alone cannot predict connection speed.

Updates: manage the app, core, and subscription separately

Client updates change the interface or system integration; core updates change connection and configuration capabilities; subscription updates fetch remote content again. These operations may have separate screens or be managed together by the client. Reinstalling the app repeatedly will not usually fix an expired subscription link. Likewise, updating a subscription cannot add support for fields the core does not recognize.

Save a working configuration before updating, review the release notes, and check how local overrides are merged. Afterward, test a familiar route before checking traffic rules and your local network. If a problem started after an update, compare the changes to narrow down the cause. If an update source returns unexpected content, check its status and expiration date. Find more examples in the Help Center, organized into fundamentals, installation and setup, usage tips, and Troubleshooting.

Recent configuration guides

Choosing a core and troubleshooting

Go beyond the setup steps with guides for specific issues. First identify which layer is causing the problem, then choose the right fix. Avoid treating the system proxy, subscription source, and protocol support as the same issue.

Download clients