click-plugins
An extension module for click to enable registering CLI commands via setuptools entry-points.
Install
click-plugins on PyPI
pip
pip install click-pluginsuv
uv add click-pluginspoetry
poetry add click-pluginsPackage facts
| License | New BSD (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — click |
| Maintenance | actively maintained — 414 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: click_plugins-1.1.1.2-py2.py3-none-any.whl
Keywords: click, plugin, setuptools, entry-point
About click-plugins
from the package's own PyPI description — quoted content, verbatim
============= click-plugins =============
This PyPI package is no longer actively maintained, but the underlying
library can be vendored. See homepage <https://github.com/click-contrib/click-plugins>_
for more information.
An extension module for click <https://github.com/pallets/click>_ to register
external CLI commands via setuptools entry-points.
Why?
Lets say you develop a commandline interface and someone requests a new feature
that is absolutely related to your project but would have negative consequences
like additional dependencies, major refactoring, or maybe its just too domain
specific to be supported directly. Rather than developing a separate standalone
utility you could offer up a setuptools entry point <https://pythonhosted.org/setuptools/setuptools.html#dynamic-discovery-of-services-and-plugins>_
that allows others to use your commandline utility as a home for their related
sub-commands. You get to choose where these sub-commands or sub-groups CAN be
registered but the plugin developer gets to choose they ARE registered. You
could have all plugins register alongside the core commands, in a special
sub-group, across multiple sub-groups, or some...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Extends Click CLI frameworks to load external commands and command groups from setuptools entry points, enabling plugin-based CLI architecture without tight coupling.
Installation is frictionless with only click as a runtime dependency, but the package description states it is no longer actively maintained—the maintainers recommend vendoring the library rather than relying on updates.
Licensed under New BSD (permissive), allowing commercial and private use with minimal restrictions, though users should verify compatibility with their own license terms.
Usage
pip install click-plugins
from click_plugins import with_plugins
import click
@with_plugins(iter_entry_points('my_package.cli_plugins'))
@click.group()
def cli():
pass
Requires click to be installed; plugin discovery depends on setuptools entry points being properly declared in dependent packages' setup.py.
Verdict: Low-friction installation and permissive licensing make this accessible, but the package's explicit unmaintained status and 414-day release lag mean production users should either vendor the code or evaluate maintained alternatives for plugin-based CLI architectures.
Needs verification
- Whether the 'active' maintenance status contradicts the package's own statement that it is 'no longer actively maintained'
- Python version compatibility details, since requires_python is unspecified despite classifiers listing Python 3
- Real-world adoption patterns and whether the top_1000 tier reflects active use or legacy dependents
Similar packages
permissive · top 1,000 on PyPI
click-option-grouppermissive · top 1,000 on PyPI
click-replpermissive · top 1,000 on PyPI
absl-pypermissive · top 1,000 on PyPI
cataloguepermissive · top 1,000 on PyPI
entrypointspermissive · top 1,000 on PyPI
stevedorepermissive · top 1,000 on PyPI
ipykernelpermissive · top 1,000 on PyPI
clickpermissive · top 100 on PyPI
rich-clickpermissive · top 1,000 on PyPI