OSS Tanbou

build Python CLIs from type hints with generated arguments, options, help, shell completion, and scalable subcommands

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
20,049
Primary language
Python
License
MIT
Repository last updated
Oct 1, 2026
On this page

Overview

Typer is a Python library for building command-line applications from standard type hints. Function parameters drive CLI arguments, options, help, validation, and shell completion, while the same model scales from a single function to trees of subcommands.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Reuse Python type hints as the CLI input model

Function parameters and standard Python types can define positional arguments, options, conversion, and generated help while preserving editor completion and type-checking support.

Sources: [1]

Grow from a single command into nested subcommands

A minimal application can use typer.run() around one function, then move to Typer() and @app.command() as multiple commands and subcommand groups are needed.

Sources: [1]

Run existing scripts through the typer command

The typer command can expose a plain Python function as a CLI even when the script does not import Typer, providing a low-friction way to add argument handling and help to small scripts.

Sources: [1]

Best fit

Fits Python teams building operational and developer-facing CLIs

It is useful for administration commands, internal tools, and developer utilities where input types, help, and completion should stay aligned without maintaining a separate CLI schema.

Sources: [1]

Before adoption

0.27.2 requires Python 3.10 or newer

The 0.27.2 package metadata declares requires-python = ">=3.10". Projects on older runtimes need to select a compatible Typer release and dependency set.

Sources: [2]

Review extensions that depend directly on Click internals

Since 0.26.0, Typer vendors Click instead of installing it as a separate dependency, and the README notes that some Click functionality may become unavailable. Direct Click-internal integrations should be reviewed during upgrades.

Sources: [1]

Official sources

  1. [1]Typer 0.27.2 README(2026-10-04)
  2. [2]Typer 0.27.2 package metadata(2026-10-04)
  3. [3]Typer 0.27.2 release(2026-10-04)
  4. [4]Typer MIT license(2026-10-04)
Supplemental curator note

Typer is especially useful when Python type hints already serve as the source of truth and teams want to avoid maintaining a second CLI schema. Extensions that rely on Click internals deserve extra review because Typer has vendored Click since 0.26.0.

Try it in 3 steps

  1. 1

    Add Typer 0.27.2 to an existing uv project

    In a uv-managed project using Python 3.10 or newer, pin the reviewed Typer release.

    uv add 'typer==0.27.2'
  2. 2

    Create the minimal type-hinted script

    Follow the README's minimal example with a plain function that does not import Typer.

    printf 'def main(name: str):\n print(f"Hello {name}")\n' > main.py
  3. 3

    Run the function as a CLI with the typer command

    Confirm that Typer derives the CLI argument from the function signature and executes it with the supplied name.

    uv run typer main.py run Camila
Check the official README

Growth

Growth trends · Last 30 days

20,049 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
2
Open PRs
52

Development activity is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • cli
  • click
  • python3
  • typehints
  • terminal
  • shell
  • python
  • typer
Stars
20,049
Forks
983
Watchers
79
Open issues
1
Contributors
106
Owner type
Organization
Primary language
Python
License
MIT
Repository last updated
Oct 1, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?