Your VPN, in the terminal.
Paste a vless:// link, give it a name, flip it on. A big on/off toggle, a live dashboard with flags, ping and traffic, and routing you don't have to memorize. The only dependency is xray.
brew install vpncli/tap/vpn Homebrew · apt · curl — self-contained binary, no Node, no jq.
Everything, a few keystrokes away
The whole app is a power button and a handful of cards. No xray syntax to learn.
One-tap on/off
A big focusable toggle is selected by default — press Enter to connect. Off, you see just the toggle; on, the full dashboard.
Live dashboard
The active server with its country flag, live ping, and per-channel traffic — VPN vs. direct — updating in real time.
Server profiles
Paste a vless:// share link, name it, switch instantly. Each card shows a flag and an availability ping.
Intuitive routing
A guided wizard sends a site, service, country, or subnet to direct, proxy, or block — plus ready-made presets.
Bilingual UI
Switch the whole interface between English and Русский on the fly, without restarting.
Self-contained binary
No Node, no jq — a single cross-compiled binary. The one runtime dependency is xray.
Routing without the xray syntax
The Add rule wizard walks you through it — a website, a known service (OpenAI, Netflix, Telegram…), a whole country, or an IP/subnet. Every rule lands in one of three buckets.
Bypass the VPN — local sites, corporate hosts.
Force through the VPN — a service blocked in your region.
Drop it entirely — ads and trackers.
block → proxy → direct. Then private and localhost always go direct, and anything unmatched goes through the VPN.
Every generated config is validated with xray -test before anything is applied.
See it move
Real recordings of the app — no real server is ever shown.
Install in one line
Pick your platform. Homebrew pulls in xray automatically.
brew install vpncli/tap/vpn curl -fsSL https://vpncli.github.io/vpn/key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/vpn.gpg
echo "deb [signed-by=/etc/apt/keyrings/vpn.gpg] https://vpncli.github.io/vpn stable main" \
| sudo tee /etc/apt/sources.list.d/vpn.list
sudo apt-get update && sudo apt-get install vpn
bash -c "$(curl -fsSL https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" curl -fsSL https://raw.githubusercontent.com/vpncli/vpn/main/install.sh | bash $ vpn add vless://… # add & activate a server $ vpn on # connect $ vpn # open the interactive app $ vpn off # disconnect Everything is also a command
Every action in the app is a plain command, too.
vpn interactive app vpn on · off · restart connect / disconnect / reconnect vpn status · ip · log [N] live status · IPs · last log lines vpn add <vless://…> [name] add a server vpn ls · use · show · rm [name] manage servers vpn route add|rm direct|proxy|block <rule> edit routing vpn preset ls · on|off [name…] toggle presets vpn lang en|ru set language vpn init auto-source the proxy env in new terminals