Start by telling apart 'core' and 'client': the core handles traffic and rule matching, while the client puts a GUI on top of it. These two layers get mixed up a lot in casual talk, and sorting this out makes most other issues easier to pin down.
mihomo
Cores & Clients
The dominant core in the Clash ecosystem today, kept alive by the community as a fork of Clash.Meta. Compared to the original core, it adds newer protocols like VLESS and Hysteria2, along with a more complete TUN implementation and Geosite support. Most of the GUI clients listed on this site's download page bundle mihomo — just check which core version a client ships with.
Clash (original core)
Cores & Clients
The original rule-based proxy core written in Go, which defined the YAML config format still in use today; the project stopped receiving updates in 2023. These days, saying 'Clash' usually refers to the whole ecosystem built around that config format rather than the specific core binary — the core actually running today is mostly mihomo.
GUI client
Cores & Clients
A desktop or mobile app that wraps a graphical interface around a core, such as Clash Verge Rev, Clash Plus, or FlClash. The client handles subscription management, node switching, system proxy and TUN toggles, while the underlying traffic handling and rule matching are still done by the core. When troubleshooting, figure out first whether the problem is in the interface layer or the core layer.
Clash Verge Rev
Cores & Clients
A cross-platform desktop client built on Tauri with mihomo bundled in, available for Windows, macOS, and Linux. On Linux it ships as deb and rpm packages, covering Debian-based and Red Hat-based distributions — a common choice for Linux desktop users.
ClashX Meta
Cores & Clients
A macOS menu bar client that evolved from the earlier ClashX after switching to a Meta-based core, known for its minimal interface that lives in the menu bar. The project is no longer maintained; existing installs still work, but there won't be further feature updates, so new users should pick an actively maintained client instead.