Open-source core · Cross-platform clients

Mihomo-powered Clash clients Downloads & Setup Guides

Start with the client for your operating system, then complete subscription import, rule routing, and system proxy setup. The site also explains how the Mihomo core, graphical clients, and configuration files work together, making it easier to find the right guide for each issue.

Free forever Open source Chinese documentation
CORE mihomo LICENSE GPL-3.0 PLATFORMS 5 CONFIG YAML

Configuration browser

Understand the configuration before enabling the system proxy

The client interface handles interaction, the Mihomo core processes connections, and the configuration file tells the core how to route traffic. The four sections below cover the settings most often used in practice.

config.yaml

The configuration file is the core's operating manual

mixed-port: 7890
mode: rule
log-level: info
allow-lan: false

After a Clash client imports a subscription, it usually saves the remote content as a switchable Profile and passes it to the Mihomo core. The configuration contains fields for ports, proxy nodes, strategy groups, rules, and DNS. You normally do not need to write a file from scratch: import the subscription provided by your service first, then confirm that the client reports “configuration valid.” If you need to edit it manually, copy the configuration before making changes so a later subscription update does not overwrite them.

Unlike network tools that offer only a few fixed toggles, a YAML configuration can express each relationship clearly and is easier to migrate and troubleshoot. If startup fails, begin with the field and line number shown in the logs, then check indentation, spaces after colons, and list nesting. A successful load is only the first step; you still need to choose a strategy group and enable the system proxy.

Learn how to import a subscription →

Client downloads

Choose a Clash client for your operating system

Graphical clients are suited to everyday desktop and mobile use. For servers, routers, and automated environments, consider running the Mihomo core directly.

Windows

Designed for always-on desktop use. Before downloading, confirm your device architecture. After installation, check the system proxy, mixed port, and launch-at-startup options. If an older client is still running, quit it first to prevent multiple programs from competing for the proxy port.

Download now

macOS

Choose the package for Intel or Apple Silicon. The first launch may require permission approval in System Settings. After enabling the proxy, also check whether other network tools, browser extensions, or a system VPN are changing the connection path.

Download now

Android

Mobile clients typically take over traffic through the system VPN interface. After importing a subscription and starting the connection, confirm its status in the status bar. Background power-saving restrictions may terminate the client process, so allow it to run reliably in system settings for extended use.

Download now

iOS

Get a client that supports Mihomo configurations from the App Store. When adding a network configuration for the first time, the system will request confirmation. After importing it, choose a strategy before starting the connection, then use the client logs to confirm that the subscription update and rule loading succeeded.

Download now

Linux

Desktop users can choose a graphical client, while server users can run the Mihomo core directly. Before deployment, confirm the distribution, processor architecture, configuration path, and service permissions, and reserve clear directories for logs and configuration updates.

Download now

Quick start

Build a basic connection in three steps: import, choose, verify

Complete one working connection first, then move on to advanced settings such as rules, DNS, or LAN sharing. Change one thing at a time to keep troubleshooting clear.

  1. 01

    Import a subscription configuration

    Open the client's configuration or Profile page, paste the complete subscription URL, and download it. After importing, run one manual update and confirm that the configuration name, strategy groups, and rules are all visible. If a format error appears, first check whether the link was truncated; do not mistake a regular web page URL for a subscription URL.

  2. 02

    Choose a strategy and mode

    Open the proxy or strategy group page and select an available strategy. Start in Rule mode, which separates direct and proxied traffic according to the configuration. During testing, do not change DNS, ports, and rules at the same time, or it will be difficult to tell which setting caused the result.

  3. 03

    Enable the proxy and verify it

    Enable the system proxy on desktop, or start the system VPN connection on mobile. Then visit an external site and confirm in the client's connection log that the request appears, a rule matches, and a strategy is selected. If the page loads but the log is empty, first check whether the system proxy actually points to the client's port.

Open-source ecosystem

How the Mihomo core, clients, and configuration resources fit together

