Skip to main content
EN

Home / Blog / Features

Updating Clash Verge — the client and the core are two different things

Updating Clash Verge — the client and the core are two different things

Clash Verge has two version numbers, and people routinely conflate them:

  • The client version (2.5.2, say) — the interface program
  • The core version (Mihomo 1.19.29, say) — the thing actually doing the work

They update independently, and when something breaks the one you need to update is often not the one you assumed.

Who does whatClient versioninterface, subscription updated by downloading a new installeraffects: interface features and interactionsCore versionprotocol support, rule mupdated in-appaffects: whether it connects, and how fast
"Node will not connect" is usually the core; "button does nothing" is the client

When to update the client

There is no need to chase releases. These are the cases that justify it:

Signals worth acting onA bug in your version clearly affects you — imports failing, interface freezing, a switch not workingYou want a feature that was added — a new setting, a new capabilityYour version is a year or more behindJust wanting the newest version — not a reason; running stably matters more

How to update the client

Get the new installer from the download page and run it without uninstalling first.

Configuration lives in your user directory, separate from the program, so installing over the top does not lose anything:

PlatformConfig location
Windows%APPDATA%\io.github.clash-verge-rev.clash-verge-rev
macOS~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev
Linux~/.local/share/io.github.clash-verge-rev.clash-verge-rev

Quit Clash Verge properly from the tray before installing, so files are not locked.

Option B: update from inside the app

Some builds offer Settings → Check for updates and can download and install directly. Convenient, but it often stalls on slow connections since the update source is GitHub.

If it stalls, use option A and take the installer from our download page instead.

How to update the core

Settings → Clash Core shows the current core version with an update button next to it.

Core updates download in-app. If that will not work, replace it by hand:

Replacing the core manuallyDownload mihomo for your platformavailable on our download pageExtractgz or zipRenameto verge-mihomo (add .exe on Windows)Copy into the core directoryoverwrite the existing fileRestart Clash Vergedone
The core directory is usually under resources in the install folder, or in the config directory

On Windows the core file is typically at:

%APPDATA%\io.github.clash-verge-rev.clash-verge-rev\sidecar\

or under resources\ in the install directory. Searching for verge-mihomo.exe is the fastest way to find it.

When to update the core

Core updates deliver far more visible benefit:

SymptomIs it the core?
Log shows unsupported proxy type✅ Yes — the subscription uses a newer protocol
Certain nodes never connect while others work✅ Very likely
New rule syntax has no effect✅ Yes
Subscription import fails❌ Client or network
A button does nothing❌ Client
Everything is slow⚠️ Almost always the line, not the core

When an update breaks something

The client updated and the interface is odd or settings are gone

Try resetting the interface state first: quit completely, delete verge.yaml in the config directory (that file holds interface settings, not subscriptions), and reopen — a fresh one is generated with defaults. Your subscriptions live in profiles/ and are untouched.

If that does not help, uninstall and reinstall, backing up the config directory beforehand.

The core updated and nodes stopped connecting

Roll back. Take the older binary — from our download page, or the upstream releases page for a specific historical version — and follow the manual replacement steps above.

Our download page carries the current stable version; the footer links to each upstream project if you need something older.

TUN stopped working after an update

The service mode version and the core version no longer match. Settings → Service Mode → uninstall, then install again and approve the prompt.

A useful habit: read the log before updating anything

When you are not sure where a problem lives, the Logs page beats guessing:

  • unsupported proxy type: xxx → update the core
  • unmarshal error → a config syntax problem, or a core that is too old
  • dial tcp ... i/o timeout → the node itself is unreachable; nothing to do with versions
  • The interface reports an error but the log is clean → a client problem
Order of investigation1Read the log firstmost problems state themselves plainly2Decide whether it is client or coreuse the table above3Update only the one that is implicatedchanging both at once tells you nothing when it breaks4Note the old version numberso you can roll back

A third version people forget: rule sets

If your subscription uses remote rule sets (rule-providers), those files have their own update cycle.

A site that suddenly routes the wrong way may be neither the client nor the core — just a stale domain list in a rule set.

Subscription settings show the rule-set update interval, usually 24 hours by default. You rarely need to intervene.

In short

  • Two version numbers, considered separately: interface problems → client, connection problems → core
  • Installing over the top does not lose your config, but back it up anyway if it matters
  • Leave working versions alone, especially the core
  • Read the log first — far faster than trial and error

Related: reading the logs and connections pages and verifying downloads.