Before You Import: Check the Subscription Content and Client Core

Open the client’s “Subscriptions” or “Profiles” page, then choose whether to import from a URL, the clipboard, or a local file. These are simply different ways to provide a configuration to the client. Whether it works depends on the returned format, the protocols supported by the core, and whether the configuration is enabled. When you get a link from your provider, look for one labeled “Clash,” “Clash Meta,” or “mihomo.”

  • Remote URL: Best for ongoing use. The client saves the source URL so you can update it manually or on a schedule.
  • Clipboard: Handy for a quick import after copying from a browser. First check whether you copied a URL, a complete YAML file, or a single node URI.
  • Local file: Useful for received configuration files, offline review, or keeping a snapshot. A standard local configuration won’t update from its original subscription URL.

These steps use a desktop client with the mihomo core; in Clash Verge Rev, the relevant controls are usually on the “Subscriptions” page. Other clients may call them “Profiles,” “Remote Config,” or something similar, and labels can change between versions. The import process is the same on macOS, Windows, and Android, but system proxy and VPN permissions are separate follow-up steps—you don’t need to enable them before pasting a URL.

Method 1: Import a Remote Subscription by URL

Paste the URL, download the configuration, then select it

  1. On your provider’s subscription page, choose the format for your client core and copy the subscription URL. Copy the link itself—not the URL of your account dashboard.
  2. Open the client’s “Subscriptions” page. If it has a “Subscription URL” field, paste the link there. If you’re using a new-item dialog, choose “New,” select “Remote,” and enter the URL.
  3. Check that there are no extra spaces, line breaks, or non-ASCII punctuation at either end. Keep the original query parameters; don’t remove anything after the question mark.
  4. Click “Import” or save the remote profile, then wait for its card to appear. A successful import should show a profile name or update time—not just an empty input field.
  5. Select the profile you just imported, then check its proxy groups on the “Proxies” page. Importing a profile and enabling it are separate steps: seeing a profile card in the list doesn’t mean the core has switched to it.

The first download usually requires a network connection that can reach the subscription server. If the client lets you choose how to fetch it—such as “Direct” or “System Proxy”—pick the option that works on your network. If your current proxy is down, forcing the download through it can create a loop: the subscription needs the proxy to update, while the proxy is waiting for that update. Try a direct update or switch to a network that can reach the subscription server.

After Importing, Check the Logs Before Testing a Website

Check the logs for configuration parsing errors, then make sure the proxy groups have usable nodes. Start with “Rule” mode and enable the system proxy when you want the client to handle browser traffic. A regular HTTP proxy setting won’t capture UDP traffic from every app. Decide whether to enable TUN separately, after confirming that a basic connection works.

If the configuration specifies mixed-port: 7890, HTTP and SOCKS clients can share the same local port, but the GUI client may override it with its own port setting. Use the listening address and port shown in the settings; don’t assume your machine uses 127.0.0.1:7890 just because an online example does.

Method 2: Import a URL or Configuration Text from the Clipboard

Check what’s on the clipboard before choosing an import option. On macOS, copy and paste with ⌘C and ⌘V; on Windows, use Ctrl+C and Ctrl+V. Shortcuts only transfer text—they won’t turn a node link into a complete Clash configuration.

Copied contentRecommended import optionWhat to check
A subscription URL starting with https://Remote subscription URL fieldKeep the complete token and parameters
YAML text with fields such as proxies:Local configuration editor or text importCheck that indentation is intact and no explanatory text was included
Node URIs such as ss:// or vmess://The client’s dedicated node import feature, if availableCheck protocol support and node conversion
A long string of Base64 textVerify the source and decoded content firstDon’t assume it’s a complete YAML configuration
  1. If you copied a URL, go back to the “Subscriptions” page, paste it, and import it. Manage it as a remote subscription afterward.
  2. If you copied complete YAML, use the local configuration editor or create a new local profile. If the client doesn’t provide a text import option, save it as a .yaml file in a plain text editor, then import it as a local file.
  3. If you only have a single node URI, first check whether the client can import nodes using that protocol. A complete configuration usually also needs proxy groups and rules; node parameters alone can’t replace them.

When copying code from a chat app, don’t include code fences, line numbers, or interface text such as “Copy.” YAML uses spaces for indentation; tabs can cause parsing errors. Smart quotes and rich-text formatting in an editor can also alter the original content, so save it as plain UTF-8 text.

Method 3: Import a Local YAML File

On the “Subscriptions” or “Profiles” page, look for “Import File” and select a .yaml or .yml file from your disk. Some clients also let you drag and drop files. After importing, select the profile and check the logs and proxy groups. Supported file extensions depend on what the client’s interface lists.

Check the File Contents Before Deciding Whether It’s Usable

A file named config.yaml may still contain an HTML page from a failed download. Open it in a text editor. If it starts with <!doctype html>, a sign-in prompt, or a JSON error message, fix the authentication or access issue at the download source instead of adjusting YAML indentation.

Here’s a minimal direct-connection example for identifying the structure of a configuration. It has no proxy nodes and is only useful for inspecting fields and parsing behavior; replacing your subscription with it won’t give you a proxy connection.

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

