On this page
While ClashX still works, record subscriptions, rules, and permissions separately
Migration does not mean copying all of ~/.config/clash into Clash Verge Rev. Move the original subscriptions, your own rules, and any required DNS/hosts entries. The old client must first release the system proxy, Enhanced Mode/TUN, ports, and login items so the new client can request fresh authorization. That makes each rollback point clear if migration fails.
Migration checklist
- Current subscription URL and last update time
- The config.yaml file or custom configuration name currently in use
- Handwritten rules, DNS, hosts entries, and scripts
- HTTP, SOCKS, and mixed ports, plus system proxy status
- Whether Enhanced Mode/TUN, login items, and local-network sharing are enabled
What actually needs to migrate is the subscription and content you wrote. Ports, the system proxy, and network permissions are only the old client's runtime state and should be configured anew. The official ClashX repository lists ~/.config/clash as the default configuration directory and config.yaml as the default filename. Its Provider caches and history files do not need to move.
Back up the old configuration separately from the new client's working directory
BACKUP_DIR="$HOME/Desktop/clash-migration-$(date +%F)"
mkdir -p "$BACKUP_DIR"
cp -a "$HOME/.config/clash" "$BACKUP_DIR/clashx-config"
printf 'Backup saved to: %s
' "$BACKUP_DIR"
# Clash Verge Rev 安装并运行过后,它的 macOS 工作目录位于:
# ~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev/The backup contains a subscription token and node credentials, so do not automatically sync the Desktop directory to a public cloud drive or Git. Official Clash Verge Rev documentation places Profiles in the profiles/ directory under Application Support. After the new client creates its own files, back up that directory separately so old and new files do not become mixed.
After quitting ClashX, restore normal direct networking on macOS first
Before installing the new client, prove that the network still works after the old client exits. If the new client then fails to start, you will still have a fallback path that does not depend on Clash.
Release old traffic capture
Disable Enhanced Mode/TUN
Wait for the virtual interface and routes to recover.
Disable Set as System Proxy
Then choose Quit from the menu bar; closing the window is not enough.
Inspect macOS network proxies
The current network service's HTTP, HTTPS, and SOCKS settings should no longer point to the old ports.
Open an ordinary web page
After confirming direct connectivity without any client, start Clash Verge Rev.
Import the original subscription first; do not copy the old runtime directory
Clash Verge Rev 2.x can import from a URL on the Profiles screen or accept a dragged local configuration. For a remote subscription, add the original URL again. For a local YAML file, make a copy and import it. The client copies the selected local file into its own profiles directory, so moving the original does not affect the imported copy.
For the first test, use only the original remote configuration, a fixed node, and the system proxy. If browsing, subscription updates, and network restoration on exit all work, the new client, core, and basic permissions are established. Rebuild local rules afterward to keep any failure narrowly scoped.
Move old rules one category at a time; leave caches and helper programs behind
Once the basic subscription works, open the old configuration and compare it item by item. Move only one category at a time, update the subscription, and inspect the match results. If something breaks, you will immediately know which custom setting caused it.
How to handle old content
| Content in ClashX | Destination in Clash Verge Rev |
|---|---|
| Remote subscription | Add it again as a remote Profile |
| Handwritten rules | Place them in Merge/Script or a separate local Profile, then verify them again after updating the subscription |
| Custom DNS/hosts | Add and test them separately; do not migrate them at the same time as TUN |
| Provider cache | Do not move it; let the new core download it again |
| Old core, logs, and menu icons | Do not move them; handle any needed icons separately |
| Old helper service | Uninstall or disable it; do not let two services capture traffic at once |
After the system proxy remains stable for one day, enable TUN only if traffic still escapes
If a terminal, game, or app that ignores the system proxy genuinely needs traffic capture, install the service from Clash Verge Rev and enable TUN. macOS will request system permission. After granting it, test with the same program that previously failed, then inspect local-network access, the corporate VPN, and sleep/wake behavior.
Clash Verge Rev releases in 2026 updated macOS service IPC and DNS behavior, so service commands from old tutorials may no longer apply. Install or remove the service only through the current official documentation and in-app entry points.
Subscriptions, rules, and permissions are fully migrated only after all five items pass
Opening one web page proves only that the shortest path works. A real migration also requires a subscription update, custom-rule test, network restoration on exit, and sleep/wake test. Do not remove ClashX until all five items below pass.
Migration results
- The remote Profile updates manually, and both the update time and policy groups come from the new client
- One custom rule still matches the expected policy after a subscription update
- The connections screen records traffic while the system proxy is enabled, and macOS returns to direct access after quitting Clash Verge Rev
- If TUN is genuinely needed, apps that ignored the system proxy now work without affecting the local network or corporate VPN
- Networking recovers after lid close, wake, and Wi-Fi changes without also starting ClashX
If the new client fails, return to ClashX in this order
The most important rollback rule is to prevent both clients from capturing network traffic at once. Fully release Clash Verge Rev first, then restore the old configuration and app.
Rollback
Disable Clash Verge Rev TUN and the system proxy
Quit completely from the menu and confirm that network proxy settings no longer point to its ports.
Stop the new service
If the service misbehaves, use the current version's official removal entry and do not delete the Profiles backup.
Restore ~/.config/clash
Restore it from the migration backup only while ClashX is not running.
Start ClashX and select the original configuration
Test with the system proxy first, and do not let both clients start at login.
