Manage mihomo subscriptions and proxy nodes from a single terminal binary without root
Add hand-entered Hysteria2 or Shadowsocks nodes and chain their egress through another source
Write local routing rules that always win over rules pulled from a subscription
Switch between rule, global, and direct routing modes for the active source
curl-to-bash install is fast, but users behind the Great Firewall must follow INSTALL-CN.md since vpnkit hits github.com directly with no mirror.
vpnkit is a terminal app, written in Go, that manages a proxy engine called mihomo. Mihomo is the actively maintained version of the Clash.Meta core, which can route a computer's network traffic through different proxy servers based on rules. The README calls vpnkit a terminal-native manager: there is a TUI you can drive with the keyboard and a matching command-line interface, but no Electron desktop wrapper and no background daemon. The whole thing is a single Go binary and runs without root. The headline features in version 1.0.0 are multi-source subscriptions, hand-entered local nodes, structured local rules, and a single-active-source routing model. A subscription is a remote URL that lists proxy servers. A local node is a proxy you type in yourself, for example a Hysteria2 or Shadowsocks URL. Local rules are user-written routing rules that always win over rules that came from a subscription. The default loyalsoldier rule set is shipped inside the binary as a small gzipped snapshot, so first launch still works on slow or restricted networks without waiting on a CDN. Installation is either a curl-to-bash one-liner that drops the binary into ~/.local/bin and writes a default config, or a make install from source with Go 1.23 or newer. The README is honest that vpnkit reaches github.com directly and offers no mirror fallback, so users behind the Great Firewall are pointed at a dedicated INSTALL-CN.md document with three install paths including a fully offline one. Day to day, you run vpnkit and it opens a seven-tab TUI. You can add a subscription with vpnkit subs add, group local nodes with vpnkit local-groups, add local nodes with vpnkit local-nodes add and chain their egress through another source with --via, and add user rules with vpnkit local-rules add. There are three routing modes: rule, global, and direct. The active source, which is either one subscription or one local-nodes group, decides the rule baseline and which nodes the catch-all proxy contains. To use the proxy from your shell you can run eval with vpnkit env. The README also lists update commands, including options to update only vpnkit or only mihomo, and a status-bar badge that appears when a new release is available.
Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.