Check the subscription response format first

Whether a Clash subscription can be imported depends on the content returned by the link and the config formats supported by the client—not on whether the URL ends in .yaml. Start with the provider’s option labeled “Clash” or “Clash Meta / mihomo,” then import it in your client. A standard HTTPS URL may return a complete config, a Base64-encoded proxy list, a login page, or an error message.

The client is the graphical interface for managing configs, system proxy settings, and the core; mihomo is the core that handles proxy protocols and routing rules. A client’s “Import subscription” button does not mean the core can read every subscription format directly. Some clients convert the content first, while others accept only Clash YAML. Check what your client supports.

Content receivedHow to identify itWhat to do
Complete Clash YAMLCommon top-level keys include proxies, proxy-groups, and rulesImport it as a URL config or a local config
Provider YAMLUsually contains only a list of proxiesReference it with proxy-providers, or use a merge feature explicitly supported by the client
Base64 proxy listDecoding reveals multiple URI lines, such as ss:// and vmess://Use the provider’s Clash output or a trusted local conversion tool
Web page or error responseContains HTML tags, a login form, or a JSON error messageCheck the URL, authorization, and subscription validity; this content cannot be loaded as YAML

Import a subscription by URL

Copy the full URL from your subscription provider, including all query parameters. The token in the URL is usually an access credential; omitting anything after the question mark may result in an HTTP 401 or 403. Don’t use a website login URL, checkout page, or QR code image URL as the subscription URL.

Check import and activation separately

  1. Open config management. In your client, open the “Config,” “Subscriptions,” or Profiles page, then choose the remote import option with a URL field. Labels vary by client, so follow the interface you’re using.
  2. Paste the full URL. Enter the link by itself, without quotation marks, explanatory text, or line breaks added by a messaging app. Use the HTTPS URL provided by the service whenever possible.
  3. Download or import the config. Wait for it to appear in the config list, then check its update time and any error messages. In the English interface of the legacy Clash for Windows client, the path is Profiles → URL input field → Download. This client is no longer maintained; the path is provided only to help identify an existing interface.
  4. Select the config. Once the download is complete, click the config entry to make it active. If the client reports a reload error, check the logs first—a config appearing in the list does not mean it loaded successfully.
  5. Check the running state. In rule mode, make sure the proxy groups have loaded and select an available policy. On desktop, you may also need to enable the system proxy or TUN for your use case. Importing a config alone does not route traffic through it.

Verify the process in four steps: download succeeds → config parses → config is active → traffic is routed. If only the download succeeds, your browser may still use its previous connection method. If parsing fails, the client may keep using the last valid config. To find a client, start at the client downloads page, choose your operating system, then follow the installation and setup guide.

Import a local YAML file

Local YAML files are useful for offline storage, migrating configs, and troubleshooting format issues. The import option is usually on the “Config” page under “Import file,” or in a drag-and-drop area. After importing, select the config and check the client logs for syntax errors.

Three checks before importing a file

  • Encoding and extension: Use UTF-8 text and make sure the filename isn’t config.yaml.txt. Showing file extensions in your file manager is more reliable than identifying a file by its icon.
  • Indentation and structure: YAML uses spaces for indentation, not tabs. Align fields at the same level, and make sure list-item hyphens are indented correctly.
  • Config completeness: A YAML file containing only a proxy list is not a complete routing setup. The main config should provide the policy groups, rules, and DNS settings you need.

Here’s a minimal direct-connection config to illustrate the structure. It contains no remote proxies, so it can’t verify whether subscription nodes work. If you’re only testing the import and parsing process, back up your current config first and switch back after the test.

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info

proxies: []

proxy-groups:
  - name: Manual Select
    type: select
    proxies:
      - DIRECT

rules:
  - MATCH,Manual Select

mixed-port: 7890 sets the local port shared by HTTP and SOCKS; it is not a remote proxy port. mode: rule enables rule-based routing. The final MATCH sends all remaining connections to the “Manual Select” group, which contains only DIRECT, so traffic in this example connects directly. If the port is already in use, the client may fail to listen even when the config syntax is valid.

Identify a Base64 proxy list

Base64 is an encoding method, not Clash config syntax or encryption. A common subscription format combines multiple proxy URIs and encodes them; decoding may reveal ss://, trojan://, vmess://, or vless:// links. This kind of text generally does not include complete policy groups and routing rules.

