# protonvpn-cli Reference — Commands Quick Reference > Official Proton VPN Linux CLI (v1.0.0+) > Source: https://github.com/ProtonVPN/proton-vpn-cli > Support: https://protonvpn.com/support/linux-cli ## Installation ```bash # Debian/Ubuntu curl -fsSL 'https://repo.protonvpn.com/debian/dists/stable/main/signed.key' | \ sudo gpg --dearmor -o /usr/share/keyrings/protonvpn.gpg echo "deb [signed-by=/usr/share/keyrings/protonvpn.gpg] https://repo.protonvpn.com/debian stable main" | \ sudo tee /etc/apt/sources.list.d/protonvpn.list sudo apt update && sudo apt install protonvpn-cli # Fedora sudo dnf install protonvpn-cli # Arch (AUR) yay -S protonvpn-cli ``` ## Login / Logout | Command | Description | |---------|-------------| | `protonvpn-cli login [username]` | Authenticate via browser OAuth | | `protonvpn-cli logout` | Clear credentials | ## Connect / Disconnect | Command | Description | |---------|-------------| | `protonvpn-cli connect [servername]` | Connect to specific server | | `protonvpn-cli connect --fastest` | Connect to lowest-latency server | | `protonvpn-cli connect --random` | Connect to random server | | `protonvpn-cli connect --country US` | Connect to fastest server in country | | `protonvpn-cli connect --city "New York"` | Connect to fastest server in city | | `protonvpn-cli connect --p2p` | Connect to fastest P2P server | | `protonvpn-cli connect --tor` | Connect to fastest Tor server | | `protonvpn-cli connect --free` | Connect to free server | | `protonvpn-cli connect --secure-core` | Connect to Secure Core server | | `protonvpn-cli connect --protocol wireguard` | Specify protocol | | `protonvpn-cli connect --persistent` | Auto-reconnect if VPN drops | | `protonvpn-cli disconnect` | Disconnect current session | All connect options can be combined with `-p udp` or `-p tcp` to specify protocol (for OpenVPN mode). ## Status & Info | Command | Description | |---------|-------------| | `protonvpn-cli status` | Show connection status, server, uptime, IP | | `protonvpn-cli servers` | List all servers with features and load | ## Settings & Config | Command | Description | |---------|-------------| | `protonvpn-cli config --list` | Show current configuration | | `protonvpn-cli settings --killswitch on` | Enable kill switch | | `protonvpn-cli settings --killswitch off` | Disable kill switch | | `protonvpn-cli settings --netshield on` | Enable NetShield (block malware) | | `protonvpn-cli settings --netshield off` | Disable NetShield | | `protonvpn-cli settings --netshield strict` | Strict NetShield mode | | `protonvpn-cli settings --custom-dns 1.1.1.1` | Set custom DNS | | `protonvpn-cli settings --protocol wireguard` | Set preferred protocol | | `protonvpn-cli settings --dnsleak-protection on` | Enable DNS leak protection | | `protonvpn-cli settings --dnsleak-protection off` | Disable DNS leak protection | | `protonvpn-cli refresh` | Refresh server list and config | ## General | Command | Description | |---------|-------------| | `protonvpn-cli --help` | Show help | | `protonvpn-cli --version` | Show version | | `protonvpn-cli --debug` | Enable verbose debug logging | ## Logs & Files - **Logs:** `~/.cache/Proton/VPN/logs/` - **Config:** `~/.config/Proton/VPN/` - **Settings DB:** `~/.config/Proton/VPN/settings.json` ## Requirements - Python 3 - systemd-resolved (for DNS leak protection) - gnome-keyring (for credential storage) - NetworkManager (for connection profiles) - WireGuard kernel module (preferred protocol) or OpenVPN ## Known Limitations (v1.0.1) - No headless support (requires gnome-keyring + NetworkManager) - Cannot run alongside Proton VPN GUI app - Split tunneling is not yet available - First login requires a browser for OAuth - Kill switch uses iptables (may conflict with other firewall rules)