You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
This is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.
This is the Click 8.4.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 on our website.
get_parameter_source() is available during eager callbacks and type
conversion again. :issue:3458 :issue:3484
Zsh completion scripts parse correctly on Windows. :issue:3277 :pr:3466
Shell completion of Choice Enum values produces a valid completion
result. :issue:3015
Fix empty byte-string handling in echo. :issue:3487
Fix closed file error with echo_via_pager. :issue:3449
Version 8.4.0
Released 2026-05-17
:class:ParamType typing improvements. :pr:3371
:class:ParamType is now a generic abstract base class,
parameterized by its converted value type.
:meth:~ParamType.convert return types are narrowed on all
concrete types (str for :class:STRING, int for
:class:INT, etc.).
:meth:~ParamType.to_info_dict returns specific
:class:~typing.TypedDict subclasses instead of
dict[str, Any].
:class:CompositeParamType and the number-range base are now
generic with abstract methods.
Refactor convert_type to extract type inference into a private
_guess_type helper, and add :func:typing.overload signatures.
:pr:3372
:class:Parameter typing improvements. :pr:2805
:class:Parameter is now an abstract base class, making explicit
that it cannot be instantiated directly.
:attr:Parameter.name is now str instead of str | None.
When expose_value=False, the name is set to "" instead
of None.
The ctx parameter of :meth:Parameter.get_error_hint is now
typed as Context | None, matching the runtime behavior.
Split string values from default_map for parameters with nargs > 1
or :class:Tuple type, matching environment variable behavior.
:issue:2745 :pr:3364
Auto-detect type=UNPROCESSED for flag_value of non-basic types
(not str, int, float, or bool), so programmer-provided
Python objects like classes and enum members are passed through unchanged
instead of being stringified. Previously type=click.UNPROCESSED had
to be set explicitly. :issue:2012 :pr:3363
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase will rebase this PR
@dependabot recreate will recreate this PR, overwriting any edits that have been made to it
@dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps click from 8.1.8 to 8.4.1.
Release notesSourced from click's releases.
8.4.1
This is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.
PyPI: https://pypi.org/project/click/8.4.1/ Changes: https://click.palletsprojects.com/page/changes/#version-8-4-1 Milestone: https://github.com/pallets/click/milestone/32?closed=1
8.4.0
This is the Click 8.4.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 on our website.
PyPI: https://pypi.org/project/click/8.4.0/ Changes: https://click.palletsprojects.com/page/changes/#version-8-4-0 Milestone https://github.com/pallets/click/milestone/30
ParamType typing improvements. #3371
Refactor convert_type to extract type inference into a private _guess_type helper, and add :func:typing.overload signatures. #3372
Parameter typing improvements. #2805
Split string values from default_map for parameters with nargs > 1 or :class:Tuple type, matching environment variable behavior.
... (truncated)
ChangelogSourced from click's changelog.
Version 8.4.1
Released 2026-05-21
Version 8.4.0
Released 2026-05-17
:class:ParamType typing improvements. :pr:3371
Refactor convert_type to extract type inference into a private _guess_type helper, and add :func:typing.overload signatures. :pr:3372
:class:Parameter typing improvements. :pr:2805
Split string values from default_map for parameters with nargs > 1 or :class:Tuple type, matching environment variable behavior. :issue:2745 :pr:3364
Auto-detect type=UNPROCESSED for flag_value of non-basic types (not str, int, float, or bool), so programmer-provided Python objects like classes and enum members are passed through unchanged instead of being stringified. Previously type=click.UNPROCESSED had to be set explicitly. :issue:2012 :pr:3363
... (truncated)
CommitsDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and optionsYou can trigger Dependabot actions by commenting on this PR: