Open-source client · mihomo kernel

FlClash Official Site
Cross-platform client

A graphical interface built with Flutter, connected to the mihomo kernel for rule processing and traffic handling. Platform-specific downloads, subscription imports, proxy-group selection, and troubleshooting resources are organized in one place.

Free forever Open source Chinese documentation Rule-based routing
ELEMENT BROWSER / 01

FlClash core configuration capabilities

The GUI organizes subscriptions, policies, and settings, while mihomo executes rules, DNS, and traffic forwarding. The sections below break down each capability by its practical configuration fields.

Su

Centralized subscription management

FlClash can manage subscription URLs and local YAML configurations in one place. After importing a URL, the client fetches the remote configuration and saves it as a selectable profile; when it needs refreshing, update it manually from the configuration page or set an interval that fits your usage. This avoids repeatedly downloading files, replacing configurations by hand, and losing track of multiple copies. If a subscription fetch fails, check the link’s validity period, network reachability, update proxy, and DNS resolution instead of repeatedly deleting the client. Name profiles by purpose, and before switching, confirm that rule mode, DNS, and proxy groups fit the current network environment.

profile.store-selected: true
PLATFORM MATRIX / 02

Open the download page for your device

The download center lists graphical clients, architecture options, and installation notes by operating system. The homepage links only help you find the right platform; they do not link directly to installation packages.

Windows

Suitable for everyday desktop use. Check your system architecture before downloading, then import a subscription from the configuration page and enable the system proxy or TUN mode as needed. If an older client is still running, quit its kernel and tray processes first to avoid port conflicts.

Go to downloads

macOS

Supports both Apple Silicon and Intel devices. On first launch, macOS may require approval for a network extension or related permissions in System Settings. Match the package architecture to your processor to avoid additional problems from translation layers.

Go to downloads

Android

Designed for phones and tablets. After importing a subscription, the system creates a local forwarding channel through VPN permissions. Battery-saving policies may restrict background activity, so allow the client to keep running in your device’s system settings.

Go to downloads

iOS

Get the client through the system app store; configuration options are available in the download center. The system displays the VPN status while connected, while proxy groups, subscriptions, and rules remain managed in the client. Confirm the subscription source and configuration purpose before use.

Go to downloads

Linux

Provides a graphical client entry point for desktop Linux users, while the download center also includes a mihomo kernel section. Check the distribution format and processor architecture when choosing a package; server environments are often better served by using the kernel directly.

Go to downloads
QUICK START / 03

From subscription import to connection verification

First-time setup takes three main steps. Configure advanced DNS, override scripts, and complex rules only after the basic connection is stable.

  1. 01

    Import a subscription

    Open the configuration page, choose Add from URL, paste a valid Clash subscription link into the input field, and save it. Once the configuration finishes downloading, check that its name, proxy groups, and update time look correct. If the link cannot be read, do not submit it repeatedly. Confirm that the URL is complete, that a browser can reach it, and that the current network does not require a proxy for updates.

  2. 02

    Choose a mode and policy

    For everyday use, start with rule mode so the configuration can decide between direct and proxied connections based on domains, IPs, and rule sets. Then open the proxy page and choose an available node in the main proxy group. An automatic selection group handles candidates according to its configured logic, while a manual group keeps the current choice. After switching nodes, wait for existing connections to finish before checking whether the new policy is active.

  3. 03

    Connect and verify the path

    On desktop, start by enabling the system proxy; on mobile, grant VPN permission when prompted by the operating system. After connecting, visit familiar websites and check the client’s connection log for rule matches and outbound policies. Evaluate TUN mode only when an application that ignores system proxy settings cannot connect; this keeps permission, routing, and ordinary proxy issues easier to separate.

View the complete guide →
OPEN SOURCE / 04

How the Flutter interface and mihomo kernel work together

FlClash is a graphical client in the open-source Clash ecosystem. The project uses Flutter to organize a consistent cross-platform interface for configurations, proxy groups, logs, system proxy controls, and tools. mihomo handles actual rule matching, protocol processing, DNS, TUN, and traffic forwarding. This distinction matters: interface issues are usually related to permissions, saved configurations, or platform integration, while connection issues require a closer look at kernel logs, rule matches, and network paths.

mihomo carries forward and extends the capabilities of Clash Meta, with YAML remaining the primary configuration format. Subscription services typically provide nodes, proxy groups, and rules; the client loads and switches them, while the kernel executes them. Because these three layers may follow different release schedules, first identify whether a problem lies in the subscription content, the client interface, or the kernel runtime. Blaming every issue on a node can hide more common causes such as DNS, rule order, port conflicts, and system permissions.

The open-source repository provides source code, commit history, issues, and release information, making it useful for checking project maintenance and feature changes. This site organizes available clients by operating system on its download page, while its guides and configuration references turn common tasks into step-by-step instructions. Updates focus on reproducible installation paths, real configuration fields, and clearly defined troubleshooting boundaries rather than unverifiable download counts, ratings, or performance figures.

Client updates and subscription updates are two different things. A client update may change platform support, the interface, or kernel integration; a subscription update refreshes the nodes, proxy groups, and rules supplied by the service. Preserve the currently working configuration before updating, then reload it and check key policies afterward. If you have many custom settings, use overrides or merging to preserve local differences instead of editing a subscription file that will be replaced on every update.

COMMON CHECKS

Featured frequently asked questions

How do I import a Clash subscription link?

Open configuration management, choose Add from URL, and paste the complete subscription address. After the download finishes, select the profile, then choose a proxy group on the proxy page. See the quick-start page for the detailed interface path and first-connection sequence.

View the import steps →

Why do node speed-test results change?

Speed tests are affected by the target address, current network, node load, and testing method, so they are useful only as a relative snapshot. Make the final choice using website access, video loading, and stability as well; do not rely on a single latency result.

View usage tips →

Should I use the system proxy or TUN?

Start with the system proxy for basic verification. Enable TUN only when an application ignores proxy settings or you explicitly need to handle more traffic. Enabling modes in stages makes it easier to tell whether an issue comes from permissions, routing, or configuration.

View mode details →

What should I check first when a subscription update fails?

First check whether the link has expired, the address was truncated, DNS is working, and the update request needs to go through a proxy. Keeping the original profile and reviewing the error message makes the cause easier to locate than deleting and reinstalling the client.

Read the troubleshooting article →
TECH NOTES / 05

Clash configuration and ecosystem articles

Long-form resources on subscription failures, project relationships, and differences in the mihomo kernel. Each article focuses on one issue, making it easier to find guidance by symptom.

Getting Started

Clash subscription update failures: common errors and automatic refresh intervals

Troubleshoot expired links, blocked requests, DNS poisoning, and proxy loops step by step, with guidance on automatic refresh intervals and where to configure the update proxy. Useful when a subscription imports successfully but cannot refresh later, or behaves differently across networks.

Read the full article →
Ecosystem

The Clash open-source ecosystem explained: original Clash, Meta, mihomo, and their clients

From the original Clash kernel to the Meta fork’s rename to mihomo, this guide distinguishes the roles of kernels, graphical clients, and subscription configurations. It explains why names such as FlClash, Verge, and ClashX often appear together.

Read the full article →
Kernel Deep Dive

How mihomo improves on original Clash: protocol support, rule sets, and TUN compared

Compare outbound protocols, rule-providers, traffic sniffing, DNS, and TUN, with an explanation of how field differences affect everyday configurations. Intended for users with a working basic connection who are ready to organize rules and network paths more precisely.

Read the full article →