Contribute Media
A thank you to everyone who makes this possible: Read More

How to Quickly Build Feature-Rich Interactive Command-Line Applications with cmd2

Description

cmd2 is a tool for building interactive command line applications in Python. Its goal is to make it quick and easy for developers to build feature-rich and user-friendly interactive command line applications. It provides a simple API which is an extension of Python’s built-in cmd module. cmd2 provides a wealth of features on top of cmd to make your life easier and eliminates much of the boilerplate code which would be necessary when using cmd.

Main Features

  • Searchable command history (history command and <Ctrl>+r)
  • Text file scripting of your application with load (@) and _relative_load (@@)
  • Python scripting of your application with pyscript
  • Run shell commands with !
  • Pipe command output to shell commands with |
  • Redirect command output to file with >, >>; input from file with <
  • Bare >, >> with no filename send output to paste buffer (clipboard)
  • py enters interactive Python console (opt-in ipy for IPython console)
  • Multi-line, case-insensitive, and abbreviated commands
  • Special-character command shortcuts (beyond cmd’s @ and !)
  • Settable environment parameters
  • Parsing commands with flags
  • Unicode character support ( Python 3 only )
  • Good tab-completion of commands, file system paths, and shell commands
  • Python 2.7 and 3.3+ support
  • Linux, macOS and Windows support
  • Trivial to provide built-in help for all commands
  • Built-in regression testing framework for your applications (transcript-based testing)

Details

Improve this page