Installation Instructions

cmd2 works on Linux, macOS, and Windows. It requires Python 3.6 or higher, pip, and setuptools. If you’ve got all that, then you can just:

$ pip install cmd2


Depending on how and where you have installed Python on your system and on what OS you are using, you may need to have administrator or root privileges to install Python packages. If this is the case, take the necessary steps required to run the commands in this section as root/admin, e.g.: on most Linux or Mac systems, you can precede them with sudo:

$ sudo pip install <package_name>


If you have Python 3 >=3.6 installed from, you will already have pip and setuptools, but may need to upgrade to the latest versions:

On Linux or OS X:

$ pip install -U pip setuptools

On Windows:

> python -m pip install -U pip setuptools

Install from PyPI

pip is the recommended installer. Installing packages from PyPI with pip is easy:

$ pip install cmd2

This will install the required 3rd-party dependencies, if necessary.

Install from GitHub

The latest version of cmd2 can be installed directly from the master branch on GitHub using pip:

$ pip install -U git+git://

Install from Debian or Ubuntu repos

We recommend installing from pip, but if you wish to install from Debian or Ubuntu repos this can be done with apt-get.

For Python 3:

$ sudo apt-get install python3-cmd2

This will also install the required 3rd-party dependencies.


Versions of cmd2 before 0.8.9 should be considered to be of unstable “beta” quality and should not be relied upon for production use. If you cannot get a version >= 0.8.9 from your OS repository, then we recommend installing from either pip or GitHub - see Install from PyPI or Install from GitHub.

Upgrading cmd2

Upgrade an already installed cmd2 to the latest version from PyPI:

pip install -U cmd2

This will upgrade to the newest stable version of cmd2 and will also upgrade any dependencies if necessary.

Uninstalling cmd2

If you wish to permanently uninstall cmd2, this can also easily be done with pip:

$ pip uninstall cmd2

macOS Considerations

macOS comes with the libedit library which is similar, but not identical, to GNU Readline. Tab completion for cmd2 applications is only tested against GNU Readline.

There are several ways GNU Readline can be installed within a Python environment on a Mac, detailed in the following subsections.

gnureadline Python module

Install the gnureadline Python module which is statically linked against a specific compatible version of GNU Readline:

$ pip install -U gnureadline

readline via conda

Install the readline package using the conda package manager included with the Anaconda Python distribution:

$ conda install readline

readline via brew

Install the readline package using the Homebrew package manager (compiles from source):

$ brew install openssl
$ brew install pyenv
$ brew install readline

Then use pyenv to compile Python and link against the installed readline