Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CLI apps with Typer - Python type annotations a...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Sebastián Ramírez
October 10, 2022
Technology
0
390
CLI apps with Typer - Python type annotations and shell completion
Sebastián Ramírez
October 10, 2022
Tweet
Share
More Decks by Sebastián Ramírez
See All by Sebastián Ramírez
2025-10 PyCon Brasil keynote - Behind the scenes of FastAPI and friends for developers and builders
tiangolo
0
20
PyCon Taiwan Keynote - Behind the scenes of FastAPI and friends for developers and builders
tiangolo
0
170
Modern Python through FastAPI and friends - PyCon Sweden
tiangolo
0
62
Await for it: mixing async and blocking code - PyCon MEA - Dubai
tiangolo
0
36
Intro to FastAPI: Tips and Tricks for ML
tiangolo
1
360
Modern Python through FastAPI and friends - PyCon MEA - Dubai
tiangolo
0
880
Software de Colombia para el mundo
tiangolo
1
1.7k
Modern Python through FastAPI and friends - PyCon Indonesia
tiangolo
0
510
Modern Python through FastAPI and friends - Dubai - AI Everything - Gitex
tiangolo
0
120
Other Decks in Technology
See All in Technology
Agentic Coding 実践ワークショップ
watany
41
27k
JuliaTokaiとしてはこれが最後かもしれない(仮) for NGK2026S
antimon2
0
130
OCI技術資料 : OS管理ハブ 概要
ocise
2
4.3k
Claude in Chromeで始める自律的フロントエンド開発
diggymo
1
280
最速で価値を出すための プロダクトエンジニアのツッコミ術
kaacun
1
320
Vivre en Bitcoin : le tutoriel que votre banquier ne veut pas que vous voyiez
rlifchitz
0
370
EventBridge API Destination × AgentCore Runtimeで実現するLambdaレスなイベント駆動エージェント
har1101
7
270
エンジニアとして長く走るために気づいた2つのこと_大賀愛一郎
nanaism
1
260
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
41k
Oracle Cloud Infrastructure:2026年1月度サービス・アップデート
oracle4engineer
PRO
0
190
かわいい身体と声を持つ そういうものに私はなりたい
yoshimura_datam
0
560
toCプロダクトにおけるAI機能開発のしくじりと学び / ai-product-failures-and-learnings
rince
5
3.5k
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
75
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
120
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
sira's awesome portfolio website redesign presentation
elsirapls
0
130
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
3.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
440
Building the Perfect Custom Keyboard
takai
2
680
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
130
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
150
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Rails Girls Zürich Keynote
gr2m
96
14k
Transcript
CLI apps with type annotations and shell completion
Who am I? Sebastián Ramírez github.com/tiangolo linkedin.com/in/tiangolo twitter.com/tiangolo tiangolo.com Berlin,
Germany Senior Staff Software Engineer at I created: ➕ External Consultant for other teams
About Typer • 8K+ GitHub stars • FastAPI's little sibling
• Powered by Click @tiangolo
Command Line Interfaces (CLI) or Terminals @tiangolo • Text based
• You send program and parameters • Computer goes beep boop • Maybe output • Examples of CLI apps: git, ssh, pip
Simple function with type annotations @tiangolo
Simple function with type annotations @tiangolo
Why type annotations - error checks @tiangolo
Why type annotations - completion @tiangolo
Simple function with type annotations - recap @tiangolo
Simple scripts with Typer @tiangolo
Simple scripts - required arguments @tiangolo
Simple scripts with Typer - main block @tiangolo
Simple scripts - required arguments missing @tiangolo
Simple scripts with --help @tiangolo
Simple scripts - options @tiangolo
Simple scripts - invalid data @tiangolo
Simple scripts - more help @tiangolo
Simple scripts - more help in the terminal @tiangolo
Simple scripts - help for parameters @tiangolo
Simple scripts - help for parameters in the terminal @tiangolo
A Typer app @tiangolo
A Typer app - app object @tiangolo
A Typer app - decorator @tiangolo
A Typer app - call the app @tiangolo
A Typer app - supergreet @tiangolo
Install completion @tiangolo ✨ Works for everything: • Zsh •
Bash • Fish • PowerShell
Use completion @tiangolo
Use completion @tiangolo
Use completion @tiangolo
Use completion @tiangolo
Use completion @tiangolo
Completion @tiangolo 🧙 Works by default and can be used
for: • Deeply nested commands • CLI Options and CLI Arguments • Custom data (e.g. remote, from an API) • etc.
Commands @tiangolo
Commands - hi @tiangolo
Commands - bye @tiangolo
Help with commands @tiangolo
Commands - hi again @tiangolo
Commands --help for hi @tiangolo
Command hi in terminal @tiangolo
Commands - bye @tiangolo
Commands --help for bye @tiangolo
More Typer features @tiangolo • 🥅 Boolean flags • ❓
Prompts • 🔒 Ask passwords • 🚀 Launch apps (e.g. a browser) • ✅ Easy testing • ✨ More…
Thank you! Sebastián Ramírez tiangolo.com typer.tiangolo.com github.com/tiangolo linkedin.com/in/tiangolo twitter.com/tiangolo