Choose a compatible import method

  1. First, look on the provider’s site for a subscription format explicitly labeled Clash or mihomo. The same account may offer several output URLs; copy the one that matches your current core.
  2. If only a generic subscription is available, check whether your client explicitly supports importing URI lists or Base64 subscriptions. Support for individual proxy URIs does not necessarily mean it can import a complete Base64 subscription.
  3. If you need to convert the subscription, use the provider’s converter or a trusted local tool. Conversion requires parsing fields such as proxy protocols, transport, and TLS; changing the file extension is not enough.
  4. After conversion, check the number of proxies, policy group references, and core errors before enabling the config. Successful parsing does not guarantee that every proxy’s connection settings are correct.

The original Clash and Clash Meta (now called mihomo) do not support exactly the same protocols and fields. A conversion tool generating a particular protocol field does not mean an older core can run it. If you see an error such as unsupported proxy type, check which core is actually running and whether the subscription format is intended for it instead of repeatedly importing the same file.

Set the subscription update interval

Updating an entire remote config and updating a proxy provider are two separate mechanisms. A graphical client downloads the remote config; mihomo’s proxy-providers can fetch a set of proxies on a schedule. Don’t confuse the interval values or UI settings for these two features, or mistake the health-check interval for the subscription refresh interval.

Where to set itWhat gets updatedUnits and examples
Client remote config settingsComplete config fileUse the unit shown in the interface; if it specifies minutes, 360 means 6 hours
interval under proxy-providersProxy list for a specific providerIn seconds; 21600 means 6 hours
health-check.intervalProxy connectivity checkIn seconds; 300 checks every 5 minutes and does not download a new subscription

For everyday use, start with a 6-hour update interval and adjust it to your provider’s limits. This is an example setting, not a protocol requirement. If the client supports update intervals suggested in the response, its behavior depends on how that feature is implemented. After changes on the provider’s end, try a manual update, then check the update time and proxy list.

Keep local settings when updating

Updating a remote config may overwrite changes made directly to its ports, rules, and DNS settings. To preserve local changes, use the client’s supported override, merge, or extension config feature, then verify the merged result. Don’t assume edits to a remote file will survive the next subscription update.

A complete config subscription may also include rules and references to external resources, not just proxies. Before importing, make sure you trust the source and check that settings such as allow-lan, the control interface, and listen addresses are appropriate for your device. For typical personal desktop use, don’t enable LAN access just to complete an import.

Troubleshoot import failures in order

First determine whether the issue is a download failure, invalid content format, or runtime failure, then troubleshoot that step. Repeatedly clicking Import rarely fixes format problems and may trigger your provider’s rate limits.

SymptomCheck firstNext step
HTTP 401 or 403Token, account status, access restrictionsCopy the URL again from your provider account; don’t assume a status code points to only one cause
HTTP 429Is the request rate too high?Stop refreshing repeatedly, follow the server’s retry guidance, and increase the update interval
HTML response or an error on the first lineDid the request open a login, verification, or redirect error page?Inspect the final response body and confirm it contains subscription data
YAML indentation or field errorFile contents, indentation, duplicate keys, protocol supportUse the logs to locate the line number and confirm you downloaded the format intended for your core
Import succeeds, but expected proxies are missingIs this a proxy provider file? Did the account return an empty list?Check the config type and provider status, then verify the policy group references
No access after activating the configActive config, selected group policy, system proxy or TUN, DNSCheck each step in the traffic path instead of repeatedly downloading the subscription

The URL opens in a browser, but the client can’t download it

Your browser and client may use different proxy routes, DNS, or request headers. Seeing the download in a browser doesn’t prove the client can reach the same URL. Check the logs for timeouts, certificate errors, or DNS resolution failures first. If the client offers a proxy option for subscription downloads, follow its instructions. Don’t disable certificate verification to hide connection problems.

The subscription hasn’t been imported yet, but downloading it requires a proxy

This can create a dependency loop during initial setup. On a trusted device or network that can reach the provider, download the YAML and import it locally; then return to the original device and test remote updates. Treat the config as sensitive when transferring it, and don’t upload it to a public cloud drive or share it in a group chat.

After troubleshooting, confirm all three: the target config is active, the logs show no ongoing parsing or resource download errors, and a test connection uses the expected policy. For field definitions and rule syntax, see the config file reference. For common traffic routing issues, see the FAQ. A successful subscription update confirms that fetching and loading work; proxy connectivity still needs to be tested separately.