Linux command-line client for ProtonVPN. Written in Python.

pushedAt 1 year ago




Subreddit subscribers

A Linux CLI for ProtonVPN. Written in Python.

This is a fork of the official ProtonVPN-CLI. Check out the official one here.

ProtonVPN-CLI is a full rewrite of the bash protonvpn-cli in Python, which adds more features and functionality with the purpose of improving readability, speed and reliability.

Important information

The official ProtonVPN Linux beta app is available for most Linux Debian-based distros and Fedora 33 (support for more distros to follow). Where possible, we recommend that you upgrade to the official app. The community Linux client described below remains available for those who need it.

Installation & Updating

For more detailed information on installing, updating and uninstalling, please view the extensive usage guide.

Installing from PyPI

Installing Dependencies


  • openvpn
  • dialog (optional, needed for interactive selection)
  • pip for python3 (pip3)
  • python3.5+
  • setuptools for python3 (python3-setuptools)

Depending on your distribution, run the appropriate following command to install the necessary dependencies

Distro Command
Fedora/CentOS/RHEL sudo dnf install -y openvpn dialog python3-pip python3-setuptools
Ubuntu/Linux Mint/Debian and derivatives sudo apt install -y openvpn dialog python3-pip python3-setuptools
OpenSUSE/SLES sudo zypper in -y openvpn dialog python3-pip python3-setuptools
Arch Linux/Manjaro sudo pacman -S openvpn dialog python-pip python-setuptools

Installing ProtonVPN-CLI

Installation happens via Python's package manager PIP.

Note: Make sure to run pip with sudo, so it installs globally and recognizes the command with sudo

sudo pip3 install e-protonvpn-cli

Updating ProtonVPN-CLI

sudo pip3 install e-protonvpn-cli --upgrade

Manual Installation from source

Disclaimer: If you are unsure about what you're doing, please follow the normal installation guide.

It is recommended to do the manual installation in a virtual environment. Especially if it serves the purpose of developing.

  1. Clone this repository

    git clone https://github.com/er888kh/linux-cli-community

  2. Step into the directory

    cd linux-cli-community

  3. Install

    pip3 install -e .

For updating, you just need to pull the latest version of the repository with git.

How to use

For more detailed information, see the extensive usage guide.

Command Description
e_protonvpn init Initialize ProtonVPN profile.
e_protonvpn connect, c Select a ProtonVPN server and connect to it.
e_protonvpn c [servername] Connect to a specified server.
e_protonvpn c -r Connect to a random server.
e_protonvpn c -f Connect to the fastest server.
e_protonvpn c --p2p Connect to the fastest P2P server.
e_protonvpn c --cc [countrycode] Connect to the fastest server in a specified country.
e_protonvpn c --sc Connect to the fastest Secure Core server.
e_protonvpn reconnect, r Reconnect or connect to the last server used.
e_protonvpn disconnect, d Disconnect the current session.
e_protonvpn status, s Print connection status.
e_protonvpn configure Change CLI configuration.
e_protonvpn refresh Refresh OpenVPN configuration and server data.
e_protonvpn examples Print example commands.
e_protonvpn --version Display version.
e_protonvpn --help Show help message.

All connect options can be used with the -p flag to explicitly specify which transmission protocol is used for that connection (either udp or tcp).


If you want to contribute to this project, please read the contribution guide.