Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

Create CLIs with classes and type hints.

Project description

image image image


Cliar is yet another Python package to help you create commandline interfaces. It focuses on simplicity and extensibility:

  • Creating a CLI is as simple as subclassing a Python class from cliar.Cliar.
  • Extending a CLI is as simple as extending the class with inheritance.

Cliar's mission is to let you focus on the business logic instead of building an interface for it. At the same time, Cliar doesn't want to stand in your way, so it provides the means to customize the generated CLI.


$ pip install cliar

Cliar requires Python 3.6+ and was tested on Windows, Linux, and macOS. There are no dependencies outside Python's standard library.

Basic Usage

Let's create a commandline calculator that adds two real numbers:

from cliar import Cliar

class Calculator(Cliar):
'''Calculator app.'''

    def add(self, x: float, y: float):
    '''Add two real numbers.'''

        print(f'The sum of {x} and {y} is {x+y}.')

if __name__ == '__main__':

Save this code to and run it with different inputs:

  • Valid input:

    $ python add 12 34
    The sum of 12.0 and 34.0 is 46.0.
  • Invalid input:

    $ python add foo bar
    usage: add [-h] x y add: error: argument x: invalid float value: 'foo'
  • Get help:

    $ python -h
    usage: [-h] {add} ...
    Calculator app.
    optional arguments:
    -h, --help  show this help message and exit
    {add}       Available commands:
        add       Add two real numbers.
  • Get help for a specific command:

    $ python add -h
    usage: add [-h] x y
    Add two real numbers.
    positional arguments:
    optional arguments:
    -h, --help  show this help message and exit

There are a few things to note here:

  • It's a regular Python class with a regular Python method. You don't need to learn any new syntax to use Cliar.

  • The add method is converted into add command, and its positional params are converted into positional commandline args.

  • We don't convert x or y to float or handle any potential conversion errors in the add body. Instead, we treat x and y as if they were already guaranteed to be floats. That's because Cliar does the validation and conversion for us, using the information from add's type hints. Note how invalid input doesn't even reach your code.

  • The --help and -h flags are added automatically and the help messages are generated from the docstrings.

Read Next

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for cliar, version 1.2.4
Filename, size File type Python version Upload date Hashes
Filename, size cliar-1.2.4-py3-none-any.whl (6.2 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size cliar-1.2.4.tar.gz (6.0 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page