Cmd2

Latest version: v2.5.11

Safety actively analyzes 723158 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 17

2.5.5

- Bug Fixes
- Fixed type hints for passing a class method to `with_argparser` and `as_subcommand_to`.
- Fixed issue where `set` command was not always printing a settable's current value.

2.5.4

- Bug Fixes
- Fixed `ZeroDivisionError` in `async_alert()` when `shutil.get_terminal_size().columns` is 0.

2.5.3

- Enhancements
- Changed `CommandSet._cmd` to a read-only property which never returns `None` because it
is meant to be called after the `CommandSet` is registered. This addresses type checker
errors that occurred if `CommandSet._cmd` wasn't cast or checked if `None` before use.

2.5.2

- Bug Fixes
- Fixed default `pytest` execution when not using cmd2's custom `invoke` command via `inv pytest`

2.5.1

- Bug Fixes
- Fixed readline bug when using `ipy` command with `gnureadline` and Python 3.13

2.5.0

- Breaking Change
- `cmd2` 2.5 supports Python 3.8+ (removed support for Python 3.6 and 3.7)
- Bug Fixes
- Fixed issue where persistent history file was not saved upon SIGHUP and SIGTERM signals.
- Multiline commands are no longer fragmented in up-arrow history.
- Fixed bug where `async_alert()` overwrites readline's incremental and non-incremental search prompts.
- This fix introduces behavior where an updated prompt won't display after an aborted search
until a user presses Enter. See [async_printing.py](https://github.com/python-cmd2/cmd2/blob/master/examples/async_printing.py)
example for how to handle this case using `Cmd.need_prompt_refresh()` and `Cmd.async_refresh_prompt()`.
- Enhancements
- Removed dependency on `attrs` and replaced with [dataclasses](https://docs.python.org/3/library/dataclasses.html)
- add `allow_clipboard` initialization parameter and attribute to disable ability to
add output to the operating system clipboard
- Updated unit tests to be Python 3.13 compliant.
- Fall back to bz2 compression of history file when lzma is not installed.
- Added settable called `scripts_add_to_history` which determines whether scripts and pyscripts
add commands to history.
- Deletions (potentially breaking changes)
- Removed `apply_style` from `Cmd.pwarning()`.

Page 2 of 17

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.