Open source · Clients for every platform, regularly updated

Clash clients
Free downloads

Choose a client for your device, manage subscriptions and rule-based routing with one compatible profile, and follow the English guides from installation through connection.

Open sourceCross-platform profilesStep-by-step guides

Choose your platform

Client downloads

Choose a Clash client for your operating system

Check your operating system first, then choose the right processor architecture. Desktop apps, mobile apps, and standalone cores have different installation steps. The download page lists supported devices and requirements for each option.

Clients manage profiles and forward traffic locally; remote proxy access depends on the services and configuration you provide. Installing an app does not give you working proxy nodes. If you already have a subscription, check that it uses a profile format supported by your client. When migrating from another client, keep the original profile and recheck local ports, permissions, and rule compatibility.

Browse all clients →

Profiles and connections

Rules, modes, and traffic routing

This interface is illustrative, not a full screenshot of any specific client. Menu names vary between clients. Understand how profiles and traffic work, then find the corresponding settings in your app.

Everyday profile

Rule-based routing

Evaluated from top to bottom
The first matching rule applies

rules:
  - DOMAIN-SUFFIX,google.com,Proxy
  - IP-CIDR,192.168.0.0/16,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,Proxy
Default policyProxy

Policy group names must match those defined in the profile.

Read the full system guide →Work through the chapters, from core concepts to profile maintenance.

Limits of profile portability

mode: rule
proxy-groups:
  - name: Proxy
    type: select
    proxies:
      - DIRECT
rules:
  - GEOIP,CN,DIRECT
  - MATCH,Proxy

This structural example illustrates policy references only. Define your own proxy exits in your profile.

Cross-platform profiles

Reuse the same rules
Set permissions per device

Clients that support the same profile format can share domain rules and policy group definitions. Copying a profile saves you from rebuilding your routing logic on each device, but local network settings are device-specific: desktop listening ports, VPN permissions on mobile, and startup behavior vary by operating system.

Before moving a profile to another platform, check core compatibility, then import it. If it uses local rule files, scripts, or client-specific fields, confirm the target client can read them. Copying a subscription URL alone does not guarantee identical features across clients. Keep a working copy of your profile to make migration and rollback easier.

  1. Install a client and import a subscription

    Download the client for your operating system, open profile management, import a compatible subscription, and select it. If you don't have a subscription, prepare a working profile first; the app itself does not create a remote proxy service.

  2. Choose a mode and exit

    Choose Rule mode, confirm that a policy group points to a working exit on the proxy page, then enable the system proxy or the VPN connection required by your platform. Avoid adding other network tools during initial setup.

  3. Test the connection and routing

    Visit a few everyday websites and check the matching rules on the connections page. Then test local services and frequently used apps to confirm proxy and direct traffic are handled as expected.

Quick start · Three stages

Get connected first
Then adjust advanced settings

For your first setup, check in this order: the profile is valid, the exit works, and traffic reaches the client. Importing successfully is only the first step. Confirm that a policy group has an exit selected and that app traffic is actually passing through the client. If the connection fails, check the error details instead of repeatedly switching modes.

Change one setting at a time and note its previous value. Once the basic connection works, try TUN, custom DNS, or rule overrides. This makes it easier to identify which change affected the network and restore your previous setup after a subscription update.

Read the full guide →

Open-source ecosystem and maintenance

What the client interface does—and what the proxy core does

Knowing where the software comes from and which component applies your profile is more useful than relying on the app's name alone. This site collects download links and English documentation; it does not provide proxy services. Features depend on the client and the core it supports.

From Clash to mihomo

Clash established a way to manage proxies, policy groups, and rules through profile files. The original project and the clients built around it are maintained by different parties. The Clash Meta/mihomo ecosystem has continued to develop compatible profiles and networking features. A client with Clash in its name is not necessarily from the same team or compatible with the same protocols and fields.

When choosing a new client, check its current maintenance, operating system support, and core compatibility. Older clients can help explain migration history, but long-term use also means accounting for permission, networking, and installation changes introduced by operating system updates. You don't need to rewrite your profile all at once: import it into a maintained client and use the logs to identify unsupported fields.

The interface manages; the core handles the traffic

Graphical clients typically provide subscription management, mode switching, system proxy controls, and log access. The core parses profiles, matches rules, makes proxy connections, and handles DNS. Whether a menu is available depends on both the interface design and the bundled core and permission model. If a guide doesn't match your screen, confirm the client name first, then look for an equivalent setting.

The downloads page lists graphical clients separately from the standalone mihomo core. Desktop and mobile users can usually get started more easily with a graphical interface. Server, router, and automation users need to manage profile paths, service permissions, and startup behavior themselves. Downloading the core alone does not provide graphical controls for system proxy settings.

Source code and issue tracking

Open-source repositories let you inspect implementations, understand configuration fields, and look for known issues. When reviewing issue reports, compare the reproduction steps: similar symptoms can result from an expired subscription, restrictions on the destination site, or a local proxy port conflict—not just a software defect. When reporting a problem, include the client name, operating system, steps to reproduce, and logs with sensitive information removed to reduce follow-up questions.

The command below retrieves the mihomo source code for users who want to inspect the implementation or contribute. You don't need to build the project for everyday use; choose a client from the downloads page instead. Read the repository's build instructions, configuration docs, and release notes together. Public source code makes verification possible, but does not replace checking your own environment and profile.

Keep a recoverable state before updating

Client updates, core updates, and subscription updates are separate changes. An app update may alter the interface or permissions; a core update may affect supported fields and connection behavior; a subscription update may replace policy groups or rules. Handle them separately so you can identify the cause of a problem and roll back step by step using the logs.

Before updating, note the selected profile, policy group choices, and local overrides, and keep your own rule files. Subscription content is usually maintained by its provider, so edits to downloaded files may be overwritten on the next update. For changes you need to keep, use the client's override or merge features where available. After applying a new profile, test websites, local network access, and frequently used apps.

View mihomo source code

Git must be installed on your machine. This command only retrieves the repository; it does not install or start a proxy service.

Open the project repository ↗
git clone https://github.com/MetaCubeX/mihomo.git

Linux penguin icon: Font Awesome, used under CC BY 4.0. View license

Configuration notes

Recent guides and troubleshooting articles

Once your basic connection works, look up additional configuration details as needed. Establishing a reproducible baseline makes it easier to draw clear conclusions than changing your proxy, mode, and DNS all at once.

Browse all articles →

Choose a troubleshooting path by symptom

If the client starts but websites won't load, first confirm the subscription is still valid, then check the listening port and system proxy. If only one app is affected, check whether it honors the system proxy, uses its own DNS, or is routed through another VPN. If the connection doesn't appear on the connections page, check how traffic enters the client before changing the final rules.

To set everything up from scratch, read the user guide. If you're already connected and want to understand policy groups and rule order, continue to the system guide. Keep your original settings while troubleshooting, and note each change and result. This helps you avoid leaving an unnecessary global proxy or DNS override in place after the connection is restored.