Installation

Click Extra is distributed on PyPi.

So you can install the latest stable release with your favorite package manager like pip:

$ pip install click-extra

Demo CLI

You can try Click Extra right now in your terminal, without installing any dependency or virtual env thanks to uvx:

$ uvx --from click-extra -- click-extra-demo
$ uvx --from click-extra@7.2.0 -- click-extra-demo
$ uvx --from git+https://github.com/kdeldycke/click-extra -- click-extra-demo
$ uvx --from file:///Users/me/code/click-extra -- click-extra-demo

This will download click-extra (the package), and run click-extra-demo, a demo CLI included in the package.

The click-extra-demo CLI showcases various features of Click Extra, such as enhanced help formatting, colored output, and more.

By default it will display the help message of the demo application:

$ uvx --from click-extra -- click-extra-demo
Installed 16 packages in 14ms
Usage: click-extra [OPTIONS] COMMAND [ARGS]...

And so you can explore the various possibilities of the demo application, like showing the current version:

$ uvx --from click-extra -- click-extra-demo --version
Installed 16 packages in 14ms
demo, version 7.2.0

This is a great way to play with Click Extra and check that it runs fine on your system, and renders properly in your terminal.

Try the library

Now that you have tried the demo application, you can also try the library itself in an interactive Python shell without installing anything on your system:

$ uvx --with click-extra python
Installed 3 packages in 5ms
Python 3.14.0 free-threading build (main, Oct 28 2025, 11:52:40) [Clang 20.1.4 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import click_extra
>>> click_extra.__version__
'7.2.0'
>>>

Default dependencies

This is a graph of the default, main dependencies of the Python package:

        flowchart TD
    classDef missing stroke-dasharray: 5
    boltons["boltons\n25.0.0"]
    bracex["bracex\n2.6"]
    certifi["certifi\n2025.11.12"]
    charset-normalizer["charset-normalizer\n3.4.4"]
    click-extra["click-extra\n7.1.0"]
    click_0["click\n8.3.1"]
    cloup["cloup\n3.0.8"]
    deepmerge["deepmerge\n2.0"]
    distro["distro\n1.9.0"]
    extra-platforms["extra-platforms\n5.0.1"]
    idna["idna\n3.11"]
    requests["requests\n2.32.5"]
    tabulate["tabulate\n0.9.0"]
    urllib3["urllib3\n2.5.0"]
    wcmatch["wcmatch\n10.1"]
    click-extra -- ">=0.9" --> tabulate
    click-extra -- ">=10.0" --> wcmatch
    click-extra -- ">=2.0" --> deepmerge
    click-extra -- ">=2.32.5" --> requests
    click-extra -- ">=25.0.0" --> boltons
    click-extra -- ">=3.0.7" --> cloup
    click-extra -- ">=5.0.0" --> extra-platforms
    click-extra -- ">=8.3.1" --> click_0
    cloup -- ">=8.0,<9.0" --> click_0
    extra-platforms -- ">=1.9.0" --> distro
    requests -- ">=1.21.1,<3" --> urllib3
    requests -- ">=2,<4" --> charset-normalizer
    requests -- ">=2.5,<4" --> idna
    requests -- ">=2017.4.17" --> certifi
    wcmatch -- ">=2.1.1" --> bracex


    

Extra dependencies

For additional features, you may need to install extra dependencies.

Configuration file formats

For Pygments

Register new ANSI-capable formatter, filter and lexers:

$ pip install click-extra[pygments]

For Sphinx

Register new click:source and click:run directives:

$ pip install click-extra[sphinx]

For Pytest

Activate new fixtures and utilities for testing Click CLIs:

$ pip install click-extra[pytest]