Command-line Applications¶

Command-line applications, also referred to asConsole Applications,are computer programs designed to be used from a text interface, such as ashell. Command-lineapplications usually accept various inputs as arguments, often referred to asparameters or sub-commands, as well as options, often referred to as flags orswitches.
Some popular command-line applications include:
- Grep - A plain-text data search utility
- curl - A tool for data transfer with URL syntax
- httpie - A command line HTTPclient, a user-friendly cURL replacement
- git - A distributed version control system
- mercurial - A distributed version controlsystem primarily written in Python
Clint¶
clint is a Python module which isfilled with very useful tools for developing command-line applications.It supports features such as; CLI colors and indents, simple and powerfulcolumn printer, iterator based progress bars and implicit argument handling.
Click¶
click is a Python package for creatingcommand-line interfaces in a composable way with as little code aspossible. This “Command-line Interface Creation Kit” is highlyconfigurable but comes with good defaults out of the box.
docopt¶
docopt is a lightweight, highly Pythonic package thatallows creating command-line interfaces easily and intuitively, by parsingPOSIX-style usage instructions.
Plac¶
Plac is a simple wrapperover the Python standard libraryargparse,which hides most of its complexity by using a declarative interface: theargument parser is inferred rather than written down by imperatively. Thismodule targets especially unsophisticated users, programmers, sys-admins,scientists and in general people writing throw-away scripts for themselves,who choose to create a command-line interface because it is quick and simple.
Cliff¶
Cliff is a framework forbuilding command-line programs. It uses setuptools entry points to providesubcommands, output formatters, and other extensions. The framework is meantto be used to create multi-level commands such as subversion and git, wherethe main program handles some basic argument parsing and then invokes asub-command to do the work.
Cement¶
Cement is an advanced CLI Application Framework.Its goal is to introduce a standard, and feature-full platformfor both simple and complex command line applications as wellas support rapid development needs without sacrificing quality.Cement is flexible, and it’s use cases span from the simplicity of a micro-frameworkto the complexity of a meg-framework.