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.
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
from cmd2 import Cmd class App(Cmd): # customized attributes and methods here
Appand start the command loop:
app = App() app.cmdloop()
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 gnureadline Python module which includes
a statically linked version of GNU readline. Alternatively on macOS the
conda package manager that comes
with the Anaconda Python distro can be used to install
readline (preferably from conda-forge) or the
Homebrew package manager can be used to to install the
For Windows, we recommend installing the pyreadline Python module.
- cmd2 project page
- project bug tracker
- Florida PyCon 2017: slides, video
These docs will refer to
App as your
app as an instance of
course, in your program, you may name them whatever
- Installation Instructions
- Extra requirement for macOS
- Features requiring no modifications
- Features requiring only parameter changes
- Features requiring application changes
- Transcript based testing
- Argument Processing
- Integrating cmd2 with external tools
- cmd2 Application Lifecycle and Hooks
- Alternatives to cmd and cmd2
Tested and working with Python 3.4+ on Windows, macOS, and Linux.