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¶
YAML configuration files support:
$ pip install click-extra[yaml]
XML configuration files support:
$ pip install click-extra[xml]
JSON5 configuration files support:
$ pip install click-extra[json5]
JSONC configuration files support:
$ pip install click-extra[jsonc]
HJSON configuration files support:
$ pip install click-extra[hjson]
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]