NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1965 most downloaded on PyPI
A Command-Line Interface framework
Last release 4 months ago
14 May 2026
Ships fairly regularly
a new release about every 6 months
Nearly every release is documented
notes for 34 of 36 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
41 releases · first in 2017
Declare support for Python 3.14 and drop support for Python 3.9
Declare support for Python 3.13
One column per quarter.
knack v0.13.0
Compare
Declare support for Python 3.12
Declare support for Python 3.11 and drop support for Python 3.7
bool default value to DefaultInt (#273)Support bytearray serialization
Enable Virtual Terminal mode on legacy Windows terminal to support ANSI escape sequences
Only install colorama on Windows
Always use UTF-8 for log file encoding
Add error message for invalid argument value
Init colorama only in Windows legacy terminal
raw_result to CommandResultItem (#235)CLILogging.configure returns as early as possible (#228)Support multiple cli loggers by adding more logger names to knack.log.cli_logger_names list
knack.log.cli_logger_names list (#227)Make config item names case-insensitive
get_logger uses module_name directly and no longer adds cli prefix (#221)CLILogging accepts a custom cli_logger_name (#221)EVENT_CLI_SUCCESSFUL_EXECUTE (#224)[Config] Support listing sections
Rollback get_config_parser in config.py
get_config_parser in config.py (#205)Add a default_value_source property in HelpParameter
default_value_source property in HelpParameter (#202)configparser directly instead of from six (#201)get_config_parser function from config.py (#201)Change the timing to raise EVENT_CLI_POST_EXECUTE event
EVENT_CLI_POST_EXECUTE event (#199)CLI.invoke catch SystemExit (#199)Change experimental tag color to cyan
Drop support for python 2 and 3.5
--only-show-errors to disable warnings (#179)Fixes issue where argument marked is_preview=True would not always be handled correctly.
This release:
is_preview=True would not always be handled correctly.Fix bug where arguments in preview did not call registered actions. This meant that parameter parsing did not behave completely as expected.
Adds a generic StatusTag class to knack.util that allows you to create your own colorized tags like [Preview] and [Deprecated].
is_preview=True.StatusTag class to knack.util that allows you to create your own colorized tags like [Preview] and [Deprecated].Always read from local for configured_default
Always read from local for configured_default
Support local context chained config file
Support local context chained config file
Allows the loading of text files using @filename syntax.
This release
@filename syntax.configured_default to support setting argument defaults via the config file's [defaults] section or an environment variable.Removes an incorrect check when adding arguments.
This release:
Updates usages of yaml.load to use yaml.safe_load.
Updates usages of yaml.load to use yaml.safe_load.
Fix issue with some scenarios (no args and --version)
Fix issue with some scenarios (no args and --version)
Adds support for positional arguments with the .positional helper method on ArgumentsContext.
cmd in the signature.cli_name --verbose/debug is used. Displays the welcome message as intended.Preserves logging verbosity and output format on the namespace for use by validators.
Preserves logging verbosity and output format on the namespace for use by validators.
Adds ability to set config file name. Fixes bug with argument deprecations.
Adds ability to set config file name. Fixes bug with argument deprecations.
Fixes issue where values were sometimes ignored when using deprecated options regardless of which option was given.
Fixes issue where values were sometimes ignored when using deprecated options regardless of which option was given.
Bug fixes: [output]: disable number parse on table mode PR #88
Bug fixes: [output]: disable number parse on table mode PR #88
Version 0.4.0 introduced deprecation to Knack. This release fixes a bug related to that.
Version 0.4.0 introduced deprecation to Knack. This release fixes a bug related to that.
store_true.Version 0.4.0 also added the concept of the command group table to the CommandsLoader class. This release corrects an issue related to that:
Fixes bug with deprecation mechanism.
Fixes an issue where the command group table would only be filled by calls to create CommandGroup classes. This resulted in some gaps in the command group table.
Add mechanism to deprecate commands, command groups, arguments and argument options.
expose a callback to let client side perform extra logics
ArgumentsContext.ignore() should use hidden options_list
Performance optimization - Delay import of platform and colorama
Nothing published for this version
Support command level and argument level validators.
command_cls argument so you can provide your own CLICommand class.cli_command, register_cli_argument, register_extra_cli_argument as ways to register commands and arguments.Add more types of command and argument loaders.
* Initial release
Initial release
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →