# click 8.5.0 - Product: click (https://whatsnew.fyi/product/click) - Vendor: click - Date: 2026-08-27 - Version: 8.5.0 - Original notes: https://github.com/pallets/click/releases/tag/8.5.0 - Permalink: https://whatsnew.fyi/product/click/releases/8.5.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Add built-in shell completion support for PowerShell (Windows PowerShell 5.1+ and pwsh 7+) alongside the existing bash, zsh, and fish completers - **changed** — Supported versions of Windows enable ANSI terminal styles by default, and Colorama is no longer a dependency - **added** — Argument accepts a help parameter, and help output includes a Positional arguments section when argument help is available - **fixed** — confirm() and prompt() strip ANSI color and style codes from the prompt when the output stream does not support them - **fixed** — Path with allow_dash=True no longer triggers a BytesWarning when checking a value against the - convention - **added** — Add custom_version_option, a --version option whose output is produced by a callback - **fixed** — style() and secho() no longer silently drop the 256-color index 0 (black) and now validate color arguments - **fixed** — The automatic help option stores its value under the reserved name _click_default_help instead of help, so a parameter named help no longer breaks parsing - **changed** — unstyle and the ANSI handling behind help-text wrapping now strip the full CSI escape-sequence grammar - **changed** — Streamline Option flag handling with focused helpers and lazy resolution of flag_value and default - **deprecated** — get_binary_stream and get_text_stream are deprecated and will be removed in Click 9.0 - **deprecated** — The click.utils names LazyFile, KeepOpenFile, make_default_short_help, PacifyFlushWrapper, and safecall are now private and deprecated - **deprecated** — Deprecate CliRunner.isolated_filesystem in favor of temporary directories or pytest fixtures - **changed** — prompt() is now generically typed and returns the type produced by type, value_proc, or a matching default - **changed** — Command.get_help_option_names returns the help option names in the order they were declared - **fixed** — get_pager_file yields a text stream on Windows again, fixing a regression from 8.4.0 - **fixed** — progressbar settles on its final position when update_min_steps does not divide the total - **fixed** — An error raised while writing to the pager no longer gets replaced by PermissionError on Windows - **changed** — The temporary file the pager writes to on Windows is opened with the encoding get_pager_file picked for the output stream and with errors='replace' - **changed** — The temporary file pager backend forwards parameters the user set in PAGER to the pager command instead of silently dropping them This is the Click 8.5.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes. We encourage everyone to upgrade. You can read more about our [Version Support Policy][version] on our website. [version]: https://palletsprojects.com/versions PyPI: https://pypi.org/project/click/8.5.0/ Changes: https://click.palletsprojects.com/page/changes/#version-8-5-0 Milestone https://github.com/pallets/click/milestone/33 - Add built-in shell completion support for PowerShell (Windows PowerShell 5.1+ and pwsh 7+) alongside the existing `bash`, `zsh`, and `fish` completers. Use `_FOO_BAR_COMPLETE=powershell_source foo-bar` to generate the completion script. #2672 #3637 - Supported versions of Windows enable ANSI terminal styles by default. Colorama is no longer a dependency and is not used. #2986 #3505 - {class}`Argument` accepts a `help` parameter, and help output includes a `Positional arguments` section when argument help is available. #2983 #3473 - `confirm()` and `prompt()` strip ANSI color and style codes from the prompt when the output stream does not support them, matching `echo()`. This stripping was lost in `8.4.0` when #2969 began writing the prompt with `input()` directly. #3572 #3653 - {class}`Path` with `allow_dash=True` no longer triggers a `BytesWarning`, an error under `python -bb`, when checking a value against the `-` convention. #2877 #3642 - Add {func}`custom_version_option`, a `--version` option whose output is produced by a callback, covering cases {func}`version_option` intentionally does not. The feature set of {func}`version_option` is now frozen; see [discussion #3527](https://github.com/pallets/click/discussions/3527). #3581 - `style()` and `secho()` no longer silently drop the 256-color index `0` (black) passed as `fg` or `bg`, and now validate color arguments. Invalid colors raise a `ValueError` instead of a `TypeError`. #3677 - The automatic help option stores its value under the reserved name `_click_default_help` instead of `help`, so a parameter named `help` no longer breaks parsing. The new name is visible in {meth}`Command.to_info_dict` output. Parameters that overwrite each other's value trigger a warning: an argument sharing its name with another parameter, or any parameter claiming the reserved name. Options may still share a name to compete for the same value (feature switches). #2819 #3678 - `unstyle` and the ANSI handling behind help-text wrapping now strip the full CSI escape-sequence grammar. #3681 - Streamline `Option` flag handling: the flag-kind, type, lazy-default and validation steps in `Option.__init__` move into focused helpers, and `flag_value` and `default` keep their unset sentinel at construction (resolved lazily on read) so `is UNSET` reliably tells a user-supplied value from an auto-derived one. Runtime behavior is unchanged, but {meth}`Parameter.to_info_dict` now resolves `default=True` on a feature switch to its `flag_value`, matching what the function receives at call time. #3641 - {func}`get_binary_stream` and {func}`get_text_stream` are deprecated and will be removed in Click 9.0. #3481 #3695 - The following `click.utils` names were never intentionally public and are now private (`_`-prefixed). The old names remain available with a `DeprecationWarning` until Click 9.0: `LazyFile`, `KeepOpenFile`, `make_default_short_help`, `PacifyFlushWrapper`, and `safecall`. #3099 #3695 - Deprecate {meth}`CliRunner.isolated_filesystem`. It relies on {func}`os.chdir`, which mutates process-global state and is not thread-safe. The helper predates Python 3 and modern pytest: use a temporary directory ({class}`tempfile.TemporaryDirectory` or pytest's `tmp_path` fixture) with absolute paths instead. For running tests in parallel, use process-based isolati _[Truncated at 4000 characters — full notes: https://github.com/pallets/click/releases/tag/8.5.0]_