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.
Two routes in, pick one
- 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.
- 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.
- Click the card to make the profile active. Some clients want a right-click and Use.
- 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-groupsentry 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.