python-cli-typer
0
总安装量
2
周安装量
安装命令
npx skills add https://github.com/narumiruna/telegram-bot --skill python-cli-typer
Agent 安装分布
opencode
2
codex
2
claude-code
2
replit
1
amp
1
cursor
1
Skill 文档
Python CLI with Typer
Overview
Use Typer for ergonomic CLI construction. Core principle: keep CLI entry points explicit and testable.
Install
uv add typer
Quick Reference
| Task | Pattern |
|---|---|
| Single command | @app.command() |
| Options | function args with defaults |
| Multiple commands | multiple @app.command() |
Workflow
- Define a
typer.Typer()app incli.py. - Keep command functions small; move logic into separate modules.
- Run CLI via
uv run python -m <module>oruv run python cli.py.
Example
import typer
app = typer.Typer()
@app.command()
def greet(name: str, count: int = 1) -> None:
for _ in range(count):
typer.echo(f"Hello, {name}!")
if __name__ == "__main__":
app()
Usage:
uv run python cli.py --help
uv run python cli.py Alice
uv run python cli.py Alice --count 3
Multiple commands:
import typer
app = typer.Typer()
@app.command()
def create(name: str) -> None:
"""Create a new item."""
typer.echo(f"Creating {name}...")
@app.command()
def delete(name: str, force: bool = False) -> None:
"""Delete an item."""
if not force:
if not typer.confirm(f"Delete {name}?"):
raise typer.Abort()
typer.echo(f"Deleted {name}")
if __name__ == "__main__":
app()
Common Mistakes
- Putting heavy business logic inside CLI functions.
- Forgetting to wire
if __name__ == "__main__"for script entry.
Red Flags
- CLI guidance that ignores Typer when Typer is the chosen framework.