NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1555 most downloaded on PyPI
CLI interfaces & config objects, from types
Last release 26 days ago
23 Aug 2026
Release timing varies
gaps range from 2 weeks to 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
4 years old
125 releases · first in 2022
One column per quarter.
Improvements for type alias support, generics, and helptext generation.
Improvements for type alias support, generics, and helptext generation.
Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.13...v0.8.14
Support suppressed arguments with duplicate names + light refactor for maintainability by @brentyi in https://github.com/brentyi/tyro/pull/174
tyro.extras (for torchrun, etc) by @brentyi in https://github.com/brentyi/tyro/pull/176typing.Annotated[] by @brentyi in https://github.com/brentyi/tyro/pull/178type statements by @brentyi in https://github.com/brentyi/tyro/pull/179Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.12...v0.8.13
Minor bug fixes, new features: tyro.conf.EnumChoicesFromValues (thanks @mcd!), tyro.extras.SubcommandApp (thanks @jedie!).
Minor bug fixes, new features: tyro.conf.EnumChoicesFromValues (thanks @mcd!), tyro.extras.SubcommandApp (thanks @jedie!).
type[T] and typing.Type[T] annotations by @brentyi in https://github.com/brentyi/tyro/pull/165--tyro-write-completion when use_underscores=True by @brentyi in https://github.com/brentyi/tyro/pull/173tyro.extras.SubcommandApp) by @brentyi in https://github.com/brentyi/tyro/pull/169Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.11...v0.8.12
Support Enum aliases by @kevinddchen in https://github.com/brentyi/tyro/pull/162
Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.10...v0.8.11
Better support for unions in completion script generation.
Better support for unions in completion script generation. (#158)
Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.9...v0.8.10
Add workaround for Python<=3.10 get_type_hints() bug in https://github.com/brentyi/tyro/pull/157
get_type_hints() bug in https://github.com/brentyi/tyro/pull/157datetime.{date,time,datetime} types in https://github.com/brentyi/tyro/pull/155Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.8...v0.8.9
Added `tyro.extras.overridable_config_cli()`.
Added tyro.extras.overridable_config_cli().
Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.7...v0.8.8
Added config= argument to tyro.cli(), which takes a sequence of tyro.conf.* markers.
config= argument to tyro.cli(), which takes a sequence of tyro.conf.* markers.Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.6...v0.8.7
Expanded type narrowing support for generics with type parameters bound to Any.
Any.collections.abc.Sequence.tyro.conf.arg(prefix_name=False) now applies recursively when custom constructors are passed in.Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.5...v0.8.6
Performance and error message improvements.
Performance and error message improvements.
tyro.cli() stack traces.tyro.cli() should run ~15% faster.Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.4...v0.8.5
Added console_outputs={True/False} argument to tyro.cli().
Main changes:
console_outputs={True/False} argument to tyro.cli().stderr.Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.3...v0.8.4
Switch to internal mirror of argparse. Fixes issue with Python 3.11.9.
Switch to internal mirror of argparse. Fixes issue with Python 3.11.9.
Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.2...v0.8.3
Require typing_extensions>=4.7.0.
Require typing_extensions>=4.7.0.
Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.1...v0.8.2
Fixed edge case in container narrowing logic.
Fixed edge case in container narrowing logic. (#136)
Full Changelog: https://github.com/brentyi/tyro/compare/v0.8.0...v0.8.1
Primary update: official Python 3.12 support, including new type parameter + alias syntax.
Primary update: official Python 3.12 support, including new type parameter + alias syntax.
X | Y and list[T] for older versions of Python by @brentyi in https://github.com/brentyi/tyro/pull/134type statement, new type parameter syntax) by @brentyi in https://github.com/brentyi/tyro/pull/135Full Changelog: https://github.com/brentyi/tyro/compare/v0.7.3...v0.8.0
Fix init=False and forward references for attrs by @brentyi in https://github.com/brentyi/tyro/pull/126
init=False and forward references for attrs by @brentyi in https://github.com/brentyi/tyro/pull/126Full Changelog: https://github.com/brentyi/tyro/compare/v0.7.2...v0.7.3
Fix: tyro.cli description by @kevinddchen in https://github.com/brentyi/tyro/pull/124
tyro.cli description by @kevinddchen in https://github.com/brentyi/tyro/pull/124Full Changelog: https://github.com/brentyi/tyro/compare/v0.7.1...v0.7.2
Fix type narrowing edge case, bump to 0.7.1 in https://github.com/brentyi/tyro/pull/122
Full Changelog: https://github.com/brentyi/tyro/compare/v0.7.0...v0.7.1
Consolidate field list generation in https://github.com/brentyi/tyro/pull/118
typing.Self support + tests in https://github.com/brentyi/tyro/pull/120Full Changelog: https://github.com/brentyi/tyro/compare/v0.6.6...v0.7.0
Fix subcommand override edge case by @brentyi in https://github.com/brentyi/tyro/pull/117
Full Changelog: https://github.com/brentyi/tyro/compare/v0.6.5...v0.6.6
Helptext improvements! Full Changelog: https://github.com/brentyi/tyro/compare/v0.6.4...v0.6.5
Helptext improvements!
Full Changelog: https://github.com/brentyi/tyro/compare/v0.6.4...v0.6.5
Fix tyro.conf.Suppress edge cases.
Fix tyro.conf.Suppress edge cases.
Full Changelog: https://github.com/brentyi/tyro/compare/v0.6.3...v0.6.4
More succinct usage when a lot of options are present by @brentyi in https://github.com/brentyi/tyro/pull/114
Full Changelog: https://github.com/brentyi/tyro/compare/v0.6.2...v0.6.3
Slightly improve helptext when tyro.conf.arg(constructor=...) is used.
tyro.conf.arg(constructor=...) is used.Annotated[] erases markers from tyro.conf.configure().Full Changelog: https://github.com/brentyi/tyro/compare/v0.6.1...v0.6.2
Improve PEP 585/604 annotation errors for older versions of Python by @brentyi in https://github.com/brentyi/tyro/pull/103
typing.NewType by @brentyi in https://github.com/brentyi/tyro/pull/106default_instance support for attrs, fix docs by @brentyi in https://github.com/brentyi/tyro/pull/111Full Changelog: https://github.com/brentyi/tyro/compare/v0.6.0...v0.6.1
Retain subcommand annotations by @brentyi in https://github.com/brentyi/tyro/pull/92
Full Changelog: https://github.com/brentyi/tyro/compare/v0.5.18...v0.6.0
Fix type narrowing edge case for unions by @brentyi in https://github.com/brentyi/tyro/pull/90
*args edge case.Full Changelog: https://github.com/brentyi/tyro/compare/v0.5.17...v0.5.18
Eliminates some unnecessary warnings.
Eliminates some unnecessary warnings.
Fixed #84 (*args edge case), #88 (warning for incorrect default values).
Fixed #84 (*args edge case), #88 (warning for incorrect default values).
Fixed TypedDict edge case. (#87) Full Changelog: https://github.com/brentyi/tyro/compare/v0.5.14...v0.5.15
Fixed TypedDict edge case. (#87)
Full Changelog: https://github.com/brentyi/tyro/compare/v0.5.14...v0.5.15
Fix tuple[] for structs in Python >= 3.9.
Fix tuple[] for structs in Python >= 3.9.
Nothing published for this version
Implement aliases by @brentyi in https://github.com/brentyi/tyro/pull/83
Full Changelog: https://github.com/brentyi/tyro/compare/v0.5.11...v0.5.12
Improved dictionaries: TypedDict support, typing.[Required,NotRequired], defaults in https://github.com/brentyi/tyro/pull/81
TypedDict support, typing.[Required,NotRequired], defaults in https://github.com/brentyi/tyro/pull/81Full Changelog: https://github.com/brentyi/tyro/compare/v0.5.10...v0.5.11
Patch underscore prefix edge case by @brentyi in https://github.com/brentyi/tyro/pull/78
Full Changelog: https://github.com/brentyi/tyro/compare/v0.5.9...v0.5.10
Nothing published for this version
Add use_underscores option by @brentyi in https://github.com/brentyi/tyro/pull/76
use_underscores option by @brentyi in https://github.com/brentyi/tyro/pull/76Full Changelog: https://github.com/brentyi/tyro/compare/v0.5.7...v0.5.8
Add conf.PositionalRequiredArgs by @brentyi in https://github.com/brentyi/tyro/pull/66
Full Changelog: https://github.com/brentyi/tyro/compare/v0.5.6...v0.5.7
Fix typo in README.md by @eltociear in https://github.com/brentyi/tyro/pull/65
Full Changelog: https://github.com/brentyi/tyro/compare/v0.5.5...v0.5.6
Fix edge cases when generating subcommands from Optional[] types. (see #60)
Fix edge cases when generating subcommands from Optional[] types. (see #60)
Support setting Tuple, Dict, and Union to empty in the command line by @ShenhanQian in https://github.com/brentyi/tyro/pull/57
poetry with setuptoolsFull Changelog: https://github.com/brentyi/tyro/compare/v0.5.3...v0.5.4
Fix literals for latest typing_extensions release.
Fix literals for latest typing_extensions release.
Added tyro.conf.OmitArgPrefixes.
tyro.conf.OmitArgPrefixes.Full Changelog: https://github.com/brentyi/tyro/compare/v0.5.1...v0.5.2
Remove debugging print statement by @vwxyzjn in https://github.com/brentyi/tyro/pull/51
Full Changelog: https://github.com/brentyi/tyro/compare/v0.5.0...v0.5.1
Append action for variable-length containers in https://github.com/brentyi/tyro/pull/47
Full Changelog: https://github.com/brentyi/tyro/compare/v0.4.2...v0.5.0
Minor subcommand patch for Python 3.10.
Minor subcommand patch for Python 3.10.
Full Changelog: https://github.com/brentyi/tyro/compare/v0.4.1...v0.4.2
Fix % character as default str argument in dataclass by @blurgyy in https://github.com/brentyi/tyro/pull/41
% character as default str argument in dataclass by @blurgyy in https://github.com/brentyi/tyro/pull/41Full Changelog: https://github.com/brentyi/tyro/compare/v0.4.0...v0.4.1
Add support for os.PathLike by @brentyi in https://github.com/brentyi/tyro/pull/37
return_unknown_args to tyro.cli by @JesseFarebro in https://github.com/brentyi/tyro/pull/35--tyro-print-completion => --tyro-write-completionFull Changelog: https://github.com/brentyi/tyro/compare/v0.3.38...v0.4.0
Minor improvements for helptext from pydantic dataclasses.
Minor improvements for helptext from pydantic dataclasses.
Fix corner case with placing multiple subcommands below the root level
Support functools.partial and functools.wraps.
functools.partial and functools.wraps.Add tyro.conf.ConsolidateSubcommandArgs, tyro.conf.configure().
Add tyro.conf.ConsolidateSubcommandArgs, tyro.conf.configure().
(yanked) Add tyro.conf.ConsolidateSubcommandArgs, tyro.conf.configure().
(yanked)
Add tyro.conf.ConsolidateSubcommandArgs, tyro.conf.configure().
Fix corner cases with non-leading positional arguments, helptext formatting.
Fix corner cases with non-leading positional arguments, helptext formatting.
Add (currently undocumented) support for "help" metadata in dataclass fields. This should generally not be encouraged, but improves compatibility with
tyro.conf.arg()."help" metadata in dataclass fields. This should generally not be encouraged, but improves compatibility with HuggingFace-style configs.Fixed flag conversion bug caused by runtime annotations: `python flag1: bool = False # worked flag2: Annotated[bool, "something"] = False # failed `
Fixed flag conversion bug caused by runtime annotations:
flag1: bool = False # worked
flag2: Annotated[bool, "something"] = False # failed
PEP 604 support for Python 3.9. (fixes #19) Improve error message for subcommands with unmatched defaults. (eg x: A | B = C(), where issubclass(C, A)
PEP 604 support for Python 3.9. (fixes #19)
Improve error message for subcommands with unmatched defaults. (eg x: A | B = C(), where issubclass(C, A) == issubclass(C, B) == False)
Shift to upstream version of shtab for tab completion.
shtab for tab completion.attrs and pydantic.dataclasses.InitVar.Yanked due to https://github.com/nerfstudio-project/nerfstudio/issues/882.
Yanked due to https://github.com/nerfstudio-project/nerfstudio/issues/882.
shtab for tab completion.attrs and pydantic.Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →