Adds enhanced shell completion (bash, fish, zsh, PowerShell) to Click command-line applications.
click-completion is a Python library that adds enhanced shell completion capabilities to Click-based command-line applications. It enables automatic tab completion for commands, options, and arguments in bash, fish, zsh, and PowerShell shells, improving the user experience for CLI tools.
Python developers building command-line interfaces with Click who want to provide better shell completion for their users, especially those using Click versions before 8.0.
It offers multi-shell support with enhanced features like help display in fish and zsh, easy integration via monkey-patching, and customization options, making it a robust solution for adding completion to Click apps without native support.
Add or enhance bash, fish, zsh and powershell completion in Click
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works with bash, fish, zsh, and PowerShell, providing broad coverage for terminal users, as highlighted in the README's key features.
fish and zsh shells display option and command help during completion, improving usability beyond basic tab completion.
Monkey-patches existing Click applications with a simple init() call, making it straightforward to add completion to legacy code without major rewrites.
Supports application-level and parameter-type customization via environment variables and complete methods, as shown in the examples like DocumentedChoice.
Only useful for Click versions before 8.0; the README warns users to switch to native completion for newer versions, making it obsolete for modern projects.
The project is in maintenance mode with no new features, which risks lack of support for future shell updates or bug fixes.
Adds Jinja2 as a dependency for shell code generation, increasing complexity compared to Click's native lightweight completion.
The README admits that documentation and tests need attention, which could hinder adoption and troubleshooting for developers.