Troubleshooting

Troubleshooting

Command not found

$ clash-verge-cli
zsh: command not found: clash-verge-cli

Fix: Use npx clash-verge-cli or install globally with npm install -g.

ENOENT — Clash Verge.app not found

Failed to start Clash Verge: spawn /Applications/Clash Verge.app ENOENT

Fix: Edit constants.js and set CLASH_VERGE_PATH to the actual location of your .app bundle.

# Find your Clash Verge:
mdfind "kMDItemKind == 'Application'" | grep -i clash

sudo asks for password every time

By design — macOS requires root for TUN. To avoid typing your password repeatedly:

# Edit sudoers (carefully!)
sudo visudo
# Add this line:
yourname ALL=(ALL) NOPASSWD: /Applications/Clash Verge.app/Contents/MacOS/Clash Verge

⚠️ This means ANY process running as your user can start Clash Verge as root without a password. Only do this on a single-user machine you trust.

TUN still doesn't work after starting

  1. Check if the TUN kext is loaded: kextstat | grep -i clash
  2. Check if another VPN is using the TUN interface: ifconfig | grep utun
  3. Restart Clash Verge from the GUI once to approve the kext (macOS prompts for kext approval the first time)

Clash Verge starts but immediately exits

Check the exit code:

$ clash-verge-cli
Clash Verge exited with code 1

Run without the CLI to see full error output:

open /Applications/Clash Verge.app

If it works from GUI but not CLI, the issue is likely the CLASH_VERGE_TUN=1 env var or a missing TUN kext.