Installation and Migration · Clash Technical Blog

How to Migrate from ClashX Pro to Clash Verge Rev

Migrate only subscriptions, custom rules, and key preferences from ClashX. Restore normal networking in the old client first, then rebuild each item in Clash Verge Rev.

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

Run after ClashX has quit completely
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

  1. Disable Enhanced Mode/TUN

    Wait for the virtual interface and routes to recover.

  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

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

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

  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