click-extra
🌈 Drop-in replacement for Click to make user-friendly and colorful CLI
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- GPL-2.0-or-later license applies to any CLI built with it.
- Low friction installation with a pure-Python wheel.
License · maintenance · safety
GPL-2.0-or-later (copyleft) — 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.
last release 2026-08-14 (0 days) · last repo commit 2026-08-14 · 120 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 134,106 downloads/mo, #11,486 on PyPI
Alternatives
Verify before relying
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()- 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.
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 on it.
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
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.
Requires Python 3.10 or later. GPL-2.0-or-later license applies to any CLI built with it.
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()
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 packagesboltonsclickcloupdeepmergeextra-platformstabulatetomliwcmatchwcwidth |
| 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 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleEnvironment :: PluginsFramework :: PytestFramework :: SphinxFramework :: Sphinx :: ExtensionFramework :: Sphinx :: ThemeIntended Audience :: DevelopersOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIX :: BSD :: FreeBSDOperating System :: POSIX :: BSD :: NetBSDOperating System :: POSIX :: BSD :: OpenBSDOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonTopic :: Documentation :: SphinxTopic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: User InterfacesTopic :: System :: LoggingTopic :: System :: ShellsTopic :: TerminalsTopic :: Text Processing :: FiltersTopic :: Text Processing :: Markup :: HTMLTopic :: Text Processing :: Markup :: MarkdownTopic :: Text Processing :: Markup :: XMLTopic :: Text Processing :: Markup :: reStructuredTextTopic :: UtilitiesTyping :: Typed |
Evidence: click_extra-8.9.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “cli theming and styling”
- click-extraClick Extra is a wrapper around Click that adds configuration file…
- panel-material-uiPanel Material UI brings Material Design components to Panel…
- ttkbootstrapApplies Bootstrap-inspired themes and a one-keyword styling system to…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also click-help-colors · sphinx-click · cloup · click · ttkbootstrap · click-prompt · ydiff · mkdocs-click · pygments-styles · shinyswatch