Why switch from Premium to the Clash Meta core?
After using a Clash GUI for a while, you may notice that newer protocols such as Hysteria2 and TUIC v5 are already listed in your config but never connect. That is often not a bad node—it is an outdated core.
Clash development effectively split into two lines: the original Clash Premium core, which stopped updating in November 2023 and was archived read-only on GitHub; and Clash Meta (official repo mihomo), which the community continues to ship with regular releases.
Here is how they compare in practice:
| Aspect | Original Premium core | Clash Meta (mihomo) |
|---|---|---|
| Maintenance | Stopped; repo archived | Actively maintained |
| Hysteria2 | Not supported | Full support |
| TUIC v5 | Not supported | Full support |
| REALITY | Not supported | Supported |
| Rule Providers | Basic | Richer, more flexible |
| Config compatibility | — | Backward compatible with typical Premium YAML |
For day-to-day use, moving to Meta does not break your subscription profiles: Meta is designed to stay compatible with Premium-style YAML, so in most cases you only swap the core binary—no rewrite required.
Before you upgrade
A few quick steps reduce the risk of a failed swap or lost data:
Back up your config
Whatever client you use, save copies of:
- All profile YAML files (often under
profiles/inside the app data folder) - Subscription URLs (screenshot or paste into a text file if you have several)
- Custom rules and overrides (e.g. Mixin / Override in Clash for Windows)
Check the current core version
Open Settings or About. If the version string includes meta or mihomo, you are already on Meta and may only need an update. If you see plain clash plus a version (e.g. clash v1.18.x), plan for a full replacement.
Download the latest Meta (mihomo) build
If you must fetch the core yourself—for example to patch an old Clash for Windows—use the mihomo GitHub Releases page and pick the archive for your CPU:
- Windows 64-bit:
mihomo-windows-amd64.zip - Windows ARM:
mihomo-windows-arm64.zip - macOS Intel:
mihomo-darwin-amd64.gz - macOS Apple Silicon (M1/M2/M3):
mihomo-darwin-arm64.gz
Alpha builds. For daily use, prefer the latest release without alpha in the name.
Windows: replace the core in Clash for Windows
Clash for Windows (CFW) keeps its engine as a separate file, which makes a manual swap straightforward.
Where the binary lives
By default, look under the install path: resources\static\files\win\x64\ or win\ia32\ on 32-bit systems. The file is usually named clash-win64.exe (or the name that matches your architecture).
You can also open Settings → General → Home Directory in CFW and locate clash-win64.exe from there.
Replace step by step
- Quit Clash for Windows completely (including the tray icon) so the old process exits.
- Extract
mihomo-windows-amd64.zipto get the new.exe. - Rename it to match the old binary name (e.g.
clash-win64.exe). - Rename the original file to something like
clash-win64.exe.bak, then copy the new file into the same folder. - Restart CFW and confirm under Settings → General → Core Version that you see a Meta/mihomo build.
Windows: Clash Verge Rev with Meta out of the box
Clash Verge Rev is a community fork of Clash Verge. It bundles the Meta (mihomo) core, has a modern UI, and is among the most actively maintained Windows GUIs. New users should usually start here instead of CFW.
Fresh install
Grab the latest .msi from our Windows download page. After installation, the bundled Meta core is ready—no manual core copy.
Migrate subscriptions from CFW
- In CFW, open Profiles, right-click a profile, and copy the subscription URL.
- In Clash Verge Rev, go to Subscriptions, click import, and paste the URL.
- Wait for the fetch to finish, select the profile, and activate it.
- Under Settings → Core (or similar), confirm the active core is Meta (mihomo).
Update the bundled core
Even Verge Rev may not ship the very latest mihomo. Open the core section in settings, use Check for updates, and let the app download and apply the new binary—much simpler than manual replacement on CFW.
macOS: swap the core inside ClashX
ClashX is a long-standing macOS GUI. Its engine is a file named clash (no extension) inside the app bundle, so you replace it via Show Package Contents.
Open the bundle
In Finder, right-click ClashX → Show Package Contents, then go to Contents/MacOS and find clash.
Replacement steps
- Quit ClashX fully (menu bar icon → Quit).
- Decompress
mihomo-darwin-amd64.gz(Intel) ormihomo-darwin-arm64.gz(Apple Silicon). - In Terminal:
chmod +x mihomo-darwin-amd64(adjust the filename to match what you extracted). - Back up the original
clashtoclash.bak, rename the new binary toclash, and copy it intoMacOS. - macOS may block launch after tampering with a signed app. Allow it under System Settings → Privacy & Security, or clear quarantine:
xattr -dr com.apple.quarantine /Applications/ClashX.app - Relaunch ClashX and check the core string under Help → About.
arm64 build. Installing amd64 by mistake will prevent the core from running and break all proxy traffic.
macOS: Clash Verge Rev with built-in Meta
Clash Verge Rev exists for macOS as well. Like on Windows, it embeds a recent Meta (mihomo) core and can update it from the UI—one of the most convenient options on Apple Silicon and Intel today.
Install the latest .dmg from our macOS download page, drag the app to Applications, and launch—no bundle surgery required.
For other clients and quick links, browse the full download center.
Enable Hysteria2 and TUIC v5
After the core swap, your YAML can use the protocols Meta adds. Hysteria2 and TUIC v5 are popular low-latency options on lossy or unstable networks.
Example: Hysteria2 proxy
Hysteria2 builds on QUIC and tends to perform well when packet loss is high. Add a proxy entry like this:
proxies: - name: "HY2 example" type: hysteria2 server: your-server.example.com port: 443 password: "your-password" sni: your-server.example.com skip-cert-verify: false fast-open: true
Example: TUIC v5 proxy
TUIC v5 also uses QUIC and improves handshake speed and multiplexing versus older TUIC lines. Example:
proxies: - name: "TUIC v5 example" type: tuic server: your-server.example.com port: 443 uuid: "your-uuid" password: "your-password" alpn: [h3] version: 5 skip-cert-verify: false congestion-controller: bbr
Put nodes into a proxy group
Add the new names to a proxy-groups entry (for example a URL-test / “auto” group); otherwise they appear in the list but no rule selects them:
proxy-groups: - name: "Auto" type: url-test proxies: - "HY2 example" - "TUIC v5 example" # ... other proxies ... url: "https://www.gstatic.com/generate_204" interval: 300
Verify the upgrade and fix common errors
Before relying on the new core, run a few quick checks.
Confirm the core string
In Settings or About, the version should mention meta or mihomo plus a semver (e.g. v1.18.x). If it still looks like the old Premium build, the binary path or filename is wrong.
Reload the profile
After reloading, skim Logs / Core log. Meta usually prints clear line numbers when YAML syntax or fields are invalid.
Typical errors
| Message / symptom | Likely cause | What to do |
|---|---|---|
unknown field: xxx |
Stale or unsupported YAML key | Remove or rename the field per the Meta docs |
bind: address already in use |
Port conflict | Change the port in YAML or stop the other process |
| Core exits immediately | Wrong CPU architecture (amd64 vs arm64) | Re-download the matching build |
| macOS “cannot be opened” / Gatekeeper | Modified bundle or quarantine | Approve in Settings or run xattr -dr on the app |
| Hysteria2 never connects | Server/client protocol mismatch | Ensure the remote runs Hysteria2 (not legacy Hy1); ask the provider |
Latency tests
Use the client’s proxy list and run a latency test. HY2 nodes that used to time out should return numbers once Meta is in place; QUIC stability versus the old core is usually noticeably better on the same nodes.
Closing thoughts
Upgrading the core is like swapping in a newer engine: many “network” or “node” issues were simply capability limits of Premium. At the same time, GUIs differ a lot—some need raw YAML for every tweak; others bury options deep in menus and make debugging painful.
The Clash clients we ship focus on fast onboarding: import subscriptions, pick nodes, and manage rules from the UI, with Meta bundled and updatable without manual file surgery. If your current app feels clumsy, they are worth a try:
For deeper YAML topics—policy groups, Rule Providers, DNS leak control—see more guides in our tech column.