Skip to content

Release Notes

Latest Changes

  • ⬆ [] pre-commit autoupdate. PR #606 by @pre-commit-ci[bot].
  • 👷 Install MkDocs Material Insiders only when secrets are available, for Dependabot. PR #685 by @tiangolo.
  • ⚒️ Update build-docs.yml, do not zip docs. PR #645 by @tiangolo.
  • 👷 Deploy docs to Cloudflare. PR #644 by @tiangolo.
  • 👷 Upgrade CI for docs. PR #642 by @tiangolo.
  • 👷 Update token for latest changes. PR #635 by @tiangolo.
  • 👷 Update CI workflow dispatch for latest changes. PR #643 by @tiangolo.
  • 👷 Update token for Material for MkDocs Insiders. PR #636 by @tiangolo.
  • 🐛 Fix internal type annotations and bump mypy version. PR #638 by @paulo-raca.
  • 📝 Remove obsolete references to --install-completion for scripts. PR #595 by @tiangolo.


  • 👷 Upgrade latest-changes GitHub Action. PR #691 by @tiangolo.



  • ✨ Add support for PEP-593 Annotated for specifying options and arguments. Initial PR #584 by @ryangalamb.
    • New docs: Optional CLI arguments.
    • It is no longer required to pass a default value of ... to mark a CLI Argument or CLI Option as required.
    • It is now recommended to use Annotated for typer.Option() and typer.Argument().
    • All the docs have been updated to recommend Annotated.


  • 📝 Update docs examples for custom param types using Annotated, fix overloads for typer.Argument. PR #594 by @tiangolo.






  • 📝 Tweak docs, Custom Types path, main page and READAME colors, broken links. PR #588 by @tiangolo.
  • ✏ Fix spelling (shinny -> shiny). PR #586 by @runofthemill.
  • 📝 Update docs about helping Typer. PR #547 by @tiangolo.
  • ✏️ Fix typo in datetime docs. PR #495 by @huxuan.
  • ✏️ Add quotes to package name that includes brackets in docs. PR #475 by @gjolga.





  • 🎨 Fix type annotation of PR #284 by @yassu.
  • 🎨 Fix type annotations for get_group. PR #430 by @tiangolo.


  • 📝 Add note about how subcommands with function names using underscores are converted to dashes. PR #403 by @targhs.
  • 📝 Fix typo in docs at docs/tutorial/commands/ PR #466 by @fepegar.
  • ✏ Fix link in docs to datetime.strptime(). PR #464 by @Kobu.
  • ✏ Update, clarify distinction between parameter and argument. PR #176 by @mccarthysean.
  • ✏ Fix broken plac link. PR #275 by @mgielda.




  • 🐛 Fix setting FORCE_TERMINAL with colors 2. PR #424 by @tiangolo.
  • 🐛 Fix setting FORCE_TERMINAL with colors. PR #423 by @tiangolo.


This release adds deep integrations with Rich. ✨

rich is an optional dependency, you can install it directly or it will be included when you install with:

$ pip install "typer[all]"

If Rich is available, it will be used to show the content from --help options, validation errors, and even errors in your app (exception tracebacks).

