Open-source cores · Clients for every platform

Clash Tutorial Hub

Clash downloads& setup guides

From subscription setup to routing rules, find clients by platform and troubleshoot mihomo configuration step by step.

Open-source codeEnglish documentationRules & Config reference

Configuration Troubleshooting / CONFIG DESK

Clash setup guides: troubleshoot by issue

Whether a connection can be established, where its traffic goes, and which resolver handles its domain are three separate questions. Find the relevant troubleshooting ticket, change one setting, and test again—don’t pull out every cable at once.

Subscription setup: check for valid Clash YAML

A subscription URL is an entry point for updating a configuration, not a node address to paste into a server field. In your client’s configuration or subscription settings, add a remote config, paste the full URL, and select it after the update succeeds. If parsing fails, check that the provider returned Clash YAML—not a webpage, login prompt, or node list for another client. Subscriptions make centralized updates easier than entering nodes one by one, but updates may overwrite local edits. Put rules you need to keep in the client’s supported override or merge configuration. Hide your subscription URL in screenshots; it often contains access credentials.

config.yaml / Basic fields excerpt
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info

This excerpt is for identifying fields, not a complete config with nodes. View the subscription setup steps →

Installation / PLATFORM BAY

Clash client downloads: choose a package for your OS

Desktop installers, mobile apps, and command-line cores are different kinds of software. Identify your operating system first, then your processor architecture, and finally the protocols and configuration features you need. The downloads page lists clients, installation links, and maintenance status for each platform; installation files aren’t mixed into the homepage.

Windows

New users can start with Clash Plus or compare Clash Verge Rev, FlClash, and Clash Nyanpasu. If you need a replacement for Clash for Windows, check subscription compatibility, service mode, and configuration override options rather than choosing based on a similar-looking interface.

Before installing, confirm your operating system and processor type. On first launch, import a configuration before enabling the system proxy. If a browser works but other apps don’t, check whether those apps follow the system proxy before considering TUN. Startup on boot and background services are separate settings, and permission prompts should be handled individually.

Go to downloads Windows client

macOS

Check whether your Mac has Apple Silicon or an Intel processor, then choose the corresponding package for Clash Plus, Clash Verge Rev, or FlClash. The chip information in System Settings is more reliable than the machine’s appearance. The wrong architecture may prevent startup or require an extra compatibility layer.

On first launch, follow the system prompts to grant permissions. Before enabling traffic capture, make sure no other tool is also changing your proxy or routes. When migrating an old configuration, keep a copy of the original and check local paths, external rule files, and process rules; these may not transfer directly from another operating system.

Go to downloads macOS client

Android

Choose from Clash Plus, Clash Meta for Android, FlClash, and Surfboard based on your needs. Subscription formats, scripting features, and cores differ across apps. In particular, being able to import a node link doesn’t mean an app fully supports Clash configurations.

Starting a connection usually requires you to approve the system’s VPN prompt. For extended background use, check your device’s battery settings for app restrictions instead of granting every permission. If a connection fails after switching between mobile data and Wi-Fi, try reconnecting and check DNS and per-app proxy settings.

Go to downloads Android client

iOS

The downloads page links to Clash Plus on the App Store and lists its official website, clashplus.io. Before importing a config, make sure its format matches the app’s features. A field in the configuration file won’t necessarily be applied by every mobile app.

When connecting for the first time, follow the system prompts to add a VPN configuration, then check the active config and policy selection. Mobile apps are constrained by the system’s network extension model, so desktop service modes, process matching, and local file operations don’t transfer directly. Follow the options and guidance provided by the app itself.

Go to downloads iOS client

Linux

Desktop users can compare Clash Verge Rev and FlClash, then choose a package for their distribution. GUI clients depend on a desktop environment and system components. If installation succeeds but the window won’t open, check for missing dependencies and review startup logs instead of repeatedly changing subscriptions.

For servers and routers, find the mihomo core on the downloads page and deploy it for your architecture and runtime environment. The command-line core doesn’t include a full desktop interface; you’ll need to manage its config directory, permissions, service startup, and log rotation. When debugging remotely, don’t expose the control interface to the public internet.

Go to downloads Linux client

Upstream & maintenance / SOURCE NOTES

Open-source ecosystem and core relationships

The client provides the interface, the core handles connections and rule execution, and the subscription supplies configuration. Separating these layers helps identify whether an issue calls for a setting change, a different config, or a check of upstream documentation.

How Clash, Meta, and mihomo are related

Clash established a way of working centered on YAML configuration, proxy groups, and rule matching. Community forks and graphical clients followed. Clash.Meta was an extended branch in this ecosystem, and its core project later continued development under the name mihomo. Older guides may refer to Meta, Clash Meta, or mihomo; these names reflect the project’s evolution and don’t simply represent three entirely separate user interfaces.

The original project and extended cores don’t have the same feature set. Check the core actually running for support of new protocols, DNS fields, rule features, and platforms—not whether the client’s name includes Clash. This site provides downloads and English-language guides; it doesn’t replace announcements from client or core projects. For implementation details, consult the relevant project’s documentation, source code, and release notes.

Check GUI clients and protocol support separately

Different clients can package the same core, while clients with similar interfaces may use different cores. The GUI handles subscription management, proxy switching, system integration, and log display; the core determines configuration syntax, connection protocols, and rule execution. A setting missing from the interface doesn’t necessarily mean the core can’t configure it. Conversely, a subscription file being saved doesn’t mean all its fields are supported and active.

Start by listing your actual needs: Do you need rule overrides, a specific protocol, per-app traffic capture, or config migration across devices? Then check the client documentation and the core information in its logs. Compare protocol differences and mobile platform trade-offs in the technical reference rather than drawing conclusions from a single probe or a green status indicator.

Subscription updates and software updates are separate

Subscription updates fetch remote configurations; software updates replace the app or its bundled core. Neither replaces the other. A subscription change may affect node names, rule targets, and proxy group references. A software update may add fields, change defaults, or fix compatibility issues. Back up your config and local overrides before updating. Afterward, check the logs and test commonly used apps; there’s no need to reset every option.

If a remote subscription overwrites local changes, look for the client’s persistent override mechanism rather than disabling all updates. GeoIP, GeoSite, and rule sets also have their own data sources and update schedules. When routing changes, first check whether the configuration or data files changed, then investigate the software itself. This process turns “it worked yesterday, but not today” into a set of testable questions.

How to use open-source resources beyond checking a badge

The value of source code is traceability: you can review implementation, configuration examples, issue discussions, and change history. Before downloading, confirm the project name matches the client. For configuration questions, prefer the current core documentation, and verify whether fields in old screenshots still apply. Repository stars don’t mean a project suits every device, and active discussions don’t mean a fix has shipped. Base your judgment on the actual documentation and release contents.

When reporting an issue, include your operating system, client name, core details, reproduction steps, and redacted logs. Don’t publish full subscription URLs, node passwords, or control interface credentials, and don’t paste your entire config into a public discussion. Issues reproduced with a minimal config are easier to diagnose: remove unrelated rules and overrides first, check whether the error persists, then add back the necessary context.

Technical notes / WORK LOG

Recent configuration notes: DNS, rules, and databases

Getting-started guides walk you through connecting; technical notes cover specific fields and edge cases. Before making changes, confirm who maintains the configuration. Afterward, check the result with a new connection. Change one thing at a time so the logs remain comparable.