Clash Open-source Ecosystem
Project relationships and maintenance boundaries
Download links, GUI clients, proxy cores, and subscription services each serve different purposes. Understanding where one ends and another begins makes it easier to choose a client and troubleshoot problems than treating everything as the same software.
Original Clash, Meta, and mihomo
Clash established a way of working centered on rules, proxy groups, and YAML configuration. Clash.Meta extended that system and later continued development under the mihomo name. They share history and configuration concepts, but they aren't interchangeable executables. Basic rules in older Clash configurations are usually easy to understand and migrate; check the target core's documentation for newer protocols, DNS extensions, and TUN fields. Don't apply every option from an old guide to a current client without checking.
To tell whether a guide applies, first check whether it covers a GUI or a core, then confirm its configuration fields match your current environment. Client controls may generate or override configuration, so check both the interface and the configuration file. When troubleshooting, noting the core name, error logs, and steps to reproduce the issue is more useful than describing the client's appearance alone.
Source Code Licenses and Client Boundaries
The mihomo source code is licensed under GPL-3.0. Development history, issue discussions, and configuration implementation can be found in the project repository. An open-source license describes the terms for using, modifying, and distributing source code; it doesn't mean every third-party GUI client uses the same license. Each client project maintains its own interface, packaging, and platform integrations. Check the relevant product documentation for supported features. This site organizes download links and technical guides; its name doesn't imply affiliation with every upstream project.
Clients handle local rules and connections, but installing one doesn't automatically provide a working subscription. Users configure their own subscriptions, and the relevant service provider manages account information. When troubleshooting, you can share the configuration structure and error messages after removing sensitive fields. Hide the full subscription URL, credentials, and any personal network data unrelated to the issue.
Check Configuration Before and After Updates
Client updates and subscription updates are separate processes: the former changes the interface, core, or system integration; the latter changes remote configuration and node data. Save your configuration and local overrides before updating a client. After updating a subscription, check proxy group members, rule sources, and the actual outbound route. If a setting stops working, check the core logs for changed fields, failed resource loads, or missing references before rolling back or editing the configuration. Changing several options at once after an update makes it harder to identify the cause of a problem.
For long-term use, keep a brief record of configuration changes, noting only the reason and fields involved—not credentials. When switching devices, recheck system proxy settings, network permissions, and startup behavior. These are usually local settings and don't migrate with a subscription. For old guides covering archived clients, use them to understand the concepts rather than treating the old app as the default installation choice.
Reading Source Code and Reproducing Issues
To check how a field behaves, visit the MetaCubeX/mihomo project repository for documentation, commit history, and issue discussions. Before relying on an existing report, confirm the runtime environment. To reproduce an issue, narrow the configuration step by step: keep the required inbound settings, one working outbound, and the fewest possible rules, then add DNS, rule sets, and TUN back in. This helps separate effects caused by subscription content, client-generated configuration, and core behavior.
The command below retrieves the source code; it doesn't install a GUI client or create a system proxy. Most users can choose a client directly from the download page. Before building or modifying the code, developers should read the repository's build requirements and license files. When reporting an issue, provide reproducible steps and don't upload a full configuration containing a private subscription.