Open-source references / Source
Client interfaces and open-source cores
Clash is an ecosystem, not a single installer shared across every platform. When consulting documentation, check the client name, the core it uses, and the configuration source. Instructions for one product may not apply to others.
5 platformsPlatform downloadsCovers desktop and mobile systems. Installation methods, permissions, and background restrictions vary, so verify connection behavior on the device you're using.
GPL-3.0mihomo licenseThe mihomo project publishes its source code and license. The license applies to the core project; it does not determine how each client or app store product is licensed.
YAMLSingle-file configurationOrganize proxies, proxy groups, and rules in one main configuration, or reference external rule sets and providers. Indentation and field support matter just as much.
Project history and configuration compatibility
Early Clash clients popularized using YAML to define proxies and traffic rules. As the original project’s maintenance status changed, community clients and successor cores continued to evolve. As a result, button names, download links, and extension fields in older guides may no longer match current software. You can keep the basic structure of an existing configuration, but check that the core still supports its fields—especially DNS, TUN, and external resource paths. Successfully importing a legacy configuration only means it parsed; it does not guarantee the same behavior as in the original environment.
Client controls and the configuration actually in use
Clients typically handle configuration downloads, policy selection, tray menus, and system services; the core handles listening ports, rule matching, and connections. Some interface toggles generate configuration before startup or change settings through a control interface while running. As a result, the interface may temporarily show different values from an edited subscription file. When troubleshooting, check the selected profile, runtime logs, and connection details first, then see whether overrides are enabled. Avoid changing the subscription file, interface port, and system proxy at the same time; otherwise, it is difficult to tell which change affected the result.
Updates and configuration backups
Client updates, core updates, subscription updates, and rule-set updates are four separate actions. Updating the client will not automatically fix an expired subscription, and re-downloading a subscription will not add support for new fields to an older core. Before maintenance, save local overrides and custom rules, read the product's release notes, and update one layer at a time. After each update, retest the same app and destination and note any differences. A configuration backup is more reliable than trying to remember which toggles to restore if you need to roll back. Subscription URLs may contain access credentials; never post them in public discussions or screenshots.
Source code and issue reports
Open-source repositories are useful for checking field definitions, licenses, and known issues. They are not a general-purpose source for downloading client installers. The mihomo repository tracks changes to the core; issues such as broken interface buttons or failed service installation should be reported to the relevant client project. When filing a report, include your system, architecture, reproduction steps, and redacted logs. Remove subscription URLs, proxy credentials, and external controller secrets. If only one app cannot connect, explain whether traffic is routed through the system proxy or TUN instead of simply reporting a connection failure.
First-connection troubleshooting steps
First verify that the current configuration loads, then confirm the target app's traffic reaches the client, and finally check the matched rule and outbound policy. If the system proxy is on but no connections appear, check whether the app uses the system proxy. If connections appear but the destination is unreachable, check the matched rule, DNS resolution, and selected outbound. Latency tests only reflect the target and method used; they cannot prove that websites, terminals, or other apps will all work. Gather information layer by layer to distinguish permission, configuration, and network issues.
For the complete setup sequence, start with the subscription import and first connection guide. For configuration parsing or connection issues, see common questions and troubleshooting. Installation, system permissions, and platform-specific settings are covered in the cross-platform guides, so you can check each item for your device.