Typer is a library for building command-line interface applications using Python type hints.
Typer solves the problem of writing CLI applications by leveraging Python's type hint system to automatically generate argument parsing, validation, and help text. Developers define a function with type-annotated parameters, and Typer converts those annotations into a fully functional CLI with minimal boilerplate. The library also provides a standalone `typer` command that can run plain Python scripts as CLI applications without requiring the script to use Typer internally, automatically converting function parameters into command-line arguments.
Typer suits developers who want to build CLIs quickly without wrestling with argument parsing libraries. It works well for projects ranging from simple scripts to complex command hierarchies with nested subcommands and option groups. The tool is designed to provide excellent editor completion and automatic shell completion for end users. Compared to Click, which Typer builds upon, the type-hint-based approach reduces boilerplate and improves IDE support while maintaining the same underlying power for building sophisticated CLI structures.
The project maintains active test coverage and continuous integration on its main branch. Development follows a pattern of regular updates and refinement of the core library and documentation.