click-completion
Fish, Bash, Zsh and PowerShell completion for Click
What it is and what it does
click-completion monkey-patches Click to add shell completion for Bash, Zsh, Fish, and PowerShell. It generates shell-specific activation code and can install it permanently into shell configuration directories. For Fish and Zsh, it also displays help text during completion. The package works by exporting a magic environment variable (_<PROG_NAME>_COMPLETE) that your Click application recognizes and uses to generate completion output.
The package is now in maintenance mode only—no new features are being added. If you are using Click 8.0 or later, Click's native completion support (introduced in that version) is the recommended approach. This package is primarily useful for applications built on older Click versions that need completion support across multiple shells.
Use it for:
- Add Bash completion to a legacy Click CLI tool that cannot upgrade to Click 8.0.
- Enable Fish shell completion with help text display for a Click-based command-line application.
- Provide Zsh completion with argument documentation for a multi-command Click application.
- Generate and install PowerShell completion scripts for a Click tool used in Windows environments.
- Customize completion behavior by implementing the complete method on custom parameter types.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Adds shell completion support (Bash, Zsh, Fish, PowerShell) to Click command-line applications, with help text display for Fish and Zsh.
No—unless you are maintaining a Click application on a version before 8.0. Click 8.0 and later include native completion support that supersedes this package. The package is in maintenance mode, has not been released since 2019, and carries high install friction. For new projects or upgradeable codebases, use Click's built-in completion instead.
Install
click-completion on PyPI
pip
pip install click-completionuv
uv add click-completionpoetry
poetry add click-completionInstalling click-completion
Before you install
High install friction due to source-only distribution. Package is in maintenance mode only with no new features; last release was 2019-10-15 and last commit 2025-03-25. For Click 8.0 and later, use Click's native completion instead.
License in practice
MIT license is permissive and places no restrictions on use, modification, or distribution.
Quickstart
import click_completion
click_completion.init()
# Then generate shell code:
code = click_completion.get_code()
# Or install directly:
click_completion.install()
Requires Click (version before 8.0 recommended; Click 8.0+ has native completion). Requires Jinja2. Requires one of: Bash, Zsh, Fish, or PowerShell.
Verify before relying
- Whether the package works correctly with modern Click versions (8.0+) despite the recommendation to use native completion instead.
- Current test coverage and whether the package is actively tested against supported shells.
- Compatibility with recent Python versions, as python_support is unspecified.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | aging — 2,495 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 209,951/month — #9,505 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: click-completion-0.5.2.tar.gz
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
auto-click-autoAutomatically enables tab shell completion for…
permissive · top 15,000 on PyPI
shtabGenerates shell tab completion scripts for…
copyleft · top 5,000 on PyPI
argcompleteProvides bash and zsh tab completion for Python…
permissive · top 1,000 on PyPI
pontosPontos is a collection of Python utilities and…
copyleft · top 15,000 on PyPI
mergify-cliMergify CLI is a command-line tool for managing…
permissive · top 15,000 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
click-help-colorsAdds color customization to Click command-line…
permissive · top 5,000 on PyPI
django-typerBuilds type-safe Django management command CLIs…
permissive · top 15,000 on PyPI
colcon-zshProvides Z shell (zsh) completion and…
permissive · top 15,000 on PyPI
mkdocs-clickGenerates API documentation for Click…
permissive · top 5,000 on PyPI