About Mihari
Mihari is a new, independent local manager for mihomo. It targets Windows, Linux, and macOS equally and is designed around a single daemon-owned control plane shared by the CLI, TUI, and browser panels.
What is this?
Mihari is a terminal manager for mihomo — the same family of tools as mihomo GUIs like Clash Party and Sparkle, but it runs in the terminal and is hosted by a daemon in the background, so the CLI, TUI, and browser panels share one control plane.
- Subscription management: add, refresh, and switch subscription profiles, with offline switching, independent refresh intervals, and per-profile fetch proxy
- Core management: install, update, and restart the mihomo core
- Service supervision: run in the background as an OS service, with crash auto-restart
- System proxy / TUN: enable system proxy or TUN; a foreign proxy or another TUN/mihomo instance requires confirmation or --force
- Web panels: one-click install and open of the zashboard / MetaCubeXD panels
- Connections & rules: live view of connections, proxy groups, and rules, with local GeoIP resolution
Features
- One daemon, three surfaces: CLI, TUI, and browser panels talk to the same daemon-owned control plane over a local named pipe / Unix domain socket. The control API never binds a TCP port.
- OS service supervision: install as a Windows service / systemd unit / launchd agent, with crash backoff restart.
- Subscription profiles: per-subscription independent caches, offline switching, per-profile refresh intervals, per-profile fetch proxy (direct / proxy / auto; auto falls back to direct), and validated atomic config generation with rollback.
- Web panels: one-click install / update / activate / rollback for zashboard and MetaCubeXD, served behind a loopback Web gateway with its own access credential.
- System proxy & TUN: cross-platform system proxy control and managed TUN, both daemon-owned and persisted. Enable refuses a foreign system proxy (system_proxy_conflict) or another TUN / mihomo instance (tun_conflict) unless --force (TUI asks for confirmation).
- Ports config: the System page can change Mixed / Controller / Web ports; occupancy shows Owned or Occupied by name (pid). Applying a change typically requires a daemon restart.
- In-TUI Mihari updates: the System page checks GitHub Releases on entry and replaces the binary when Mihari was started with administrator privileges.
- Core channel: the System page can switch the mihomo core between stable and alpha.
- A single CGO-free static binary (< 15 MB) contains everything, with built-in GitHub Releases self-update and local GeoIP resolution.