A python package for building powerful command-line interpreter (CLI) programs. Extends the Python Standard Library’s cmd package.

The basic use of cmd2 is identical to that of cmd.

  1. Create a subclass of cmd2.Cmd. Define attributes and do_* methods to control its behavior. Throughout this documentation, we will assume that you are naming your subclass App:

    from cmd2 import Cmd
    class App(Cmd):
        # customized attributes and methods here
  2. Instantiate App and start the command loop:

    app = App()


The tab-completion feature provided by cmd relies on underlying capability provided by GNU readline or an equivalent library. Linux distros will almost always come with the required library installed. For macOS, we recommend using the Homebrew package manager to install the readline package; alternatively for macOS the conda package manager that comes with the Anaconda Python distro can be used to install readline (preferably from conda-forge). For Windows, we recommend installing the pyreadline Python module.


Tested and working with Python 2.7 and 3.3+.

Indices and tables