Windows
A good fit for everyday desktop use. After installation, check the system proxy, listening port, and UWP app loopback. If more applications need to be intercepted, configure TUN according to the required permissions.
Go to DownloadsStart by choosing a client, then work through subscription import, proxy mode, and rule-based routing in order. Desktop and mobile entry points, including Windows, macOS, and Linux, are organized in one place.
RULE ENGINE INDEX
The client UI is only the control surface. Actual behavior depends on the configuration, proxy groups, match order, and the scope of system traffic interception. The five areas below cover the points users encounter most often.
Current Focus
Rule issues are often caused not by syntax, but by a broad rule earlier in the list intercepting the request first. Open Connections, find the target domain, and note the matched rule and proxy group before returning to the configuration to adjust the order. Reload the configuration and create a new connection after editing; existing connections do not automatically repeat the full matching process.
Current Focus
If rule mode fails but global mode works, the node is usually available and the issue is in rule matching or proxy-group selection. If both modes fail, check the listening port, subscription status, and node connection. Direct mode restores the original network path, making it easier to compare behavior with and without the proxy.
Current Focus
After a subscription URL returns content, the client still needs to parse the format, save the file, select the configuration, and reload the core. If import fails, first confirm the URL returns Clash YAML rather than a webpage, a generic encoded subscription, or a login prompt. After import succeeds, verify the name of the currently active configuration.
Current Focus
If a browser works through the system proxy, the node, port, and basic configuration are probably usable. Then enable TUN and test an app that does not read system proxy settings; this separates permission, virtual-adapter, and routing issues from node problems. Change only one setting at a time for clearer results.
Current Focus
If the Connections view shows no request at all, the app did not reach Clash's listening endpoint. If a request appears but the policy is wrong, check the rules and proxy group. If the policy is correct but the connection fails, inspect node status, DNS results, and log errors. Verifying each link in the chain prevents unrelated settings from being changed at once.
PLATFORM ENTRANCE
The same Clash configuration can be loaded by clients with very different interfaces. Focus on the operating system, processor architecture, TUN support, and maintenance status; visual appearance should not be the only deciding factor.
A good fit for everyday desktop use. After installation, check the system proxy, listening port, and UWP app loopback. If more applications need to be intercepted, configure TUN according to the required permissions.
Go to DownloadsWhen downloading, choose the build for Apple Silicon or Intel. The first launch may require approval for a network extension or other system permissions; check the menu-bar status and system proxy switch separately.
Go to DownloadsDesigned for phones and tablets. After importing a subscription, the system VPN interface handles app traffic. Battery-saving settings, background restrictions, and always-on options directly affect connection persistence.
Go to DownloadsUses a system network extension to establish the connection, with configuration, proxy groups, and on-demand connections managed in the app. On first use, allow the VPN configuration to be added, then check the connection status in the system status bar.
Go to DownloadsSuitable for desktops, servers, and routers. A GUI client makes everyday switching easier, while running the Mihomo core directly requires you to manage configuration files, service processes, and permissions yourself.
Go to DownloadsQUICK START
Do not change rules, DNS, TUN, and the system proxy all at once during initial setup. Establish a minimal working path first, then expand the interception scope one item at a time. If something breaks, you can clearly return to the last known-good state.
Read the Complete GuideFrom the Downloads page, choose a client that matches your operating system and processor architecture. After the first launch, check the log or status page to confirm that the configuration directory is writable and the listening port is open. Make sure no other proxy process is using the same port.
Paste the subscription URL on the configuration page and start the download. After the configuration entry appears, select it manually so the client reloads the core. Then open the proxy page and choose a specific node for each selectable proxy group.
Enable the system proxy first, visit a test destination in a browser, and find the corresponding request in Connections. Once the browser works, test the terminal and other apps separately. Configure TUN and DNS last when broader traffic interception is needed.
OPEN SOURCE CONTEXT
To decide whether a Clash client is suitable for long-term use, separate the graphical interface, proxy core, configuration format, and subscription source. They are maintained by different projects or services and follow different release cycles.
Clash first became widely used as a rule-driven, cross-platform proxy core with a recognizable configuration syntax and policy model. After the original project stopped updating, its configuration format, rule language, and client workflows continued across the ecosystem. When reading older guides, first determine whether they discuss the original Clash, a later core, or a specific GUI client so fields and features from different stages are not mixed together.
Common desktop clients usually combine a graphical interface, configuration management, system proxy controls, and a core process. The interface project handles installation, subscription updates, policy selection, and system integration; the core handles protocol connections, DNS, rule matching, and traffic forwarding. A client UI becoming unmaintained does not immediately invalidate the configuration syntax, but system compatibility and core capabilities will gradually diverge.
Mihomo continues the Clash configuration ecosystem and adds capabilities for protocols, rules, DNS, and TUN. Many modern desktop clients use it as an optional or built-in runtime core. Whether a configuration loads depends on both valid YAML syntax and support for its fields in the current core. When you encounter an unfamiliar option, check the core documentation first rather than looking only for a matching switch in the client UI.
Client updates, core updates, and subscription updates are three independent tracks. Client updates address the interface and system compatibility; core updates change protocol and network handling; subscription updates replace nodes, proxy groups, and remote rules. Record their statuses separately during maintenance. When troubleshooting, roll back one track at a time to determine whether the change came from the software, configuration, or subscription.
SOURCE COMMAND
The command below fetches the public source code. Building the core requires a separate Go development environment; for everyday use, choose a client with a graphical interface instead.
git clone https://github.com/MetaCubeX/mihomo.git
FIRST CHECKS
These four categories cover the most common points of failure during first-time setup. The Quick Start Guide and user manual contain the complete procedures; this section focuses on how to narrow down the cause.
First confirm that the URL returns Clash-readable YAML rather than webpage content or another subscription format. Then check that the configuration downloaded successfully and is selected as the active entry. Nodes may be inside a proxy group instead of appearing directly on the home screen.
View the Subscription Import Steps →Some terminal programs do not read the operating system's proxy settings. Configure the HTTP, HTTPS, or SOCKS environment variables separately, or use TUN if appropriate. Test the browser and terminal independently, and confirm for each whether its request appears in Connections.
View System Proxy and TUN →Rule mode is usually best for everyday use, sending local services, proxy destinations, and rejected traffic to their respective paths. Global mode is useful for briefly testing whether a node connects, but it should not replace a complete rule set. After switching modes, create a new test connection so an old session does not affect the result.
Read About Proxy Modes →Content written directly into a file generated from a remote subscription may be replaced entirely during the next update. For lasting customization, use the client's override, merge, or scripting mechanism. Keep a bootable copy before editing, and confirm the final insertion point and its order relative to MATCH.
Learn How to Maintain Rules →LATEST NOTES
Practical, reproducible checklists for three frequent scenarios: system proxy issues, Windows setup, and navigating the client interface.
When the system proxy is enabled but traffic still bypasses the proxy, browser and terminal behavior must be investigated separately. This guide checks proxy settings, extension conflicts, environment variables, and listening ports.
Read More →Walks through the correct Windows sequence from installer selection and system prompts to subscription import and the system proxy, including UWP loopback, port conflicts, and startup issues.
Read More →Explains the roles of the Proxy, Configuration, Connections, and Logs pages, including node selection, subscription management, live sessions, and troubleshooting records.
Read More →