To decide whether a Clash client suits you, look beyond its interface. You also need to understand its core, configuration compatibility, update path, and troubleshooting boundaries.

Project history and core positioning

Mihomo is the core name used by the continuation of the Clash Meta project. It listens on local ports, parses configurations, establishes proxy connections, matches rules, and handles DNS. The windows, tray menus, subscription management, and system proxy controls users see are mostly provided by the graphical client layer. The core and client are not the same software package, so two clients can both use Mihomo while differing in installation, settings, and system integration.

Responsibilities across the open-source ecosystem

Core maintainers focus on protocol implementation, configuration fields, network behavior, and runtime stability; client maintainers turn those capabilities into interfaces suited to desktop or mobile systems. Subscription providers generate nodes, strategy groups, and rules. When something goes wrong, identify the layer first: an interface that will not open is a client issue, configuration parsing failures usually involve YAML or field compatibility, node timeouts belong to the connection layer, and a website taking the wrong route calls for checking the matched rule.

Configuration compatibility and migration

Mihomo supports a broad Clash configuration structure, but different clients may store their own interface settings outside the original configuration. Options such as launch at startup, window behavior, and the system proxy toggle are usually not written to the subscription file. When migrating clients, back up the subscription URL, local override rules, and client preferences separately. Do not assume that copying one configuration file will carry over everything. After reimporting, verify the strategy groups, DNS, and system proxy status one by one.

Update paths and reproducing issues

Client updates, core updates, and subscription updates follow three separate paths. A client upgrade mainly changes the interface and system integration; a core upgrade may add configuration fields or fix network behavior; a subscription update replaces nodes, rules, and strategy groups. During troubleshooting, record the platform, client name, configuration source, operating mode, and key logs to avoid unproductive experiments. If a problem appears after an update, first identify which layer changed, then decide whether to revisit the configuration or the client settings.

Featured FAQs

Identify the troubleshooting path from the symptom

Why are there no strategies to choose from after importing a subscription?

Manually update the current Profile first, then confirm that the subscription URL returns a Clash YAML configuration rather than a login page or ordinary web page. If the configuration loads but the strategy list is empty, check the parsing message in the client logs and review the import steps in the setup guide.

Why do websites still connect directly after enabling the client?

On desktop, confirm both that the core is running and that the system proxy is enabled. If the browser uses a separate proxy extension, check whether it overrides the system setting. Open the client's connection log and refresh the page; an empty log usually means the traffic has not entered the client.

Which should I choose: Rule mode or Global mode?

For everyday use, choose Rule mode so connections are routed according to the configuration. Global mode is useful for temporarily verifying that a node works, but it should not be the fixed solution to every problem. Switch back to Rule mode after testing, then inspect the specific matched rule.

Why did my changes disappear after updating the configuration?

A subscription update usually rewrites the remote configuration, so changes made directly to the local file may be replaced. For adjustments that must persist, use the client's override feature or maintain a separate configuration copy. Record the original values first so you can restore them if something goes wrong.

Technical notes

Configuration management and troubleshooting notes

Each article focuses on one specific issue and provides reproducible checks. Start with the topic that matches the symptom, then follow the steps in order.

Getting Started

What is a Clash Profile? How to switch and manage multiple configurations

Explains the relationship between Profiles, subscription links, and config.yaml, then covers naming, switching, updating, and cleaning up multiple configurations to reduce accidental edits and local-content overwrites.

Read the full article →
Troubleshooting

What to do when a Clash port is already in use: find the process blocking 7890 and change the mixed port

Use common Windows, macOS, and Linux commands to find the process using the port, then learn how to check the system proxy after changing mixed-port so traffic does not keep pointing to the old value.

Read the full article →
Formats & Options

Clash subscription formats explained: converting YAML, Base64 share links, and sing-box JSON

Compare the structure and identifying traits of common subscription formats, including which fields to preserve before conversion and which strategy groups, rules, DNS settings, and protocol parameters to recheck afterward.

Read the full article →