Installation and Migration · Clash Technical Blog

How to Migrate from ClashX Pro to Clash Verge Rev

Migrating from ClashX to Clash Verge Rev requires keeping subscriptions, custom rules, and settings you actually use. Exit the old instance, confirm direct macOS access, then import and verify in the new client. Do not copy caches and the old core as a bundle.

  • ClashX Pro
  • Clash Verge Rev
  • macOS
  • Migration
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

  1. 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.

  2. Disable Set as System Proxy

    Then choose Quit from the menu bar; closing the window is not enough.

  3. Inspect macOS network proxies

    The current network service's HTTP, HTTPS, and SOCKS settings should no longer point to the old ports.

  4. 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.

Run after releasing the old proxy settings, fully quitting ClashX and checking the configuration path
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 ClashXDestination in Clash Verge Rev
Remote subscriptionAdd it again as a remote Profile
Handwritten rulesPlace them in Merge/Script or a separate local Profile, then verify them again after updating the subscription
Custom DNS/hostsAdd and test them separately; do not migrate them at the same time as TUN
Provider cacheDo not move it; let the new core download it again
Old core, logs, and menu iconsDo not move them; handle any needed icons separately
Old helper serviceUninstall 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

  1. 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.

  2. Stop the new service

    If the service misbehaves, use the current version's official removal entry and do not delete the Profiles backup.

  3. Restore ~/.config/clash

    Restore it from the migration backup only while ClashX is not running.

  4. Start ClashX and select the original configuration

    Test with the system proxy first, and do not let both clients start at login.

References