Open Source / Projects & Cores
The Clash open-source ecosystem and maintenance status
The interface, core, and subscription are three separate things. When choosing a client, check its maintenance status first, configuration compatibility next, and device-level traffic routing last.
The original Android project and its successors
Clash for Android is a familiar client name for many Android users, with common tasks available from the Home, Configuration, and Settings screens. The original project is no longer maintained, so distinguish its older interface and installation packages from currently available apps when searching for tutorials. This site explains Android configuration concepts and links to alternative clients on the download page; it does not treat separate projects as updates to the same app. Clash Meta for Android, FlClash, and other names refer to different client implementations, so check where settings are located and which features are supported when migrating.
If an existing configuration works reliably, export or back it up before testing it in a new client. Don’t overwrite the original file or try an in-place install just because two apps have similar names. Whether an Android app can be installed over another also depends on its package name and signature; an installation conflict doesn’t necessarily mean you chose the wrong device architecture. After migrating, check policy group names, matched rules, and background operation. Once the new setup works, remove any clients you no longer need. Use the comparison guide to understand the differences and the quick start guide for setup steps.
How graphical clients and the Mihomo core work together
Graphical clients handle configuration management, menus, system proxy settings, and platform integration. The core parses the configuration and handles connections. Mihomo is an open-source core project in the Clash ecosystem, but not every client with Clash in its name uses the same core or supports exactly the same configuration fields. If a configuration loads on one device but fails on another, the cause may be differences in core capabilities or how the client converts or overrides the configuration. Start by reading the specific error message; don’t judge compatibility by an app icon or a similar-looking tutorial screenshot.
For most desktop and mobile users, a graphical client makes it easier to grant permissions and choose a policy. Running the core directly is mainly useful when deploying a server or router, or managing the service yourself. The command below points to Mihomo’s source code repository, where you can read the implementation, build instructions, and issue discussions. Cloning the repository won’t install an Android app or generate a working subscription. Use the repository to understand how the software works; connecting still requires a valid configuration and suitable system network settings.
Handle subscription updates and software updates separately
Subscription updates fetch nodes, policy groups, or routing rules again. Software updates change the client or core itself; one does not replace the other. If a subscription update fails, first check that the link is still valid and the response uses a format supported by your client, then look for network or parsing errors. Installing a different client won’t make an expired link work again. Conversely, newer core versions may be needed to recognize new configuration fields, so check the software’s capabilities instead of repeatedly refreshing the subscription. Checking both paths can prevent unnecessary changes unrelated to the problem.
Before making changes, note the current mode, selected policy, and overrides, then test the same destination again after updating. A remote subscription may overwrite edits made directly to a local file, so use the client’s supported override or merge options for preferences you want to keep. Clients implement these features differently; don’t assume a setting has the same effect just because another app uses a similar label. The download page lists available update information in each client’s details. If a project’s maintenance status is unclear, check its release notes and compatibility with your system before deciding whether to keep using it.
Connection checks and configuration privacy
A VPN indicator, a service-running message, and a successfully opened webpage each reflect a different state. A successful startup only means the local service is running; it doesn’t prove that a node works or that every app is routed through it. To test a connection, first confirm that the device can access the internet, then open a target webpage and check whether the connection appears in the logs, which rule matched, and which policy group was selected. If only one app has problems, check app access control. If every domain fails, check nodes and DNS one at a time rather than rebuilding the entire configuration for a local issue.
Subscription links often contain account details and should be treated like credentials. Don’t post a full link in a public support forum or reveal configuration QR codes, authentication fields, or account information in screenshots. When reporting an issue, share the client name, system environment, steps to reproduce, and error text with sensitive details removed. Open-source repositories are useful for reading code and discussing issues, but they are not subscription providers. This site collects download links and setup information; it can’t resolve account issues such as expired links, exhausted allowances, or provider-side node maintenance.
Common questions for new users
Where do I enter my subscription link after installing a client?
Get a compatible subscription from your provider, then open the configuration page and choose Import from URL. Enter a name and link, save, and select the configuration once it finishes downloading. Paste the full link without adding spaces or line breaks. The client does not provide nodes on its own. Return to the home screen and start the service. For screenshots and steps, see the quick start guide.
It says connected. Why won’t webpages load?
First confirm that the right configuration and policy group are selected. Then check VPN permission, node availability, app access control, and DNS. Change one setting at a time and open a new connection to test it. Existing connections may keep using the old route, so reopen the target page after switching nodes. Battery optimization may also stop the service in the background. For a full walkthrough, see the Android connection troubleshooting checklist.
Can I use the same subscription on my phone and computer?
Check the subscription format, core-specific fields, and any device limits set by your provider. Clash YAML is not a universal format for every proxy app; pay particular attention to clients such as Surfboard, which may require a different configuration. Even when a configuration imports successfully, system proxy and VPN routing work differently across platforms. Keep your original configuration and review the platform-specific settings in the full documentation before migrating.