typer
Typer, build great CLIs. Easy to code. Based on Python type hints.
Decision gist · record as of 2026-08-14
Yes. Typer is actively maintained, has no known vulnerabilities, installs with low friction, and is widely used (ranked 114 in top PyPI packages). It significantly reduces boilerplate for CLI development and is well-suited for any project that needs a command-line interface. The MIT license poses no restrictions. Install it if you are building CLIs in Python.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Low install friction with a pure-Python wheel.
- Actively maintained with recent releases and a large repository (19895 stars).
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use, modify, and distribute Typer with minimal restrictions.
last release 2026-08-03 (11 days) · last repo commit 2026-08-12 · 19,895 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 369,277,837 downloads/mo, #114 on PyPI
Alternatives
Verify before relying
pip install typer
import typer
def main(name: str):
print(f"Hello {name}")
if __name__ == "__main__":
typer.run(main)- Whether shell completion works across all major shells (bash, zsh, fish, PowerShell) without additional configuration.
- Performance characteristics when handling deeply nested command hierarchies or large numbers of subcommands.
- Compatibility with async/await patterns for long-running CLI tasks.
What it is and what it does
Typer is a library for building CLI applications using Python type hints as the source of truth for arguments, options, and help text. Instead of writing boilerplate argument-parsing code, you define a function with typed parameters, decorate it with Typer, and the library automatically generates a full command-line interface with help messages, validation, and shell completion. It supports simple single-command scripts as well as complex applications with nested subcommands and option groups.
The library works by inspecting your function signatures and converting them into CLI specifications. Runtime dependencies include shellingham (for shell detection), rich (for formatted terminal output), annotated-doc (for documentation parsing), and colorama (for cross-platform colored text). Typer also ships with a standalone `typer` command that can convert any Python script into a CLI without requiring the script to import Typer itself.
Use it for
- Build a multi-command tool with subcommands and options without writing argument-parsing boilerplate.
- Create a simple script that automatically gets help text, validation, and shell completion from type hints.
- Develop a system administration or DevOps tool where users expect standard CLI conventions (--help, auto-completion).
- Convert existing Python functions into CLI entry points for a package without major refactoring.
- Build interactive command-line tools that guide users through options with automatic suggestions.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Typer is actively maintained, has no known vulnerabilities, installs with low friction, and is widely used (ranked 114 in top PyPI packages). It significantly reduces boilerplate for CLI development and is well-suited for any project that needs a command-line interface. The MIT license poses no restrictions. Install it if you are building CLIs in Python.
Install
typer on PyPI
Before you install
Low install friction with a pure-Python wheel. Actively maintained with recent releases and a large repository (19895 stars). Supports current Python versions (3.10–3.14).
Requires Python 3.10 or later.
License in practice
MIT license is permissive; you can use, modify, and distribute Typer with minimal restrictions.
Quickstart
pip install typer
import typer
def main(name: str):
print(f"Hello {name}")
if __name__ == "__main__":
typer.run(main)
Verify before relying
- Whether shell completion works across all major shells (bash, zsh, fish, PowerShell) without additional configuration.
- Performance characteristics when handling deeply nested command hierarchies or large numbers of subcommands.
- Compatibility with async/await patterns for long-running CLI tasks.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesshellinghamrichannotated-doccolorama |
| Maintenance | Actively maintained 11 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 369,277,837 / month, #114 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersIntended Audience :: Information TechnologyIntended Audience :: System AdministratorsOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Software DevelopmentTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Application FrameworksTopic :: Software Development :: Libraries :: Python ModulesTyping :: Typed |
Evidence: typer-0.27.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “build CLI applications”
- typerTyper builds command-line applications from Python functions using…
- reflex-hosting-cliA command-line tool for managing Reflex application hosting and…
- clickClick is a Python toolkit for building command-line interfaces with…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
Provides type system extensions for Python programs checked with mypy, including support for special typing constructs that the mypy type checker and mypyc compiler recognize.
See also cyclopts · django-typer · typer-cli · typer-config · typer-slim · typer-injector · trogon · sphinxcontrib-typer · jsonargparse · click-completion