When a file is worth importing by hand

A subscription is an HTTP(S) address the client re-fetches on a timer, turning the response into a profile. A manual import skips all of that: you hand over a file, and that file is what runs.

  • Someone sent you a complete profile: self-hosted servers, or an office split-tunnel setup.
  • You wrote it from a template, because two fixed servers do not justify a subscription.
  • You saved a copy of a subscription and edited it. That copy is cut off from the source, so a rotated server address never reaches it.
SponsoredWhere does the subscription link come from?Our partner provider gives you 1 GB of high-speed Hong Kong data at signup — import it in one click.Get high-speed nodes

Two routes in, pick one

  1. On the profiles page create a new profile of type Local and pick the file. In Clash Verge Rev that control sits at the top of the Profiles page.
  2. Or skip the UI: use Open config directory from the tray menu and drop the .yaml in. Do not guess the path from someone else's tutorial.
  3. Click the card to make the profile active. Some clients want a right-click and Use.
  4. Read the first dozen lines of the log. A good load prints the proxy and rule counts; a bad one prints why.

Both .yaml and .yml are recognised, and if the list ignores a file you copied in, restart the client once. With a profile someone sent you, skim for rules, external-controller and secret before loading it.

It imported and nothing happened

When parsing fails most clients show one line with a position in it, along the lines of yaml: line 42: plus an English explanation. Start at that line. Five causes cover almost everything.

  • Tab indentation. YAML takes spaces only, and an editor draws a tab exactly like the spaces beside it. Switch on whitespace rendering.
  • Typographic punctuation. Text pasted out of a chat app carries curly or full-width quotes, and name: "HK-01" will not parse with those.
  • Duplicate names in proxies. Which node a group points at becomes a guess, and some cores reject the file outright.
  • A proxy-groups entry naming a node that is not there. One extra space or a dropped emoji is a different name, and the error points at the group, not a line.
  • A BOM at the start. Saving UTF-8 from Notepad prepends three bytes, so the first key reads as garbage. Re-save without the BOM.
mixed-port: 7890
mode: rule
proxies:
  - name: my-node
    type: ss
    server: 203.0.113.10
    port: 8388
    cipher: aes-256-gcm
    password: change-me
proxy-groups:
  - name: PROXY
    type: select
    proxies:
      - my-node
      - DIRECT
rules:
  - DOMAIN-SUFFIX,example.com,PROXY
  - MATCH,PROXY

When you are stuck, load the skeleton above, confirm it runs, then add your own material back one block at a time.

A local file never updates itself

A local profile has no source URL, so the update button does nothing and some clients grey it out. Edit the file externally and the client may not notice: reselect the profile or restart the core before the change reaches the engine.

Know when to stop. If your nodes come from a provider, importing by hand mostly makes work for you: a subscription follows their changes, a static file cannot. The narrow cases that justify it are your own fixed servers, an offline machine, or a profile kept under version control.