| Crates.io | vortix |
| lib.rs | vortix |
| version | 0.1.1 |
| created_at | 2026-01-03 17:29:52.569695+00 |
| updated_at | 2026-01-14 18:04:13.325834+00 |
| description | Terminal UI for WireGuard and OpenVPN with real-time telemetry and leak guarding |
| homepage | https://docs.rs/vortix |
| repository | https://github.com/Harry-kp/vortix |
| max_upload_size | |
| id | 2020495 |
| size | 368,172 |
Terminal UI for WireGuard and OpenVPN with real-time telemetry and leak guarding.

I wanted a single interface to:
Existing options (wg show, NetworkManager, Tunnelblick) either lack real-time telemetry or require a GUI.
.conf and .ovpn filesifconfig, netstat, wg, ps commands)brew install wireguard-toolsbrew install openvpnLinux support is planned but not yet implemented.
From crates.io (Recommended):
cargo install vortix
Quick install (Binary):
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Harry-kp/vortix/releases/latest/download/vortix-installer.sh | sh
From source:
git clone https://github.com/Harry-kp/vortix.git
cd vortix
cargo install --path .
Profiles are stored in ~/.config/vortix/profiles/ with chmod 600.
| Key | Action |
|---|---|
Tab |
Cycle Focus (All Panels) |
1-9 |
Connect to Quick-Slot 1-9 |
Enter |
Connect / Toggle Profile |
d |
Disconnect Active Session |
r |
Reconnect Active Session |
i |
Import Profile (Direct) |
v |
View Profile Configuration |
y |
Copy Public IP to Clipboard |
K |
Toggle Kill Switch (Shift+K) |
z |
Toggle Zoom View (Panel) |
x |
Open Action Menu (Contextual) |
b |
Open Bulk Menu |
Del |
Delete Profile (Sidebar) |
q |
Quit Application |
Telemetry: A background thread polls netstat -ib every second for throughput. Network quality (latency, jitter, loss) is calculated using multi-packet ICMP probes. Public IP, ISP, and Geo-location data are fetched via ipinfo.io/json.
Security (Kill Switch & Leak Detection):
api6.ipify.org. Any IPv6 traffic detected while VPN is active triggers a leak warning./etc/resolv.conf to ensure nameservers and search domains align with the secure tunnel.WireGuard Integration: Resolves interface names via /var/run/wireguard/*.name. Parses wg show for handshake timing, transfer stats, and endpoint metadata.
OpenVPN Integration: Tracks session uptime and connection status via ps proc parsing and log monitoring.
cargo build # Build binary
cargo test # Run unit/integration tests
cargo clippy # Enforce code quality (Fail-fast via pre-commit)