rules:
  - MATCH,DIRECT
  • mixed-port is the shared local listening port for HTTP and SOCKS. If the port is already in use, change it in the configuration or client settings.
  • allow-lan: false blocks LAN access. Only if you need to share access should you check the listening address, firewall, and authentication settings.
  • MATCH,DIRECT sends all remaining traffic directly; it doesn’t mean a proxy node has been selected.

A Local File Is a Snapshot; Remote Resources May Still Need Internet Access

A standard local configuration isn’t linked to a subscription URL for automatic updates. If your provider changes a node password or server address, you’ll need to import the configuration again or maintain it manually. However, if the file declares remote proxy-providers or rule-providers, those resources may still update over the network. Importing a local file doesn’t mean the client runs entirely offline.

For persistent routing changes, use the client’s override, merge, or scripting features where available. Editing the body of a downloaded remote subscription directly may not survive the next update. After applying an override, check the effective configuration to confirm that proxy group names still match the rules that reference them.

Format Guide: Clash YAML, Base64, and Node URIs

A subscription URL is where you fetch content; YAML and Base64 describe its structure or encoding. Two URLs can both start with HTTPS and still return completely different content. If a subscription opens but fails to import, check the response body first—not just the file extension.

FormatTypical contentsImport notes
Complete Clash YAMLConfiguration fields for nodes, proxy groups, rules, and moreThe core must support the protocols and fields used
Proxy provider YAMLA node list, usually centered on proxies:Usually connected to the main configuration through proxy-providers
Base64 subscriptionOften multiple node URIs in encoded formRequires client-side conversion support; changing the file extension isn’t enough
Single node URIProtocol and connection parameters for one serverUsually needs proxy groups and routing rules as well

Base64 is an encoding, not encryption or a standard proxy configuration format. Decoding it may produce multiple node links or other text; whether it works depends on the content and client support. Renaming a .txt file to .yaml won’t convert its format.

Clash Meta (now called mihomo) supports a different range of protocols and fields from the legacy Clash core. If a node type isn’t supported, first check which core is running, then choose a compatible format from your subscription provider. If the provider offers both Clash and mihomo options, choose the one explicitly marked as compatible with the mihomo core.

Automatic Update Intervals: Configure Subscriptions and Providers Separately

Open “Edit” or the update settings from the remote subscription card’s menu, then look for “Update Interval.” Check the unit shown beside the input: if it’s minutes, enter 360 for every 6 hours; if it’s seconds, enter 21600. Both values represent the same interval, so don’t copy one without checking the unit.

  1. Run a manual update first to confirm that the URL is reachable and the response parses correctly.
  2. Set an interval based on your provider’s recommendation. If none is given, start with 6 hours and adjust it based on how often the nodes change.
  3. Check the card’s last-updated time and the update logs to confirm the scheduled task actually ran, rather than just saving the interval.
  4. Scheduled tasks in GUI clients generally don’t keep running while the computer is asleep or the client is closed. Whether an update runs as soon as the computer wakes depends on the client; run one manually if needed.

In mihomo configurations, HTTP-type proxy-providers and rule-providers each use their own interval field, in seconds. For example, interval: 21600 means 6 hours. These update the node or rule collection, not the entire remote subscription saved by the client. The node health check’s health-check.interval is a separate schedule.

Don’t assume every client uses 0 to disable automatic updates. Check the interface for how to turn updates off, the minimum allowed interval, and retry behavior. Subscription traffic and expiration details usually come from the server, and not every provider supplies them. Their absence doesn’t by itself mean the configuration is invalid.

Common Errors: Troubleshoot Requests, Parsing, and Activation in Order

Download Failed: Check the HTTP Status and Network First

  • 401 or 403: Check whether the token has expired, the subscription is still active, and the server restricts access. A 403 can also result from access policies, so the status code alone doesn’t identify the cause.
  • 404: Make sure you copied the full path and check whether your provider changed the subscription URL.
  • Timeout or certificate error: Check your network, system clock, and request path. Don’t leave certificate verification disabled to hide the problem.

Parsing Failed: Inspect the Original Content Near the Error

For YAML errors, check indentation, spaces after colons, and whether HTML was included by mistake. For unknown proxy types or fields, check core compatibility. The server may return different formats depending on the request’s User-Agent, so a URL working in a browser doesn’t guarantee the client received the same content. Check the client’s download logs too.

Configuration Works but Connections Fail: Check the Active Profile and Traffic Routing

Make sure the new profile is selected and its proxy groups point to usable nodes, then check that the system proxy or TUN is routing traffic as expected. Importing a subscription, parsing a configuration, connecting to a node, and resolving DNS are separate steps. A latency test for one node doesn’t mean every website is reachable. Use the connection panel to inspect the destination domain, matched rule, and outbound policy; this is more useful than repeatedly reimporting the subscription.

Keep a known-good configuration and record its name, update time, and any error messages before and after updates. When asking for help, share the client name, core type, import method, and redacted logs. Don’t include the full subscription URL or node passwords in a public support request.