Project origins and configuration boundaries
Understanding the Clash ecosystem and mihomo
When choosing a client, start with core capabilities and maintenance status, then consider whether the interface suits your workflow. Open-source repositories let you inspect implementations, track changes, and check configuration documentation; screenshots and app names alone can't provide that information.
From the original Clash to mihomo
The original Clash established common practices such as rule-based routing, proxy groups, and YAML configuration. The community later built different cores and clients on that foundation, with mihomo continuing the technical direction of the original Clash Meta. Similar names do not guarantee identical features. Common fields in older configurations may still work, but check the relevant core documentation for newer protocols, rule types, and DNS options. Keep a copy of the original file when migrating, then address fields explicitly flagged as incompatible in the logs.
This is why it's important to distinguish two names when choosing Mac software: the client name describes the interface, while the core name identifies the program that handles network connections. A client update doesn't necessarily include a core upgrade, and core support doesn't mean every interface provides a button for that feature. To check whether something is available, consult the client documentation, core support, and active configuration—not just the menu labels.
Open-source code and community documentation
Browse mihomo's code, release history, and issue discussions in its project repository. Before following documentation, confirm which core and feature set it covers; don't copy configuration examples for another core directly into your current file. When reporting an issue, include your system version, processor type, client name, steps to reproduce, and relevant log excerpts. Before sharing logs publicly, remove subscription URLs, credentials, and other private data. Keep only the context needed to explain the error.
This site organizes download links and provides configuration guides. It does not treat separate community projects as one official app. Maintenance status on the download page can help you assess the risks of each option; archived clients may suit users with specific compatibility needs. For long-term use, favor a maintained client that supports your current macOS version and documents its key settings. Open-source status alone does not guarantee that every third-party package is identical to an upstream build.
Keep the three update paths separate
Client updates mainly affect the interface, system integration, and installation services. Core updates change protocol implementations, rule handling, and network behavior. Subscription updates replace remote configuration content. These can happen independently: a successful subscription refresh doesn't mean the software itself has been upgraded. Before upgrading, note custom ports, DNS settings, and override rules. Afterward, check core startup, configuration loading, and actual connections in that order. If something breaks, this makes it easier to identify which layer changed.
Automatic updates don't replace basic checks. A subscription source may return an error page, or a field may only work with a particular core. If the app stops starting right after an update, check the configuration parsing error before changing network settings. Waking your Mac from sleep, switching network services, or starting and stopping another VPN can also change routing. During troubleshooting, adjust one setting at a time and note the results before and after each change to avoid misdiagnosing issues caused by several variables.
The difference between a client and a network service
Installing a client does not automatically provide a working outbound connection. Subscriptions usually come from a service you already use, or you can maintain your own configuration. Before importing one, verify that its source is trustworthy, its format is compatible, and you understand its rules and DNS settings. Subscription URLs may contain access credentials; don't post them in public forums or share them casually with online conversion services. If you need to convert a format, first find out which fields may be lost, then check the converted proxy groups and rule references locally.
Troubleshoot connection issues by layer. If there are no connection records, check whether the app is routing traffic through the proxy. If a rule matches but the connection fails, check the outbound and network. If only some domains fail, investigate DNS, rule order, and the destination website. System proxy and TUN are not universal fixes. Look up symptoms in the Help Center, or use the Glossary to distinguish mixed ports, proxy groups, and virtual network interfaces before changing settings.