Project history: from the original Clash to maintained forks
The original Clash established widely used models for YAML configuration, proxy groups, and rule-based routing, and many desktop and mobile clients built graphical interfaces around them. After the original project entered archival status, community development shifted toward continuing forks. Clash.Meta expanded protocol, DNS, rule, and runtime capabilities and was later maintained under the mihomo name. The “Clash clients” seen today are often not different installers from one repository, but combinations of interface projects with compatible kernels and configuration formats.
This relationship directly affects selection. A legacy client may still run, but it may not keep up with system changes or new configuration fields; an active client usually updates its bundled kernel, installation flow, and system integration. Migration does not require rewriting everything at once: copy the subscription URL and essential local overrides first, then check proxy groups, rule-providers, DNS, and TUN settings one by one to confirm that the new client recognizes them correctly.
Ecosystem layers: what the interface, kernel, rules, and subscription each do
The graphical client manages profiles, tray menus, startup behavior, kernel controls, and system proxy switching. The mihomo kernel handles protocol connections, traffic sniffing, DNS, rule matching, and policy execution. Rule sets describe which policy should handle a domain or IP, while subscriptions distribute nodes or complete configurations. A problem in any layer can produce similar symptoms on the surface, but the correct fix may be entirely different.
For example, “unable to connect after a subscription update” may result from invalid subscription content, a client that failed to write the configuration correctly, an unsupported kernel field, a proxy group referencing a missing member, or traffic that never entered the client. Layer-by-layer checks work better than repeated reinstalls: confirm that the configuration parses, then that the kernel starts, then inspect proxy groups and logs, and finally verify system proxy or TUN capture.
Kernel relationships: configuration compatibility does not mean every field is identical
mihomo retains the common Clash configuration structure while adding more protocols, DNS options, rule capabilities, and runtime parameters. Basic fields are usually easy to migrate, but configurations involving tun, sniffer, geodata, rule-providers, profile, or experimental features should be checked against the current documentation. A client may also keep its own override files, scripts, or interface settings outside the original YAML, so exporting a single configuration file may not capture all local state.
Judge compatibility by three questions: which kernel does the client version support, which fields does that kernel support, and what content does the current subscription actually use? Do not infer capabilities from names alone or assume an option in one client's interface exists on every platform. The protocol handbook further compares the design priorities of SS, VMess, Trojan, VLESS, Hysteria2, and TUIC, along with how they are represented across kernels and subscription formats.
Update mechanisms: separate client, kernel, and subscription updates
Client updates usually fix interface, installation, permission, or system compatibility issues. Kernel updates affect protocol implementations, the rule engine, DNS, and configuration fields. Subscription updates change nodes, proxy groups, or rules. Their schedules do not necessarily align. When a problem appears, noting which type of change happened most recently can greatly narrow the investigation. After a subscription update, check configuration differences first; after a client upgrade, verify the kernel and permissions; after only a network change, prioritize DNS, routing, and reachability.
A safer update process keeps the currently working configuration, reviews the new release notes, and verifies configuration loading and basic connectivity before restoring TUN, overrides, and automatic policies step by step. For long-running servers, place configuration under version control and use a service manager to control restarts. Desktop users can preserve migration evidence with the client's configuration backups and logs.