The Clash ecosystem isn’t a single app with one standard interface. The core parses configuration, applies rules, and establishes connections. The GUI client manages subscriptions, system proxy controls, menu bar features, and updates. Understanding this split helps distinguish a missing interface option from an unsupported configuration field or traffic capture that isn’t working—without repeated reinstalls or guesswork.
Project History and Compatibility
After the original Clash project stopped receiving updates, the community continued developing forked cores and GUI clients. mihomo follows the technical lineage of the Clash Meta branch, retaining many familiar configuration fields while adding its own capabilities. Being able to parse an older configuration doesn’t mean an older core supports every newer protocol, rule-set format, or DNS option. If parsing fails, first check the name of the core actually running, then consult its documentation—not just the app icon or installer name.
Older guides may also refer to menu labels or permission steps that have changed. Focus on the goal—such as opening proxy settings for the active network service or checking the final runtime configuration—then find the equivalent in your client. Archived clients can help explain legacy configurations, but choose software based on current OS compatibility and project documentation, not screenshots of an old interface.
Core Capabilities and Client Features
Even clients built on mihomo may differ in their override systems, subscription updates, and system service setup. Core support for a field doesn’t guarantee the GUI has a matching control; a TUN toggle in the interface doesn’t mean service permissions are already in place. Troubleshoot in layers: confirm the configuration was generated, check that the core started, then verify the operating system is sending traffic to the right endpoint. This is easier to reproduce than changing several switches at once.
The YAML snippets on this page show where fields go; they are not complete subscriptions you can use to connect. A working configuration also needs nodes, proxy groups, and rules suited to your needs. Before merging an example into an existing file, check indentation and field hierarchy to avoid duplicate top-level keys. Use the client’s configuration checker, reload the runtime configuration, and keep a backup so you can revert.
Source Code and Documentation
Use mihomo’s source code and documentation to check what configuration fields do, platform limitations, and change history. Distinguish the core repository from GUI client repositories: consult core docs for proxy protocols, rule matching, and DNS behavior; consult the relevant client docs for subscriptions, menu bar controls, and service installation. Public code makes implementation easier to trace, but doesn’t replace checking your configuration source and local permissions.
When reporting an issue, include relevant system details, the core type, and a minimal reproducible configuration. Logs may contain domains, subscription URLs, or node details; redact sensitive information before posting publicly. Describe what you did, what you expected, and what happened instead. Avoid uploading your full everyday configuration—this helps maintainers investigate while keeping unrelated details private.
Updates and Configuration Rollback
Client, core, and subscription updates are separate processes. A client update may change configuration management or permission steps; a core update may change how fields work; and a subscription update may replace nodes and rules. Before updating, note your current traffic-capture method and local overrides. Afterward, test the browser, command line, and LAN services separately. Don’t assume that a client launching means every network path works.
If something breaks after an update, compare the final runtime configuration and logs before deciding what to roll back. If a remote subscription overwrote local rules, restoring those rules is simpler than reinstalling the app. For a lingering system proxy, check network service settings. If TUN won’t start, check service permissions and conflicting apps. Change one thing at a time to keep the cause easy to trace.