Typer is a Python library for building command line interfaces (CLIs) that are easy to write, based on Python type hints. It generates automatic help and shell auto completion, and can also run existing scripts by converting them into CLI applications using the `typer` command.
Project status
- Actively maintained: Updates are recent, with the latest upstream push on 2026-10-06 and 0.27.3 released the same day, indicating ongoing maintenance rather than a dormant project.
- Apparent cadence: From 2026-05-30 (0.26.4) to 2026-10-06 (0.27.3) there have been multiple updates, with typical spacing of roughly 4 to 8 weeks between minor/patch-level changes.
AI summary generated
Recent updates
0.28.0
Typer 0.28.0 fixes how metavar values affect automatically generated option names, and enables Ruff formatting for Python code in Markdown files. The code diff otherwise contains documentation formatting, typing annotation updates, and dependency and CI workflow refreshes.
Breaking0.27.3
Release 0.27.3 primarily addresses terminal control character handling by escaping untrusted diagnostic values in error messages. It also includes several internal maintenance updates, including dependency bumps and test/doc updates to cover the new behavior.
Security0.27.2
Release 0.27.2 introduces a new `typer.exceptions` module with a `TyperException` base class and related `Abort`/`Exit` exceptions, and it updates docs to fix the terminal “fast” control rendering. It also includes internal CI/refactor work for GitHub workflows (label handling and pull request automation) plus dependency/version updates for tooling.
Features0.27.1
Release 0.27.1 focuses on help-text presentation, specifically making the `epilog` portion of Typer help strings consistent, and includes multiple documentation updates. It also updates the internal `latest-changes` GitHub Action to a newer version.
BreakingFeatures0.27.0
Release 0.27.0 primarily changes how Typer prints metavers (argument placeholders) in help output. The release notes only explicitly call out “Update metavar printing”, while the diff also shows additional changes in docs rendering and CI/dependency maintenance.
Breaking0.26.8
Typer 0.26.8 focuses on Rich help output formatting fixes, specifically making the second column consistently reflect the argument and option types even when metavar is customized via Typer. It also includes a small formatting fix to NoSuchOption.format_message(), plus several internal CI and dependency maintenance updates.
0.26.7
Release 0.26.7 updates Typer's URL launching behavior on Linux/BSD when using xdg-open. The change ensures the `wait` parameter is honored, so callers can opt out of blocking. Documentation also reflects the adjusted behavior.
0.26.6
Typer 0.26.6 includes a fix for how list arguments (nargs=-1 style) resolve defaults when the argument is not provided. The release also contains an internal CI adjustment to reshuffle the test matrix. Additionally, some contributor-facing test tooling dependencies (pytest-related) were bumped.
0.26.5
This release (0.26.5) focuses on making Typer consistently hide commands marked as hidden from the generated help output. It also performs internal cleanup by removing old stub package artifacts. The functional change is implemented in Typer’s command formatting logic and is covered by new tests.
Breaking0.26.4
Release 0.26.4 primarily updates internal GitHub release automation (draft release creation on merged PRs, a new prepare-release workflow, labeler label handling, and publish workflow adjustments). The only library/runtime code change shown is bumping Typer's __version__ to 0.26.4, plus a documentation change to the AI skill prompt content and a development dependency lockfile refresh.
Features0.26.3
Release 0.26.3 is primarily described as an internal refactor to unify Typer's testing functionality, plus a minor GitHub workflow maintenance update. The code diff shows the testing implementation was substantially reorganized, including module removal and public-facing constructor signature changes.
Breaking0.26.2
Release 0.26.2 makes a targeted fix for how Typer reads environment variables for `typer.Option` when the option represents multiple values (for example `list[str]`). It also updates the test suite to cover the whitespace-splitting behavior.
0.26.1
Release 0.26.1 includes a fix ensuring environment variables specified via `typer.Option(envvar=...)` are correctly used when the option is required. It also bumps the `python-dotenv` dependency from 1.2.1 to 1.2.2.
0.26.0
Typer 0.26.0 introduces a major structural change by vendoring Click and updating documentation around usage and dependencies. The release notes also include several internal maintenance items such as dependency/CI workflow adjustments and doc cleanups.
Breaking