Clash Verge Global Extended Configuration: Override All Subscriptions at Once (Rev v2.x)
If you searched “Clash Verge global extended configuration”, you most likely want to change one setting for all subscriptions at once (e.g. a unified DNS or port) instead of editing each one. That’s exactly what Global Extended Configuration is for.
This follows Clash Verge Rev v2.x.
The concept: two types × two scopes #
Clash Verge Rev modifies the final effective config through “extensions”, in two types and two scopes:
| Extended Configuration (YAML) | Extended Script (JavaScript) | |
|---|---|---|
| Purpose | override / merge config keys | flexibly adjust the config object via code |
| Global | Global Extended Configuration: applies to all subscriptions | Global Extended Script: applies to all |
| Subscription | Subscription Extended Configuration: only that subscription | Subscription Extended Script: only that one |
Execution chain (later stages can override earlier ones):
Global Extended Configuration → Global Extended Script → Subscription Extended Configuration → Subscription Extended Script
⚠️ Key point: since v1.7.x the Extended Configuration is only for override/merge of config keys (DNS, ports, toggles, proxy groups, etc.). Adding rules no longer uses
prepend-rules— use right-click profile → Edit Rule.
Where to open it #
- Global: on the Profiles page, find the Global Extended Configuration / Global Extended Script entry near the top.
- Per subscription: right-click the profile card → choose Edit (Extended Configuration / Script).
What Extended Configuration can do: override / merge examples #
Extended Configuration is a block of YAML; the top-level keys you write are merged into the final config (same-key override, map-type merge). Common uses:
Example 1: unify DNS and disable unified-delay (in Global Extended Configuration → applies to all subscriptions)
dns:
enable: true
ipv6: true
nameserver:
- https://223.5.5.5/dns-query
- https://1.1.1.1/dns-query
unified-delay: false
Example 2: set the mixed port and allow LAN connections
mixed-port: 7890
allow-lan: true
Example 3: override a single subscription only (in that subscription’s Extended Configuration)
find-process-mode: always
Save and refresh. Because these live in the extension (separate from the subscription file), updates won’t wipe them.
Adding rules / proxies / proxy groups? #
These are not written in the Extended Configuration (prepend/append moved out in v1.7.x):
- Rules: right-click profile → Edit Rule (prepend/append). Full guide: How to add rules / custom rules.
- Proxies / proxy groups: right-click profile → Edit Node / Edit Proxy Group.
- Or use an Extended Script to add/remove on
config.rules/config.proxies/config["proxy-groups"].
Extended Script (in brief) #
For conditions or bulk generation, use an Extended Script (JavaScript on quickjs, no filesystem access):
function main(config) {
// e.g. force-disable IPv6 DNS for every subscription
config.dns = config.dns || {};
config.dns.ipv6 = false;
return config;
}
Put it in the Global Extended Script to apply to all subscriptions.
Troubleshooting #
| Symptom | Cause / fix |
|---|---|
| No effect after editing | Not refreshed — reselect the profile or reconnect the core |
| Global overridden by a subscription | A later subscription extension overrode it — check if you set the same key there |
prepend-rules has no effect | Extended Configuration no longer adds rules in v1.7.x — use Edit Rule |
| Script errors, item turns red | A thrown error skips the script — ensure main does return config and the syntax is valid |
Related #
- Add custom rules: How to add rules / custom rules in Clash Verge
- System-wide proxy: Clash Verge TUN mode setup
- Theming: Clash Verge themes & custom CSS
- Getting started: Clash Verge tutorial
- Versions: Clash Verge Rev vs the original