NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #20 most downloaded on PyPI
Composable command line interface toolkit
Last release 1 months ago
26 Aug 2026
Ships unpredictably
gaps range from 1 weeks to 1.3 years
Most releases are documented
notes for 52 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
12 years old
65 releases · first in 2014
…add new deprecation, or introduce potentially breaking changes.
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 on our website.
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
bash, zsh, and fish_FOO_BAR_COMPLETE=powershell_source foo-bar to generateArgument accepts a help parameter, and help output includesPositional arguments section when argument help is available. #2983 #3473confirm() and prompt() strip ANSI color and style codes from theecho().8.4.0 when #2969 began writing theinput() directly. #3572 #3653Path with allow_dash=True no longer triggers a BytesWarning,python -bb, when checking a value against the -custom_version_option, a --version option whose output isversion_option intentionallyversion_option is now frozen; seestyle() and secho() no longer silently drop the 256-color index 0fg or bg, and now validate color arguments. InvalidValueError instead of a TypeError. #3677_click_default_help instead of help, so a parameter named help noCommand.to_info_dict output. Parameters that overwrite each other'sunstyle and the ANSI handling behind help-text wrapping now strip the fullOption flag handling: the flag-kind, type, lazy-default andOption.__init__ move into focused helpers, andflag_value and default keep their unset sentinel at constructionis UNSET reliably tells a user-supplied valueParameter.to_info_dict now resolves default=True on a featureflag_value, matching what the function receives at callget_binary_stream and {func}get_text_stream are deprecated andclick.utils names were never intentionally public and are_-prefixed). The old names remain available with aDeprecationWarning until Click 9.0: LazyFile, KeepOpenFile,make_default_short_help, PacifyFlushWrapper, and safecall.CliRunner.isolated_filesystem. It relies onos.chdir, which mutates process-global state and is nottempfile.TemporaryDirectory or pytest'stmp_path fixture) with absolute paths instead. For running tests inpytest-xdist) ratherCliRunner.invoke also redirects theprompt() is now generically typed and returns the type produced bytype, value_proc, or a matching default instead of Any.ParamType takes a second optional type parameter describing theParamType[int, str] for a type convertingAny. #3407Command.get_help_option_names returns the help option names in theget_pager_file yields a text stream on Windows again. The temporarystr to the pagerTypeError: a bytes-like object is required, not 'str', and thecolor argument was ignored on that path. Regression introduced in 8.4.0progressbar settles on its final position when update_min_stepsshow_pos renders 20/20 rather than the last multiplePermissionError: [WinError 32] on Windows. The temporary file backendget_pager_file picked for the output stream, and witherrors="replace" to match the pipe backend. Any text stdout can encodePAGER to the pager command instead of silently dropping them. On Windows,PAGER="less -R" now invokes less -R on the temporary file rather thanless. #3777edit accepts os.PathLike values for filename, in addition toOne column per quarter.
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…
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.2/
Changes: https://click.palletsprojects.com/page/changes/#version-8-4-2
Milestone: https://github.com/pallets/click/milestone/34
8.4.0 by #3126. Newlines and(DEPRECATED) label. #3509Group with invoke_without_command=True marks its subcommand as[COMMAND] instead of COMMAND.echo_via_pager flushes after each write, so passing a generator streamsecho_via_pager and get_pager_file no longer close a borrowed stdoutI/O operation on closed file fix from #3482. #3449[[a|b|c]]... whose type already brackets their metavar. #3578version_option resolves a package_name that does not match animportlib.metadata.packages_distributions. Packages whosePIL vsPillow, jwt vs PyJWT) no longer raise RuntimeError out of theThis 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…
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
get_parameter_source() is available during eager callbacks and type conversion again. #3458 #3484Choice Enum values produces a valid completion result. #3015echo_via_pager. #3449Released 2026-05-21
get_parameter_source() is available during eager callbacks and type
conversion again. {issue}3458 {pr}34843277 {pr}3466Enum values used as Choice options produces a
valid completion result. {issue}3015 {pr}34713487 {pr}3493echo_via_pager. {issue}3449 {pr}3482open_url on Windows when the file path contains spaces.
{issue}2994 {pr}3478…add new deprecation, or introduce potentially breaking changes.
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
ParamType is now a generic abstract base class,~ParamType.convert return types are narrowed on allstr for :class:STRING, int forINT, etc.).~ParamType.to_info_dict returns specific~typing.TypedDict subclasses instead ofdict[str, Any].CompositeParamType and the number-range base are nowRefactor convert_type to extract type inference into a private
_guess_type helper, and add :func:typing.overload signatures.
#3372
Parameter typing improvements. #2805
Parameter is now an abstract base class, making explicitParameter.name is now str instead of str | None.expose_value=False, the name is set to "" insteadNone.ctx parameter of :meth:Parameter.get_error_hint is nowContext | None, matching the runtime behavior.Split string values from default_map for parameters with nargs > 1
or :class:Tuple type, matching environment variable behavior.
#2745 #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. #2012 #3363
The error hint now uses Command.get_help_option_names to pick
non-shadowed help option names, so Try '... -h' no longer points to a
subcommand option that shadows -h. All surviving names are shown
(-h/--help). #2790 #3208
Fix readline functionality on non-Windows platforms. Prompt text is now
passed directly to readline instead of being printed separately, allowing
proper backspace, line editing, and line wrapping behavior. #2968
#2969
Use :func:os.startfile on Windows to open URLs in :func:open_url,
replacing the start built-in which cannot be invoked without
shell=True. #3164 #3186
Fix Fish shell completion errors when option help text contains newlines.
#3043 #3126
Add :class:NoSuchCommand exception with suggestions for misspelled
commands. #3107 #3228
Use :class:ValueError message when conversion in :class:FuncParamType would
fail. #3105 #3211
Add click.get_pager_file for file-like access to an output
pager. #1572 #3405
:class:~click.formatting.TextWrapper and
:func:~click.formatting.wrap_text now measure line width in visible
characters, ignoring ANSI escape sequences. #3420
Fix :meth:HelpFormatter.write_usage emitting only a blank line when
called without args. The usage prefix and program name are now
written even when no arguments follow, and the trailing separator
space is stripped so the line ends at the program name.
#3360 #3434
Show custom error messages from types when :func:prompt with
hide_input=True fails validation, instead of always showing a
generic message. Built-in type messages mask the input value.
#2809 #3256
Add capture parameter to :class:CliRunner with two modes: sys
(default) and fd. fd redirects file descriptors 1 and 2
via :func:os.dup2 so output that bypasses sys.stdout (stale stream
references, C extensions, subprocesses, faulthandler) is captured
with proper isolation. #854 #2412 #2468
#2497 #2761 #2827 #2865
Revert the 8.3.3 change that exposed the original file descriptor
via fileno() on the redirected CliRunner streams in the default
capture mode. os.dup2(w, sys.stdout.fileno()) calls inside a CLI no
longer mutate the host runner's stdout, which broke Pytest's fd-level
capture teardown. C-level consumers that need a real fd should use
capture="fd". #3384 #3391
Mark additional built-in strings with gettext() to extend translation
coverage. #2902
Fix feature switch groups (several flag_value options sharing one
parameter name) silently dropping an explicit default when a sibling
option without an explicit default was declared first. Arbitration is now
source-aware: a more explicit :class:ParameterSource always wins, and
within ParameterSource.DEFAULT, an option that received an explicit
default= keyword wins over a sibling whose default was auto-derived.
The 8.3.x first-wins fallback for remaining ties was reverted to the
pre-8.3.x last-wins fallback. #3403 #3404
Fix missing space between option help text and the (DEPRECATED)
label, and localize the option label so it matches the command label.
The label and the DeprecationWarning reason suffix are now produced
by shared helpers. #3423
Document short option stacking (-abc is parsed as -a -b -c) and
clarify that multi-character short option names are not supported.
#2779 #3431
Released 2026-05-17
ParamType typing improvements. #3371
ParamType is now a generic abstract base class, parameterized by its converted value type.
convert() return types are narrowed on all concrete types ( str for STRING , int for INT , etc.).
to_info_dict() returns specific TypedDict subclasses instead of dict[str, Any] .
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 typing.overload() signatures. #3372
Parameter typing improvements. #2805
Parameter is now an abstract base class, making explicit that it cannot be instantiated directly.
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 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 Tuple type, matching environment variable behavior. #2745 #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. #2012 #3363
The error hint now uses Command.get_help_option_names() to pick non-shadowed help option names, so Try '... -h' no longer points to a subcommand option that shadows -h . The longest surviving name is shown ( --help over -h ) for readability. #2790 #3208
Fix readline functionality on non-Windows platforms. Prompt text is now passed directly to readline instead of being printed separately, allowing proper backspace, line editing, and line wrapping behavior. #2968 #2969
Use os.startfile() on Windows to open URLs in open_url() , replacing the start built-in which cannot be invoked without shell=True . #2868 #3164 #3186
Fix Fish shell completion errors when option help text contains newlines. #3043 #3126
Add NoSuchCommand exception with suggestions for misspelled commands. #3107 #3228
Use ValueError message when conversion in FuncParamType would fail. #3105 #3211
Add click.get_pager_file for file-like access to an output pager. #1572 #3405
wrap_text() now measures line width in visible characters, ignoring ANSI escape sequences. #3420
Fix HelpFormatter.write_usage() emitting only a blank line when called without args . The usage prefix and program name are now written even when no arguments follow, and the trailing separator space is stripped so the line ends at the program name. #3360 #3434
Show custom error messages from types when prompt() with hide_input=True fails validation, instead of always showing a generic message. Built-in type messages mask the input value. #2809 #3256
Add capture parameter to CliRunner with two modes: sys (default) and fd . fd redirects file descriptors 1 and 2 via os.dup2() so output that bypasses sys.stdout (stale stream references, C extensions, subprocesses, faulthandler ) is captured with proper isolation. #854 #2412 #2468 #2497 #2761 #2827 #2865 #3391
Revert the 8.3.3 change that exposed the original file descriptor via fileno() on the redirected CliRunner streams in the default capture mode. os.dup2(w, sys.stdout.fileno()) calls inside a CLI no longer mutate the host runner’s stdout, which broke Pytest’s fd -level capture teardown. C-level consumers that need a real fd should use capture="fd" . #3384 #3391
Mark additional built-in strings with gettext() to extend translation coverage. #2902
Fix feature switch groups (several flag_value options sharing one parameter name) silently dropping an explicit default when a sibling option without an explicit default was declared first. Arbitration is now source-aware: a more explicit ParameterSource always wins, and within ParameterSource.DEFAULT , an option that received an explicit default= keyword wins over a sibling whose default was auto-derived. The 8.3.x first-wins fallback for remaining ties was reverted to the pre-8.3.x last-wins fallback. #3403 #3404
Fix missing space between option help text and the (DEPRECATED) label, and localize the option label so it matches the command label. The label and the DeprecationWarning reason suffix are now produced by shared helpers. #3423
Document short option stacking ( -abc is parsed as -a -b -c ) and clarify that multi-character short option names are not supported. #2779 #3431
This is the Click 8.3.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the…
This is the Click 8.3.3 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.3.3/
Changes: https://click.palletsprojects.com/page/changes/#version-8-3-3
Milestone: https://github.com/pallets/click/milestone/30
shlex.split to split pager and editor commands into argvsubprocess.Popen, removing shell=True.TypeError when rendering help for an option whose default value issemver.Version. #3298 #3299tmp_path fixture instead of a shared temporary file path. #3238Sentinel.UNSET values in a default_map as absent, so they fallpdb.Pdb in CliRunner isolation so pdb.set_trace(),breakpoint(), and debuggers subclassing pdb.Pdb (ipdb, pdbpp) canpytest-randomly andpytest-xdist to detect test pollution and race conditions. #3151show_default string in prompts, matching the existingdefault=True with boolean flag_value always returning theflag_value instead of True. The default=True to flag_valueTrue acts as adefault=True is returned as a literal value. #3111 #3239make_default_short_help as private API. #3189 #3250CliRunner's redirected streams now expose the original file descriptorfileno(), so that faulthandler, subprocess, and otherio.UnsupportedOperation.ParameterSource to an :class:~enum.IntEnum and reorderThis is the Click 8.3.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the…
This is the Click 8.3.2 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.3.2/
Changes: https://click.palletsprojects.com/page/changes/#version-8-3-2
Milestone: https://github.com/pallets/click/milestone/29
flag_value when is_flag=False to allow such options to beSentinel.UNSET values as None when using lookup_default()._NamedTextIOWrapper from closing streams owned by StreamMixer.CliRunner stream lifecycle, coveringstress markerflag_value being instantiated when used as a default viadefault=True. #3121 #3201 #3213 #3225This is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the…
This is the Click 8.3.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.3.1/
Changes: https://click.palletsprojects.com/page/changes/#version-8-3-1
Milestone: https://github.com/pallets/click/milestone/28
subprocess.Popen. #3039 #3055Sentinel.UNSET default values by None as they're passed through the Context.invoke() method. #3066 #3065 #3068Sentinel.UNSET happening too early, which caused incorrect behavior for multiple parameters using the same name. #3071 #3079prompt and confirm parameter prompt_suffix is empty. #3019 #3021Sentinel.UNSET is found during parsing, it will skip calls to type_cast_value. #3069 #3090Sentinel.UNSET values as None when looking up for other parameters through the context inside parameter callbacks. #3136 #3137…add new deprecation, or introduce potentially breaking changes.
This is the Click 8.3.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.3.0/
Changes: https://click.palletsprojects.com/page/changes/#version-8-3-0
Milestone https://github.com/pallets/click/milestone/27
Improved flag option handling: Reworked the relationship between flag_value
and default parameters for better consistency:
default parameter value is now preserved as-is and passed directlydefault=True maintain backward compatibilityflag_valuedefault parameter can now be any type (bool, None, etc.)Allow default to be set on Argument for nargs = -1. #2164
#3030
Show correct auto complete value for nargs option in combination with flag
option #2813
Show correct auto complete value for nargs option in combination with flag option #2813
Fix handling of quoted and escaped parameters in Fish autocompletion. #2995 #3013
Lazily import shutil. #3023
Properly forward exception information to resources registered with
click.core.Context.with_resource(). #2447 #3058
Fix regression related to EOF handling in CliRunner. #2939 #2940
This is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the…
This is the Click 8.2.2 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.2.2/
Changes: https://click.palletsprojects.com/page/changes/#version-8-2-2
Milestone: https://github.com/pallets/click/milestone/25
default, flag_value and type parameters forBadParameter and MissingParameter exceptions for theparam_hint that did not allow for a sequence of string where the_join_param_hints allows for it. #2777 #2990Enum choices to render their default value in helpzsh) for completion items containingclick.testing.StreamMixer's finalization that manifestedValueError on close in a multi-threaded test session.This is the Click 8.2.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the…
This is the Click 8.2.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.2.1/
Changes: https://click.palletsprojects.com/page/changes/#version-8-2-1
Milestone: https://github.com/pallets/click/milestone/24?closed=1
Released 2025-05-20
2894
{issue}2897 {pr}29302906 {pr}2907sys.stderr at the end of CliRunner.invoke. {issue}26822787…add new deprecation, or introduce potentially breaking changes.
This is the Click 8.2.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.2.0/ Changes: https://click.palletsprojects.com/en/stable/changes/ Milestone https://github.com/pallets/click/milestone/15
pyproject.toml instead of setup.cfg. #2438flit_core instead of setuptools as build backend. #2543__version__ attribute. Use feature detection, or importlib.metadata.version("click"), instead. #2598BaseCommand is deprecated. Command is the base class for all commands. #2589MultiCommand is deprecated. Group is the base class for all group commands. #2590OptionParser and the parser module, which is a modified copy of optparse in the standard library.Context.protected_args is unneeded. Context.args contains any remaining arguments while parsing.Parameter.add_to_parser (on both Argument and Option) is unneeded. Parsing works directly without building a separate parser.split_arg_string is moved from parser to shell_completion.from __future__ import annotations. #2270_command, _cmd, _group, and _grp are removed. #2322types.ParamType.name for types.Choice options within --help message if show_choices=False is specified. #2356Option.show_default is False. #2509get_help_extra method on Option to fetch the generated extra items used in get_help_record to render help text. #2516 #2517CliRunner. Always collect stderr output and never raise an exception. Add a new output stream to simulate what the user sees in its terminal. Removes the mix_stderr parameter in CliRunner. #2522 #2523Option.show_envvar now also shows environment variable in error messages. #2695 #2696Context.close will be called on exit. This results in all Context.call_on_close callbacks and context managers added via Context.with_resource to be closed on exit as well. #2680ProgressBar(hidden: bool) to allow hiding the progressbar. #2609UserWarning will be shown when multiple parameters attempt to use the same name. #2396Option.envvar with Option.flag_value, the flag_value will always be used instead of the value of the environment variable. #2746 #2788Choice.get_invalid_choice_message method for customizing the invalid choice message. #2621 #2622no_args_is_help is enabled (defaults to True for groups, False for commands), the exit code is 2 instead of 0. #1489 #1489ResourceWarning when using click.File. #2644 #2800 #2767click.edit(filename) now supports passing an iterable of filenames in case the editor supports editing multiple files at once. Its return type is now also typed: AnyStr if text is passed, otherwise None. #2067 #2068progressbar(length=...) as ProgressBar[int]. #2630echo_via_pager behaviour in face of errors. #2674
echo_via_pager raises an exception.echo_via_pager will not ignore KeyboardInterrupt anymore. This allows the user to search for future output of the generator when using less and then aborting the program using ctrl-c.deprecated: bool | str can now be used on options and arguments. This previously was only available for Command. The message can now also be customised by using a str instead of a bool. #2263 #2271
Command.deprecated formatting in --help changed from (Deprecated) help to help (DEPRECATED).catch_exceptions parameter to CliRunner. If catch_exceptions is not passed to CliRunner.invoke, the value from CliRunner is used. #2817 #2818Option.flag_value will no longer have a default value set based on Option.default if Option.is_flag is False. This results in Option.default not needing to implement __bool__. #2829click.edit typing has been corrected. #2804Choice is now generic and supports any iterable value. This allows you to use enums and other non-str values. #2796 #605click.HelpOption that was introduced in 8.1.8 due to api incompatibility. #2832Please remember, applications must lock their full dependency tree to control when updates are installed and ensure reproducible deployments. Use one of the various project management or lock tools available in the Python ecosystem. Test with warnings treated as errors to be able to adapt to deprecation warnings early.
This is the Click 8.1.8 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the…
This is the Click 8.1.8 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.1.8/ Changes: https://click.palletsprojects.com/en/stable/changes/#version-8-1-8 Milestone https://github.com/pallets/click/milestones/23?closed=1
click.open_file(). #2717click.Path displays on
multiple lines. #2697"" from being displayed in
the help for an option. #2500default_map. #2632click.echo(color=...) passing color to coloroma so it can be
forced on Windows. #2606.help_option_names setting to
respect its eagerness. #2811os.system with subprocess.Popen. #1476color
setting when being displayed. #2193--help option to deduplicate code. #2563CLIRunner resets patched _compat.should_strip_ansi. #2732This is a fix release for the 8.1.x feature branch.
This is a fix release for the 8.1.x feature branch.
Released 2023-08-17
258125742567This is a fix release for the 8.1.x feature branch. If you were having issues with type checking tools like pyright or mypy not accepting uses of Clic
This is a fix release for the 8.1.x feature branch. If you were having issues with type checking tools like pyright or mypy not accepting uses of Click's decorators, this should fix that.
Released 2023-07-18
@click.group(). {issue}2558This is a fix release for the 8.1.x feature branch. This fixes an issue with decorator type annotations that caused type checkers to fail for valid co
This is a fix release for the 8.1.x feature branch. This fixes an issue with decorator type annotations that caused type checkers to fail for valid code. There are no runtime behavior changes.
Released 2023-07-13
@click.command(), @click.option(), and
other decorators. Introduce typing tests. {issue}2558This is a fix release for the 8.1.x feature branch.
This is a fix release for the 8.1.x feature branch.
Released 2023-07-06
typing.Dict occurrences to typing.MutableMapping for
parameter hints. {issue}22552398shell_completion.add_completion_class
function. {pr}24212461.) in the program name. {issue}21662268click.clear(). {issue}228423322368fpath. {issue}2344.EOFError and KeyboardInterrupt tracebacks are not suppressed when
standalone_mode is disabled. {issue}2380@group.command does not fail if the group was created with a custom
command_class. {issue}2416multiple=True is allowed for flag options again and does not require
setting default=(). {issue}2246, 2292, 2295@argument() and @option() reusable when the
cls parameter is used. {issue}2294�). {issue}239523552554echo() does not fail when no streams are attached, such as with pythonw on
Windows. {issue}2415expose_value=False do not cause completion to fail. {issue}2336This is a fix release for the 8.1.0 feature release.
This is a fix release for the 8.1.0 feature release.
Released 2022-04-28
typing.Callable for @command and
@group. {issue}2255multiple=True, is_flag=True. Use count instead.
{issue}2246This is a fix release for the 8.1.0 feature release.
This is a fix release for the 8.1.0 feature release.
Released 2022-03-31
2236Path, placing the executable
parameter at the end. It is recommended to use keyword arguments
instead of positional arguments. {issue}2235This is a fix release for the 8.1.0 feature release.
This is a fix release for the 8.1.0 feature release.
Released 2022-03-30
2227This is a feature release, which includes new features and removes previously deprecated features. The 8.1.x branch is now the supported bugfix branch…
This is a feature release, which includes new features and removes previously deprecated features. The 8.1.x branch is now the supported bugfix branch, the 8.0.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as pip-tools to pin all dependencies and control upgrades.
Released 2022-03-28
Drop support for Python 3.6. {pr}2129
Remove previously deprecated code. {pr}2130
Group.resultcallback is renamed to result_callback.autocompletion parameter to Command is renamed to
shell_complete.get_terminal_size is removed, use
shutil.get_terminal_size instead.get_os_args is removed, use sys.argv[1:] instead.Rely on {pep}538 and {pep}540 to handle selecting UTF-8 encoding
instead of ASCII. Click's locale encoding detection is removed.
{issue}2198
Single options boolean flags with show_default=True only show
the default if it is True. {issue}1971
The command and group decorators can be applied with or
without parentheses. {issue}1359
The Path type can check whether the target is executable.
{issue}1961
Command.show_default overrides Context.show_default, instead
of the other way around. {issue}1963
Parameter decorators and @group handles cls=None the same as
not passing cls. @option handles help=None the same as
not passing help. {issue}##1959
A flag option with required=True requires that the flag is
passed instead of choosing the implicit default value. {issue}1978
Indentation in help text passed to Option and Command is
cleaned the same as using the @option and @command
decorators does. A command's epilog and short_help are also
processed. {issue}1985
Store unprocessed Command.help, epilog and short_help
strings. Processing is only done when formatting help text for
output. {issue}2149
Allow empty str input for prompt() when
confirmation_prompt=True and default="". {issue}2157
Windows glob pattern expansion doesn't fail if a value is an invalid
pattern. {issue}2195
It's possible to pass a list of params to @command. Any
params defined with decorators are appended to the passed params.
{issue}2131.
@command decorator is annotated as returning the correct type if
a cls argument is used. {issue}2211
A Group with invoke_without_command=True and chain=False
will invoke its result callback with the group function's return
value. {issue}2124
to_info_dict will not fail if a ParamType doesn't define a
name. {issue}2168
Shell completion prioritizes option values with option prefixes over
new options. {issue}2040
Options that get an environment variable value using
autoenvvar_prefix treat an empty value as None, consistent
with a direct envvar. {issue}2146
Changes: https://click.palletsprojects.com/en/8.0.x/changes/#version-8-0-4
Released 2022-02-18
open_file recognizes Path("-") as a standard stream, the
same as the string "-". {issue}2106option and argument decorators preserve the type
annotation of the decorated function. {pr}2155__str__ instead of always showing (dynamic). {issue}20992163echo and secho file argument.
{issue}2174, 2185Changes: https://click.palletsprojects.com/en/8.0.x/changes/#version-8-0-3
Released 2021-10-10
Path(resolve_path=True) type creating invalid
paths. {issue}2088readline does not cause the confirm() prompt to
disappear when pressing backspace. {issue}2092invoke() are cast to the
corresponding parameter's type. {issue}2089, 2090Changes: https://click.palletsprojects.com/en/8.0.x/changes/#version-8-0-2
Released 2021-10-08
is_bool_flag is not set to True if is_flag is False.
{issue}19251940default value is not shown for multiple=True.
{issue}19691929Path type with resolve_path=True resolves relative symlinks
to be relative to the containing directory. {issue}19211738, 2017type argument in prompt function.
{issue}20622058count=True will not show "[x>=0]" in help text.
{issue}20722085multiple and flag_value use the flag value
instead of leaving an internal placeholder. {issue}2001Changes: https://click.palletsprojects.com/en/8.0.x/changes/#version-8-0-1
Released 2021-05-19
1879Context.obj as Any so type checking allows all
operations on the arbitrary object. {issue}18851882ProgressBar object.
{issue}1892importlib_metadata backport package is installed on Python <
3.8. {issue}1889nargs=-1 only use env var value if no command
line values are given. {issue}1903flag_value if given, like
regular options do from default. {issue}18861898command.name, fixing an unintended change to help text and
default_map lookups. When using patterns like AliasedGroup,
override resolve_command to change the name that is returned if
needed. {issue}18951889windows_expand_args=False when calling the main command to
disable pattern expansion on Windows. There is no way to escape
patterns in CMD, so if the program needs to pass them on as-is then
expansion must be disabled. {issue}1901New major versions of all the core Pallets libraries, including Click 8.0, have been released! :tada:
New major versions of all the core Pallets libraries, including Click 8.0, have been released! :tada:
This represents a significant amount of work, and there are quite a few changes. Be sure to carefully read the changelog, and use tools such as pip-compile and Dependabot to pin your dependencies and control your updates.
Released 2021-05-11
Drop support for Python 2 and 3.5.
Colorama is always installed on Windows in order to provide style
and color support. {pr}1784
Adds a repr to Command, showing the command name for friendlier
debugging. {issue}1267, {pr}1295
Add support for distinguishing the source of a command line
parameter. {issue}1264, {pr}1329
Add an optional parameter to ProgressBar.update to set the
current_item. {issue}1226, {pr}1332
version_option uses importlib.metadata (or the
importlib_metadata backport) instead of pkg_resources. The
version is detected based on the package name, not the entry point
name. The Python package name must match the installed package
name, or be passed with package_name=. {issue}1582
If validation fails for a prompt with hide_input=True, the value
is not shown in the error message. {issue}1460
An IntRange or FloatRange option shows the accepted range in
its help text. {issue}1525, {pr}1303
IntRange and FloatRange bounds can be open (<) instead
of closed (<=) by setting min_open and max_open. Error
messages have changed to reflect this. {issue}1100
An option defined with duplicate flag names ("--foo/--foo")
raises a ValueError. {issue}1465
echo() will not fail when using pytest's capsys fixture on
Windows. {issue}1590
Resolving commands returns the canonical command name instead of the
matched name. This makes behavior such as help text and
Context.invoked_subcommand consistent when using patterns like
AliasedGroup. {issue}1422
The BOOL type accepts the values "on" and "off". {issue}1629
A Group with invoke_without_command=True will always invoke
its result callback. {issue}1178
nargs == -1 and nargs > 1 is parsed and validated for
values from environment variables and defaults. {issue}729
Detect the program name when executing a module or package with
python -m name. {issue}1603
Include required parent arguments in help synopsis of subcommands.
{issue}1475
Help for boolean flags with show_default=True shows the flag
name instead of True or False. {issue}1538
Non-string objects passed to style() and secho() will be
converted to string. {pr}1146
edit(require_save=True) will detect saves for editors that exit
very fast on filesystems with 1 second resolution. {pr}1050
New class attributes make it easier to use custom core objects
throughout an entire application. {pr}938
Command.context_class controls the context created when
running the command.Context.invoke creates new contexts of the same type, so a
custom type will persist to invoked subcommands.Context.formatter_class controls the formatter used to
generate help and usage.Group.command_class changes the default type for
subcommands with @group.command().Group.group_class changes the default type for subgroups
with @group.group(). Setting it to type will create
subgroups of the same type as the group itself.super() consistently for better support of
subclassing.Use Context.with_resource() to manage resources that would
normally be used in a with statement, allowing them to be used
across subcommands and callbacks, then cleaned up when the context
ends. {pr}1191
The result object returned by the test runner's invoke() method
has a return_value attribute with the value returned by the
invoked command. {pr}1312
Required arguments with the Choice type show the choices in
curly braces to indicate that one is required ({a|b|c}).
{issue}1272
If only a name is passed to option(), Click suggests renaming it
to --name. {pr}1355
A context's show_default parameter defaults to the value from
the parent context. {issue}1565
click.style() can output 256 and RGB color codes. Most modern
terminals support these codes. {pr}1429
When using CliRunner.invoke(), the replaced stdin file has
name and mode attributes. This lets File options with
the - value match non-testing behavior. {issue}1064
When creating a Group, allow passing a list of commands instead
of a dict. {issue}1339
When a long option name isn't valid, use difflib to make better
suggestions for possible corrections. {issue}1446
Core objects have a to_info_dict() method. This gathers
information about the object's structure that could be useful for a
tool generating user-facing documentation. To get the structure of
an entire CLI, use Context(cli).to_info_dict(). {issue}461
Redesign the shell completion system. {issue}1484, {pr}1622
autocompletion parameter for options and arguments is
renamed to shell_complete. The function must take
ctx, param, incomplete, must do matching rather than return
all values, and must return a list of strings or a list of
CompletionItem. The old name and behavior is deprecated and
will be removed in 8.1.{shell}_source rather
than source_{shell}, and is always required.Completion correctly parses command line strings with incomplete
quoting or escape sequences. {issue}1708
Extra context settings (obj=..., etc.) are passed on to the
completion system. {issue}942
Include --help option in completion. {pr}1504
ParameterSource is an enum.Enum subclass. {issue}1530
Boolean and UUID types strip surrounding space before converting.
{issue}1605
Adjusted error message from parameter type validation to be more
consistent. Quotes are used to distinguish the invalid value.
{issue}1605
The default value for a parameter with nargs > 1 and
multiple=True must be a list of tuples. {issue}1649
When getting the value for a parameter, the default is tried in the
same section as other sources to ensure consistent processing.
{issue}1649
All parameter types accept a value that is already the correct type.
{issue}1649
For shell completion, an argument is considered incomplete if its
value did not come from the command line args. {issue}1649
Added ParameterSource.PROMPT to track parameter values that were
prompted for. {issue}1649
Options with nargs > 1 no longer raise an error if a default is
not given. Parameters with nargs > 1 default to None, and
parameters with multiple=True or nargs=-1 default to an
empty tuple. {issue}472
Handle empty env vars as though the option were not passed. This
extends the change introduced in 7.1 to be consistent in more cases.
{issue}1285
Parameter.get_default() checks Context.default_map to
handle overrides consistently in help text, invoke(), and
prompts. {issue}1548
Add prompt_required param to Option. When set to False,
the user will only be prompted for an input if no value was passed.
{issue}736
Providing the value to an option can be made optional through
is_flag=False, and the value can instead be prompted for or
passed in as a default value.
{issue}549, 736, 764, 921, 1015, 1618
Fix formatting when Command.options_metavar is empty. {pr}1551
Revert adding space between option help text that wraps.
{issue}1831
The default value passed to prompt will be cast to the correct
type like an input value would be. {pr}1517
Automatically generated short help messages will stop at the first
ending of a phrase or double linebreak. {issue}1082
Skip progress bar render steps for efficiency with very fast
iterators by setting update_min_steps. {issue}676
Respect case_sensitive=False when doing shell completion for
Choice {issue}1692
Use mkstemp() instead of mktemp() in pager implementation.
{issue}1752
If Option.show_default is a string, it is displayed even if
default is None. {issue}1732
click.get_terminal_size() is deprecated and will be removed in
8.1. Use {func}shutil.get_terminal_size instead. {issue}1736
Control the location of the temporary directory created by
CLIRunner.isolated_filesystem by passing temp_dir. A custom
directory will not be removed automatically. {issue}395
click.confirm() will prompt until input is given if called with
default=None. {issue}1381
Option prompts validate the value with the option's callback in
addition to its type. {issue}457
confirmation_prompt can be set to a custom string. {issue}723
Allow styled output in Jupyter on Windows. {issue}1271
style() supports the strikethrough, italic, and
overline styles. {issue}805, 1821
Multiline marker is removed from short help text. {issue}1597
Restore progress bar behavior of echoing only the label if the file
is not a TTY. {issue}1138
Progress bar output is shown even if execution time is less than 0.5
seconds. {issue}1648
Progress bar item_show_func shows the current item, not the
previous item. {issue}1353
The Path param type can be passed path_type=pathlib.Path to
return a path object instead of a string. {issue}405
TypeError is raised when parameter with multiple=True or
nargs > 1 has non-iterable default. {issue}1749
Add a pass_meta_key decorator for passing a key from
Context.meta. This is useful for extensions using meta to
store information. {issue}1739
Path resolve_path resolves symlinks on Windows Python < 3.8.
{issue}1813
Command deprecation notice appears at the start of the help text, as
well as in the short help. The notice is not in all caps.
{issue}1791
When taking arguments from sys.argv on Windows, glob patterns,
user dir, and env vars are expanded. {issue}1096
Marked messages shown by the CLI with gettext() to allow
applications to translate Click's built-in strings. {issue}303
Writing invalid characters to stderr when using the test runner
does not raise a UnicodeEncodeError. {issue}848
Fix an issue where readline would clear the entire prompt()
line instead of only the input when pressing backspace. {issue}665
Add all kwargs passed to Context.invoke() to ctx.params.
Fixes an inconsistency when nesting Context.forward() calls.
{issue}1568
The MultiCommand.resultcallback decorator is renamed to
result_callback. The old name is deprecated. {issue}1160
Fix issues with CliRunner output when using echo_stdin=True.
{issue}1101
Fix a bug of click.utils.make_default_short_help for which the
returned string could be as long as max_width + 3. {issue}1849
When defining a parameter, default is validated with
multiple and nargs. More validation is done for values being
processed as well. {issue}1806
HelpFormatter.write_text uses the full line width when wrapping
text. {issue}1871
Changes: https://click.palletsprojects.com/en/master/changes/#version-8-0
Changes: https://click.palletsprojects.com/en/master/changelog/#version-8-0
Changes: https://click.palletsprojects.com/en/7.x/changelog/#version-7-1-2
Released 2020-04-27
echo_with_pager
and edit. This was intended to allows spaces in commands, but
caused issues if the string was actually a command and arguments, or
on Windows. Instead, the string must be quoted manually as it should
appear on the command line. {issue}1514Changes: https://click.palletsprojects.com/en/7.x/changelog/#version-7-1-1
Released 2020-03-09
ClickException output going to stdout instead of stderr.
{issue}1495Changes: https://click.palletsprojects.com/en/7.x/changelog/#version-7-1
Released 2020-03-09
unicode_literals error message. {pr}115111851216bytes. {pr}119511161342OSError when running in MSYS2. {issue}1338OSError when redirecting to NUL stream on Windows.
{issue}106511361462click.Choice
{issue}1277, {pr}1318no_args_is_help option to click.Command, defaults to
False {pr}1167show_default parameter to Context to enable showing
defaults globally. {issue}1018env MYPATH='' as though the option were not passed.
{issue}1196next(bar) on an active
progress bar instance. {issue}1125open_file with atomic=True retains permissions of existing
files and respects the current umask for new files. {issue}1376CliRunner with mix_stderr=False, if
result.stderr is empty it will not raise a ValueError.
{issue}1193mix_stderr parameter from
CliRunner.invoke. {issue}1435TypeError raised when using bool flags and specifying
type=bool. {issue}1287834MissingParameter exceptions are printable in the Python
interpreter. {issue}1139914-. {issue}1253834, 1066, 13971075sensible-editor when determining the editor to use for
click.edit(). {pr}1469click.edit can contains spaces. {pr}14701348Command, Group, Option, and Argument,
showing the name for friendlier debugging. {issue}1267- after the -- separator. {issue}12471418142314681492Added deprecation flag to commands. {pr}1005
Released 2018-09-25
967, 976click.Choice's missing message. {issue}202, {pr}1000323, {pr}865334CliRunner. {issue}334,
{pr}1010--help option. {issue}393,
{pr}557409, {pr}889414DateTime type for converting input in given date time
formats. {pr}423secho's first argument can now be None, like in echo.
{pr}424ZeroDivisionError in ProgressBar.make_step, when the
arg passed to the first call of ProgressBar.update is 0.
{issue}447, {pr}1012487500required=True. {issue}514,
{pr}1022Context.exit return the exit code,
rather than calling sys.exit. {issue}667, {pr}533, 1098click.getchar() returns Unicode in Python 3 on Windows,
consistent with other platforms. {issue}537, 821, 822, 1088,
{pr}1108FloatRange type. {pr}538, 553type=click.Choice for
Options and Arguments. {issue}535, {pr}681Argument parameter
declaration. {issue}568, 574, {pr}1014case_sensitive=False as an option to Choice. {issue}569click.getchar() correctly raises KeyboardInterrupt on "^C"
and EOFError on "^D" on Linux. {issue}583, {pr}1115click.getchar(echo=True) on Linux.
{pr}1115param_hint in errors now derived from param itself.
{issue}598, 704, {pr}709612prog_name as extra in CliRunner.invoke.
{issue}616, {pr}999\f form feed
character, useful for hiding Sphinx-style parameter documentation.
{pr}629, 1091launch now works properly under Cygwin. {pr}650651, {pr}706CliRunner.invoke now may receive args as a string
representing a Unix shell command. {pr}664Argument.make_metavar() default to type metavar. {pr}675ignore_unknown_options. {pr}684click.style and fix the reset
option for parameters fg and bg. {issue}703, {pr}809show_envvar for showing environment variables in help.
{pr}710BrokenPipeError during interpreter shutdown when stdout or
stderr is a closed pipe. {issue}712, {pr}1106725, {pr}1016sys._getframes() on Python interpreters that don't
support it. {pr}728sys.exit with None.
{pr}739741,
{pr}1003744754, {pr}774755773790,
{pr}806793, {pr}794795, {pr}1020Option naming: functionality.
{pr}799path_type. {pr}801807click.echo on Windows. {issue}816,
{pr}819825, {pr}830842NoSuchOption errors take ctx so that --help hint gets
printed in error output. {pr}860862863866,
{pr}869CliRunner to separate stdout and stderr. {pr}868873, {pr}874877ResourceWarning that occurs during some tests. {pr}878locale
command fails. {pr}880case_sensitive=False as an option to Choice types.
{pr}887918919, {pr}930_AtomicFile now uses the realpath of the original filename
so that changing the working directory does not affect it. {pr}920925,
{pr}930926, {pr}994"-".
{pr}929__all__ list. {pr}935949, {pr}1009954962fcntl import. {pr}965ImportError. {pr}995996get_winter_size() so it correctly returns (0,0).
{pr}9971001100210041005fd was undefined. {pr}10071008auto_envvar_prefix works with command groups.
{pr}101110131047,
{pr}10591055my_command it becomes my-command in the command line
interface.1058,
{pr}10611068, {pr}1069auto_envvar_prefix would not be
converted to uppercase. {pr}1105Make click.progressbar work with codecs.open files. {pr}637
Released 2017-01-06
click.progressbar work with codecs.open files.
{pr}63763964462711Nothing published for this version
Fix bug in click.Path where it would crash when passed a -. {issue}551
Released 2016-04-04
click.Path where it would crash when passed a -.
{issue}551Nothing published for this version
Fix bug in bash completion where click would discard one or more trailing arguments. {issue}471
Released 2016-03-24
471Fix argument checks for interpreter invoke with -m and -c on Windows.
Released 2016-02-22
-m and -c on
Windows.Correct fix for hidden progress bars.
Released 2015-11-27
Resolved an issue with invisible progress bars no longer rendering.
Released 2015-11-27
MissingParameter not working without parameters passed.Released 2015-11-24, codename "pow pow"
Released 2015-11-24, codename "pow pow"
nargs=-1 with a set default.Path type which means that this can
introduce small bugs for code not aware of this.type parameter to Path to force a specific string
type on the value.echo and prompt
functions now work with full unicode functionality in the Python
windows console by emulating an output stream. This also applies to
getting the virtual output and input streams via
click.get_text_stream(...).Path type.Fix a bug in pass_obj that would accidentally pass the context too.
Released 2015-08-17
pass_obj that would accidentally pass the context
too.Removed various deprecated functionality.
Released 2015-08-16, codename "tok tok"
w mode.CliRunner.get_current_context.meta dictionary to the context which is shared across
the linked list of contexts to allow click utilities to place state
there.Context.scope.echo function is now threadsafe: It calls the write
method of the underlying object only once.prompt(hide_input=True) now prints a newline on ^C.unicode_literals.PAGER environment variable if it is
empty or contains only whitespace.click-contrib GitHub organization was created.Fix a bug where error messages would include a trailing None string.
Released 2015-07-14
None
string.None on Python 3 by barfing
with a better error.None from sys.getfilesystemencodingclick.echo.Released 2015-03-31, codename "zoom zoom"
Released 2015-03-31, codename "zoom zoom"
color parameters to lots of interfaces that directly or
indirectly call into echoing. This previously was always
autodetection (with the exception of the echo_via_pager
function). Now you can forcefully enable or disable it, overriding
the auto detection of Click.UNPROCESSED type which does not perform any type
changes which simplifies text handling on 2.x / 3.x in some special
advanced usecases.NoSuchOption and BadOptionUsage exceptions for more
generic handling of errors.max_content_width parameter to the context which can be
used to change the maximum width of help output. By default Click
will not format content for more than 80 characters width.option and argument.clear() on Windows when colorama is installed.nargs=-1 for options properly. Options cannot be
variadic.Fixed an issue with error reporting on Python 3 for invalid forwarding of commands.
Released 2014-09-08
Fixed default parameters not being handled properly by the context invoke method. This is a backwards incompatible change if the function was used imp…
Released 2014-08-22
err parameter forwarding to the secho
function.invoked_subcommands attribute largely. It is not
possible to provide it to work error free due to how the parsing
works so this API has been deprecated.invoked_subcommand which was
broken as a regression in 3.1.Fixed a regression that caused contexts of subcommands to be created before the parent command was invoked which was a regression from earlier Click v
Released 2014-08-13
Released 2014-08-12, codename "clonk clonk"
Released 2014-08-12, codename "clonk clonk"
multiple and options
and arguments with nargs != 1.progressbar is no longer rendered with
whitespace stripped.main method on
a Click command to be able to handle errors better.echo.open_file.Fixed an issue where the wrapped streams on Python 3 would be reporting incorrect values for seekable.
Released 2014-08-11
Fixed a bug with text wrapping on Python 3.
Released 2014-07-28
Corrected a bug in the change of the help option in 2.3.
Released 2014-07-04
Fixed an incorrectly formatted help record for count options.
Released 2014-07-03
Fixed an issue that progress bars were not rendered when the context manager was entered.
Released 2014-06-26
Fixed the {func}launch function on windows.
Released 2014-06-14
launch function on windows.Breaking change: parameter callbacks now get the parameter object passed as second argument. There is legacy support for old callbacks which will warn…
Released 2014-06-06, codename "tap tap tap"
BadParameter which can be used to easily perform
custom validation with the same error messages as in the type
system.progressbar; a function to show progress bars.get_app_dir; a function to calculate the home folder
for configs.echo
function through colorama.clear function.style, {func}unstyle and {func}secho for ANSI
styles.edit function that invokes the default editor.launch function that launches browsers and
applications.getchar to fetch a single character from the terminal.pause which works similar to the Windows pause cmd
built-in but becomes an automatic noop if the application is not run
through a terminal.Fixed a bug that caused text files in Python 2 to not accept native strings.
Released 2014-05-23
Released 2014-05-21 - Initial release.
Released 2014-05-21
Released 2014-05-21
Initial release.
Changes
Version 8.5.1
Version 8.5.0
Version 8.4.2
Version 8.4.1
Version 8.4.0
Version 8.3.3
Version 8.3.2
Version 8.3.1
Version 8.3.0
Version 8.2.2
Version 8.2.1
Version 8.2.0
Version 8.1.8
Version 8.1.7
Version 8.1.6
Version 8.1.5
Version 8.1.4
Version 8.1.3
Version 8.1.2
Version 8.1.1
Version 8.1.0
Version 8.0.4
Version 8.0.3
Version 8.0.2
Version 8.0.1
Version 8.0.0
Version 7.1.2
Version 7.1.1
Version 7.1
Version 7.0
Version 6.7
Version 6.6
Version 6.4
Version 6.3
Version 6.2
Version 6.1
Version 6.0
Version 5.1
Version 5.0
Version 4.1
Version 4.0
Version 3.3
Version 3.2
Version 3.1
Version 3.0
Version 2.6
Version 2.5
Version 2.4
Version 2.3
Version 2.2
Version 2.1
Version 2.0
Version 1.1
Version 1.0
© Copyright 2014 Pallets. Created using Sphinx 9.1.0.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →