Open-source mihomo core · Clients for every platform

ClashX Official Site · Clash Client
Downloads & Setup

Set up your platform, then configure subscription imports, rule-based routing, and the system proxy.

Open sourceYAML configurationSetup guides

Built on the open-source Clash ecosystem

  • mihomo
  • Clash Verge Rev
  • ClashX Meta
  • FlClash
  • Clash Meta for Android

Rule-based routing and
subscription management

Understand the difference between configuration sources, outbound rules, and traffic entry points. The client interface handles controls; the core executes them. Menu names vary between clients, but the underlying concepts are often similar.

Readable configuration

YAML keeps keys and hierarchy explicit, making settings easier to find and review.

Traceable connections

Use rule matches and runtime logs to verify the actual outbound route.

config.yaml / Rules checked in order
mode: rule
rules:
  - DOMAIN-SUFFIX,apple.com,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

Rules are checked from top to bottom, and the first match determines the outbound policy. This example sends specified domains direct, then routes based on the destination region, with MATCH handling everything else. PROXY is not a built-in catch-all; it must refer to a node or proxy group in your configuration. After importing a subscription, select rule mode and enable connection logging to check the matched rule and actual exit. If one site has a problem, check rule order, domain resolution, and DNS results first rather than switching the entire configuration to global mode.

Platforms and downloads

Clash client downloads

Browse all clients →

Check your operating system and processor architecture before choosing a client. A package launching successfully only confirms that the app is installed. A working connection also needs a valid configuration, a reachable outbound node, and the right traffic entry point. The downloads page lists available clients, installation requirements, and archived projects for each platform. You don't need to install several clients to get started.

Windows

Start with Clash Plus, or compare it with clients such as Clash Verge Rev and FlClash. Check your system architecture before installing, and make sure the mixed port isn't in use when you first launch the app. Use the system proxy for an initial connection test. If you need TUN, follow the client's instructions to install its service or grant the required permissions.

If your browser works but another app doesn't, check whether that app uses the system proxy. Store app loopback access issues are different from proxy node failures; follow the UWP loopback guidance separately.

Download Windows client→

macOS

Check About This Mac to see whether your Mac has Apple silicon or an Intel processor, then choose the matching installer. Move the app to Applications and launch it. Grant proxy helper or network permissions only if needed. Permission requests vary by client; don't assume every app needs a system extension.

If a permission prompt appears, verify the app name, source, and action requested. If you need to restore a permission you denied, check Privacy & Security and the relevant network settings in System Settings. Reinstalling repeatedly won't resolve permission issues.

Download macOS client→

Android

Choose from clients such as Clash Plus, Clash Meta for Android, and FlClash. Check your device architecture and the installation requirements, import a subscription, select its configuration, and then approve the system VPN connection request. This permission creates a local traffic entry point; it doesn't mean your subscription service is ready to use.

If the connection drops when your screen locks, check battery optimization, background activity restrictions, and whether another VPN is in use. Settings vary by manufacturer, so change one thing at a time and see if the connection recovers.

Download Android client→

iOS

The downloads page links to Clash Plus on the App Store and lists its official site, clashplus.io. After installation, check that your subscription format is supported, then import it, select a node, and grant permission to configure the system VPN. A connection icon alone isn't proof that everything works; test actual access to verify the rules and outbound route.

If the connection stops working after switching from Wi-Fi to cellular, check the app's network permissions and configuration first. The client manages connections; the subscription source determines its contents, node availability, and service coverage.

Download iOS client→

Linux

Desktop users can explore Clash Verge Rev and FlClash, choosing a package compatible with their distribution. The desktop system proxy, proxy environment variables in the terminal, and TUN are separate traffic entry points. A working browser connection doesn't mean command-line tools use the same settings.

For server or router deployments, see the mihomo core documentation. Check the listen address, file permissions, service manager, and firewall separately. Never expose a control interface intended for local use directly to the public internet.

Download Linux client→

First connection checklist

Clash quick start

Read the full guide →

Check that the configuration loads, a node connects, and the app can access the network—in that order—to narrow down where a problem lies. For your first setup, keep the default port and rule mode. Hold off on changing DNS, adding lots of rules, or enabling multiple traffic entry points at once. Use these three steps as a post-install checklist, then consult the full guide for details.

01 / CONFIG

Import and select a subscription

Add the full URL in the subscription or configuration menu, or choose an existing local YAML file. Wait for the download to finish, select the configuration, and check the parsing result. Seeing a name in the list doesn't mean it loaded successfully; if there's a field error, start with the line number in the log. The example URL illustrates the format and isn't a real subscription.

02 / ROUTE

Choose a mode and outbound route

For everyday use, start with rule mode and select an available node in the relevant proxy group. A proxy group selection affects only the rules that reference it; it doesn't override all traffic. Latency tests check connectivity under specific probe conditions, not download speed. If a test fails, check actual access and logs as well.

03 / VERIFY

Enable the entry point and test

On desktop, start with the system proxy. On mobile, approve the VPN configuration prompt. Test one destination expected to connect directly and one expected to use the proxy, then check matched rules and outbound routes in the connection log. If the client shows no new connections, troubleshoot the traffic entry point first. If connections appear but fail, check DNS, the node, and the destination network.

Keep a restorable copy of your configuration when you're done.

Remote subscription updates may overwrite manual edits. Use the client's supported override or merge mechanism for custom rules. Record the original settings before making changes. If something breaks, revert to a known-working state and reproduce the issue one change at a time instead of changing several settings at once.

Project relationships and source code

The Clash ecosystem and the mihomo core

Clash is an ecosystem, not a single installer

Clash first gained users through its rule-based proxy core and configuration format. Graphical clients for different platforms, core forks, and configuration tools followed. Today, a search for Clash may turn up projects with similar names but different maintenance status. Check the client, the core it uses, and the configuration format separately rather than assuming they share the same features based on a name or icon.

The ecosystem logos on this page illustrate relationships between projects. They don't mean those projects jointly released an installer or endorse this site. The downloads page labels currently available clients and archived projects separately, making it easier to choose between compatibility with older configurations and actively maintained tools.

Separate interface management from network processing

mihomo builds on and extends the configuration and routing capabilities of the Clash ecosystem. Graphical clients can add subscription management, tray menus, connection views, and system services around the core, but those interface features aren't all part of the core itself. When troubleshooting, a broken subscription button may be a client management issue, a configuration parsing error may involve an unsupported core field, and an inactive system proxy may point to an integration issue.

Open-source repositories can help you verify project documentation, license terms, configuration guides, and public issue reports. mihomo is licensed under GPL-3.0; check each client repository for its own license. You don't need to compile from source just to inspect it. For most users, a more practical first step is to read the documentation and release notes relevant to the issue at hand.

MetaCubeX / mihomo · Source code

Explore the implementation and configuration docs

If you're investigating rules, DNS, or core behavior, start with the project repository. The command below only clones the source code; it won't install a graphical client, provide a subscription, or change your network settings automatically.

git clone https://github.com/MetaCubeX/mihomo.git

Linux penguin graphic source: Font Awesome Tux, licensed under CC BY 4.0; displayed on this site as inline vector artwork.

Understand the impact before updating

Client, core, subscription, and rule data updates are separate actions. Updating a subscription changes the content from its source; updating the core may affect supported fields and runtime behavior; rule data supports region or category matching. If something breaks after an update, first identify which layer changed and check its release notes. Don't attribute every problem to an unavailable proxy node.

Before moving to another client, save your current configuration and any local overrides, then confirm the new client supports the same rules and protocols. An archived project may still launch but not adapt to later system changes. Decide whether to keep using it based on your needs, its maintenance status, and known issues.

Keep logs limited to what's needed for troubleshooting

For everyday use, a moderate log level is usually enough. When tracking down a problem, note when it occurred, the destination type, matched rule, and error; then temporarily increase log detail. Before asking for help publicly, remove subscription URLs, node passwords, access tokens, and other private information. Share only the smallest configuration snippet needed to reproduce the issue.

A thorough troubleshooting process separates local listening, DNS resolution, rule selection, and remote connections. First check whether traffic reaches the core, then confirm the rule selects the expected route, and finally check the node and destination service. Isolating each layer produces more reproducible results than repeatedly switching clients. Find detailed examples in the usage docs and FAQ.

Browse by issue

Clash tips and guides

Browse all articles →

After your first successful connection, explore guides based on the issues you actually encounter. During installation, focus on ports, modes, and system entry points. For app compatibility, look at DNS and traffic handling. If subscription import fails, check the input format first. Tackle one testable issue at a time and keep a record of before-and-after settings to identify what made the difference.