Understand the client UI and proxy core separately
The Clash ecosystem includes a range of YAML-based configurations, routing rules, and desktop clients. As the maintenance status of early projects changed, newer cores and clients continued to evolve. As a result, “Clash” does not refer to a single installer. Before downloading, check the specific project name, supported platforms, and maintenance status. A filename containing Clash does not guarantee full compatibility with your existing configuration. This site provides documentation and download links; it is not affiliated with every client project or its developers.
mihomo is a proxy core in the Clash ecosystem. It handles protocol connections, rule matching, DNS, and other functions. Graphical clients such as Clash Verge Rev provide configuration management and a user interface on top of the core. UI menus do not map one-to-one to YAML fields; some settings are generated or overridden by the client. When troubleshooting, first confirm which fields the core actually loaded, then check the UI settings. This helps avoid assuming a change failed just because editing the file did not change the behavior.
Open-source licensing and project boundaries
You can find mihomo's source code, license, issue discussions, and release history in its project repository, which is licensed under GPL-3.0. Check licensing and packaging separately for each open-source project; the core's license does not automatically cover every client, subscription service, or third-party configuration. To reproduce an issue, record the client, core version, and steps that trigger it. When reporting it, include only the necessary snippets and remove subscription URLs, passwords, and other credentials.
Client updates, subscription updates, and preserving overrides
Updating the client, updating the core, and refreshing a subscription are separate operations. A client update changes the UI or integrated features; a core update may change supported fields or behavior; a subscription update replaces remote configuration content. If a configuration fails to load, check the error location and field type instead of repeatedly switching programs. Older clients may not recognize newer configuration fields. Before migrating, see the client selection guide.
For long-term custom rules, use an override or merge mechanism supported by the client, and confirm at which stage subscription processing applies it. Lists may be replaced or appended according to client-specific rules; you cannot infer the behavior from YAML nesting alone. After each update, check that key proxy group names, the final MATCH rule, and DNS settings still behave as expected. See the configuration reference for examples and supported use cases, or start with the project repository to explore the source code.