On this page
When changing clients, what you usually want to preserve is the working subscription and rules you edited, rather than every file left by the old app. Migrate in stages: restore networking and exit the old app, get online in the new app with a simple configuration, then move the necessary customizations. Each stage leaves a clear point to return to if something goes wrong.
Move ClashX subscriptions and custom rules, but configure system permissions anew
Do not copy the whole ~/.config/clash directory when moving to Clash Verge Rev. Subscriptions, handwritten rules and necessary DNS/hosts can be transferred. The system proxy, Enhanced Mode/TUN, ports and login items are the old client's runtime settings; release them and configure them anew in the new client.
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
A common ClashX configuration location is ~/.config/clash/config.yaml. Check the directory and filename your old client actually uses, and adjust the backup command below if they differ. Provider caches and history need not be migrated, but keep the original configuration and subscription source needed for recovery.
macOS should connect directly after ClashX quits
Turn off the old client’s network proxy
Disable Enhanced Mode/TUN
If your old version provides this feature and it is enabled, turn it off first and wait for the virtual interface and routes to return to normal. Skip this step if the feature is absent or disabled.
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
Confirm direct connectivity without any client. Complete the backup in the next section before starting Clash Verge Rev.
Back up the old configuration separately from the new client's working directory
First check that the example backup directory, named with today’s date, does not already exist. If it does, change the directory name in the code to an unused one. The commands use &&, so they stop if directory creation or cp fails. Check that the backup files are complete before starting the new client.
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.
Import the original configuration in Profiles, then verify updates and network recovery after exit
In Clash Verge Rev 2.x, use Profiles in the left sidebar to import a URL or drag in a local configuration file. The Chinese interface labels this tab as subscriptions. Add remote subscriptions again using the original URL, and copy local YAML before importing it. The client copies the 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 connection recovery after quitting all work, the new client and core are functioning and have the basic permissions they need. Rebuild local rules at this point so any errors are easier to trace.
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 |
Install the service and test TUN when the system proxy cannot cover the required application
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.
Check subscription updates, custom rules, wake from sleep and network recovery
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
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.