There are new options to group commands, CLI arguments, and CLI options, support for Rich Console Markup, and more! 🎉






  • ✨ Add pretty error tracebacks for user errors and support for Rich. PR #412 by @tiangolo.


  • ✏ Fix typo, "ASCII codes" to "ANSI escape sequences". PR #308 by @septatrix.



  • 🐛 Fix type conversion for List and Tuple and their internal types. PR #143 by @hellowhistler.
  • 🐛 Fix context_settings for a Typer app with a single command. PR #210 by @daddycocoaman.


  • 📝 Clarify testing documentation about checking stderr. PR #335 by @cgabard.
  • ✏ Fix typo in docs for CLI Option autocompletion. PR #288 by @graue70.
  • 🎨 Fix header format for "Standard Input" in docs/tutorial/ PR #386 by @briancohan.
  • ✏ Fix typo in docs/tutorial/ PR #382 by @kianmeng.
  • ✏ Fix syntax typo in docs/tutorial/ PR #333 by @ryanstreur.
  • ✏ Fix typo, duplicated word in docs/tutorial/options/ PR #316 by @michaelriri.
  • ✏ Fix minor typo in PR #274 by @RmStorm.
  • ✏ Fix double "and" typo in first-steps tutorial. PR #225 by @softwarebloat.
  • 🎨 Fix format in docs explaining datetime parameter type. PR #220 by @DiegoPiloni.




  • 🐛 Fix import of get_terminal_size for Click 8.1.0 support and upgrade Black to fix CI. PR #380 by @tiangolo based on original PR #375 by @madkinsz.


  • 📝 Add Jina's QA Bot to the docs to help people that want to ask quick questions. PR #368 by @tiangolo.
  • 💚 Only test on push when on master, avoid duplicate CI runs from PRs. PR #358 by @tiangolo.
  • ✨ Add support for previewing docs in PRs from forks and enable MkDocs Insiders. PR #357 by @tiangolo.
  • ⬆️ Upgrade MkDocs Material, MDX-Include, and MkDocs structure. PR #356 by @tiangolo.
  • 👷 Update publish GitHub action. PR #325 by @tiangolo.



  • ✨ Add support for Click 8 while keeping compatibility with Click 7. PR #317 by @tiangolo.





  • Update docs with new --help showing default values. PR #135 by @victorphoenix3.
  • Add Optional to docs for CLI Arguments and Options with a default of None. PR #131 by @rkbeatss.
  • Add valid date formats to docs. PR #122 by @IamCathal.


  • Report coverage in XML to support GitHub Actions. PR #146.
  • Update badges and remove Travis, now that GitHub Actions is the main CI. PR #145.


  • Add GitHub Actions, move from Travis. PR #144.
  • Pin dependencies. PR #138.
  • Add Dependabot. PR #136.
  • Upgrade Isort to version 5.x.x. PR #137.



  • Add support for forward references (types declared inside of strings). PR #93.


  • Add support for completion for commands/programs not available on startup.
    • This allows installing a Typer program/script in a virtual environment and still have completion globally installed.
    • PR #92.
  • Add note about typer.echo() and print() for colors in Windows. PR #89.
  • Upgrade Mkdocs-Material version, update contributing guide style. PR #90.


  • Fix completion evaluation for Bash and Zsh when the program is not installed/found. PR #83.
  • Fix completion script for Fish. PR #82.
  • Fix shell installation for Bash to ~/.bashrc and update Windows development docs. PR #81.
  • Update coverage badge. PR #78.



  • Re-implement completion system:
    • Remove optional dependency click-completion (with its sub-dependencies, like Jinja).
    • Add optional dependency shellingham to auto detect shell to install (it was used by click-completion).
    • Completion now doesn't require a third party library.
      • If shellingham is not installed/added as a dependency, --install-completion and --show-completion take a value with the name of the shell.
    • Fix support for user provided completion in CLI Parameters.
    • Fix completion for files in Bash, Zsh, and Fish.
    • Add support for modern versions of PowerShell, 5, 6, and 7 (e.g. in Windows 10).
    • Add support for pwsh (PowerShell Core).
      • PowerShell support includes help strings for commands and CLI Parameters.
    • Several bug fixes.
    • Tests for the completion logic/code.
    • Tested in all the shells in Linux and Windows.
    • PR #66.
  • Fix format in docs with highlighted lines. PR #65.
  • Add docs about Typer CLI - completion for small scripts. PR #64.
  • Add docs about Alternatives, Inspiration and Comparisons. PR #62.
  • Add Development - Contributing Guide. PR #61.


  • Add support for Click version 7.1.1. PR #60.


  • Add support for PEP 561, to allow mypy to type check applications built with Typer. PR #58.
  • Upgrade deploy docs to Netlify GitHub action. PR #57.
  • Add support for Mermaid JS for visualizations. PR #56.
  • Update CI to run docs deployment in GitHub actions. PR #50.
  • Update format for internal links. PR #38.
  • Tweak external links' format. PR #36.





  • Clean exports from Typer. Remove unneeded components from Click and add needed Exit exception. PR #11.
  • Fix and document extracting help from a function's docstring First Steps: Document your CLI app. PR #10.
  • Update references to --install-completion and --show-completion in docs. PR #9.
  • Fix testing utilities, add tests for First Steps examples. PR #8.
  • Add auto completion options by default when click-completion is installed: --install-completion and --show-completion. PR #7.
  • Update Termynal to have fixed sizes, add "fast" button, and use it in First Steps. PR #6.
  • Add custom automatic Termynal for docs. PR #5.


  • Update short descriptions and assets.
  • Docs rewording and fix typos. PR #1 by @mariacamilagl.


  • Fix group creation without name.


  • Add initial version of code, docs, etc.


  • First commit. Publish to PyPI to reserve package name.
You can ask questions about Typer. Try:
How can I terminate a program?
How to launch applications?
How to add help to CLI argument?