click-extra
🌈 Drop-in replacement for Click to make user-friendly and colorful CLI
What it is and what it does
Click Extra is a production-ready wrapper around the Click CLI framework that bundles configuration file loading, colorized help screens, theming, and standard options (verbosity, version, timing, parallel jobs) into a single decorator. Instead of assembling these pieces yourself across multiple Click plugins and custom code, you get them as defaults with one import.
It reads configuration from TOML, YAML, JSON, INI, and XML files (including pyproject.toml), supports environment variables and prompts with proper precedence, and renders help text with syntax highlighting and theme support. The package includes seven built-in themes and lets you define custom ones. It's designed for developers who want a polished CLI without writing hundreds of lines of boilerplate—from security researchers turning proofs-of-concept into shareable tools to DevOps engineers whose scripts have grown into team utilities.
Use it for:
- Build a CLI tool with colored help, config file support, and standard options (--verbose, --version) in minutes instead of hours.
- Add configuration file loading to an existing Click CLI without modifying its source, using the CLI wrapper.
- Create a tool that reads settings from pyproject.toml or a custom config file with automatic validation and environment variable overrides.
- Render help text with syntax highlighting and theme switching (dark, light, dracula, nord, etc.) for better UX.
- Debug CLI parameter values, defaults, and environment variable sources with the built-in --params option.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Click Extra is a wrapper around Click that adds configuration file loading, colored help screens, standard CLI options, and theming to make building professional command-line tools faster and with less boilerplate.
Yes, if your CLI is open-source or will be distributed under a GPL-compatible license. Click Extra eliminates substantial boilerplate for configuration, theming, and standard options, and is actively maintained with no known vulnerabilities. The copyleft license is a hard blocker for proprietary applications; for open-source projects, it's a strong win.
Install
click-extra on PyPI
pip
pip install click-extrauv
uv add click-extrapoetry
poetry add click-extraInstalling click-extra
Before you install
Low friction installation with a pure-Python wheel. Active maintenance as of 2026-08-14 with recent release. Depends on nine runtime packages including click, cloup, tabulate, and configuration parsers (tomli, deepmerge); all are well-established libraries.
License in practice
Licensed under GPL-2.0-or-later (copyleft). Any CLI you build with Click Extra must be distributed under a compatible open-source license; proprietary or closed-source applications cannot use this package.
Quickstart
pip install click-extra
from click_extra import command, option
@command()
@option('--name', default='World')
def hello(name):
"""A simple greeting."""
print(f'Hello {name}!')
if __name__ == '__main__':
hello()
Requires Python 3.10 or later. GPL-2.0-or-later license applies to any CLI built with it.
Verify before relying
- Whether the nine runtime dependencies (boltons, click, cloup, deepmerge, extra-platforms, tabulate, tomli, wcmatch, wcwidth) are all stable and actively maintained.
- Performance impact of configuration file loading and colorization on CLI startup time for latency-sensitive use cases.
- Compatibility with Click plugins or extensions not explicitly tested in Click Extra's test suite.
Package facts
| License | GPL-2.0-or-later (copyleft) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 9 — boltons, click, cloup, deepmerge, extra-platforms, tabulate, tomli, wcmatch, wcwidth |
| Maintenance | actively maintained — 0 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 134,106/month — #11,486 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: click_extra-8.9.0-py3-none-any.whl
Keywords: ansi-colors, ansi-escape-codes, cli-framework, click, click-extension, click-plugin, cloup, colorization, config-file, configuration-file, hjson, ini, json5, pygments, pytest-plugin, python-cli, python-tabulate, sphinx-extension, tabulate, toml-parser
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
click-help-colorsAdds color customization to Click command-line…
permissive · top 5,000 on PyPI
sphinx-clickSphinx-click is a Sphinx extension that…
permissive · top 15,000 on PyPI
cloupCloup extends Click with option groups,…
permissive · top 5,000 on PyPI
clickClick is a Python toolkit for building…
permissive · top 100 on PyPI
ttkbootstrapApplies Bootstrap-inspired themes and a…
permissive · top 15,000 on PyPI
click-promptclick-prompt adds interactive prompts to Click…
permissive · top 15,000 on PyPI
ydiffYdiff displays colored, incremental diffs in a…
permissive · top 15,000 on PyPI
mkdocs-clickGenerates API documentation for Click…
permissive · top 5,000 on PyPI
pygments-stylesProvides a curated collection of Pygments…
permissive · top 15,000 on PyPI
shinyswatchProvides 25 Bootswatch + Bootstrap 5 themes for…
permissive · top 15,000 on PyPI