Skip to content
Back to skills

Typer

ASecurity

Use when building CLI applications with fastapi/typer — creating commands, defining CLI arguments and options, type-hint-driven parameter parsing, callbacks, context, help customization, shell completion, testing, packaging, or Typer internals. Triggers on: "typer", "typer.run", "typer.Typer", "typer app", "typer command", "typer argument", "typer option", "typer callback", "typer context", "Annotated", "typer.Argument", "typer.Option", "typer.Context", "CliRunner", "add_typer", "rich_markup_...

  • 2,009 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
toolspythonshellfastapitestinggitapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 10 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add carapace-sh/carapace-bin --skill typer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Typer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Typer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/carapace-sh-typer/badge)](https://www.skillsdirectory.com/skills/carapace-sh-typer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: typer
description: >
  Use when building CLI applications with fastapi/typer — creating commands, defining CLI
  arguments and options, type-hint-driven parameter parsing, callbacks, context, help
  customization, shell completion, testing, packaging, or Typer internals. Triggers on:
  "typer", "typer.run", "typer.Typer", "typer app", "typer command", "typer argument",
  "typer option", "typer callback", "typer context", "Annotated", "typer.Argument",
  "typer.Option", "typer.Context", "CliRunner", "add_typer", "rich_markup_mode",
  "typer completion", "typer autocompletion", "typer echo", "typer test", "typer package",
  "typer click", "get_command".
user-invocable: true
---

# Typer CLI Application Reference

Reference for building CLI applications with [typer](https://github.com/fastapi/typer). Covers the public API, type-driven parameter declaration, and how Typer wraps Click internally.

## Sub-Resources

Load the reference that matches your task. When in doubt, load multiple references.

| Keywords | Reference |
|----------|----------|
| Typer, typer.run, app, @app.command, @app.callback, add_typer, subcommand, group, one or multiple commands, TyperInfo, CommandInfo, suggest_commands, invoke_without_command | [references/commands.md](references/commands.md) |
| typer.Argument, typer.Option, Annotated, default value style, Ellipsis, required, optional, envvar, prompt, confirmation_prompt, short name, metavar, show_default, help, OptionInfo, ArgumentInfo, ParamMeta | [references/parameters.md](references/parameters.md) |
| type conversion, parameter type, str, int, float, bool, Enum, Literal, choices, case_sensitive, FileText, FileTextWrite, FileBinaryRead, FileBinaryWrite, pathlib.Path, exists, min, max, clamp, count, DateTime, UUID, list, tuple | [references/parameter-types.md](references/parameter-types.md) |
| typer.Context, ctx, CallbackParam, invoked_subcommand, resilient_parsing, allow_extra_args, ignore_unknown_options, find_root, find_object, ensure_object, fail, abort, exit, get_parameter_source | [references/context.md](references/context.md) |
| help, docstring, rich, rich_markup_mode, rich_help_panel, markdown help, deprecated, epilog, printing, echo, style, secho, stderr, rich markup, suggest_commands | [references/help-output.md](references/help-output.md) |
| completion, shell completion, install-completion, show-completion, autocompletion, incomplete, shellingham, custom completion, completion function | [references/completion.md](references/completion.md) |
| testing, pytest, CliRunner, Result, invoke, exit_code, input, isolated filesystem | [references/testing.md](references/testing.md) |
| package, pyproject.toml, project.scripts, wheel, python -m, __main__.py, publish, docs generation | [references/package.md](references/package.md) |
| internals, source code, main.py, core.py, models.py, utils.py, _click, vendored click, get_command, get_group_from_info, get_command_from_info, get_callback, TyperGroup, TyperCommand, TyperOption, TyperArgument, DefaultPlaceholder, rich_utils | [references/internals.md](references/internals.md) |

## Quick Guide

- **How do I create a CLI app, commands, or subcommands?** → [references/commands.md](references/commands.md)
- **How do I declare CLI arguments and options (Annotated vs default-value style)?** → [references/parameters.md](references/parameters.md)
- **Which Python types can I use for CLI parameters (Enum, Path, File, etc.)?** → [references/parameter-types.md](references/parameter-types.md)
- **How do I use the context (typer.Context) in callbacks and commands?** → [references/context.md](references/context.md)
- **How do I customize help text, use Rich markup, or print colored output?** → [references/help-output.md](references/help-output.md)
- **How do I add shell completion or custom value completion?** → [references/completion.md](references/completion.md)
- **How do I test my CLI app with pytest?** → [references/testing.md](references/testing.md)
- **How do I package my CLI app and publish it?** → [references/package.md](references/package.md)
- **How does Typer work internally (Click conversion, module layout)?** → [references/internals.md](references/internals.md)
- **Why is my parameter an option instead of an argument (or vice versa)?** → [references/parameters.md](references/parameters.md) and [references/commands.md](references/commands.md)
- **How do I make subcommands share CLI parameters via a callback?** → [references/commands.md](references/commands.md) and [references/context.md](references/context.md)

## Cross-Project References

- For the completion-aware pflag/cobra ecosystem used in this repo, see the **cobra** skill (in this repo, `skills/cobra/`). Typer is Click-based, not cobra-based; Typer's own internals are covered in [references/internals.md](references/internals.md).
- For FastAPI itself, Typer's design mirrors it (dependency injection, declarative type hints) but there is no FastAPI skill here.

## Note

Typer versions covered: 0.12+ through 0.27.x. Since v0.26.0 Click is vendored inside `typer/_click/`, so no external Click dependency exists at runtime (see [references/internals.md](references/internals.md)).

Files in this skill

  • SKILL.md5.1 KB
  • references/commands.md6.4 KB
  • references/completion.md4.3 KB
  • references/context.md4.9 KB
  • references/help-output.md4.5 KB
  • references/internals.md7.4 KB
  • references/package.md2.8 KB
  • references/parameter-types.md5.6 KB
  • references/parameters.md6.9 KB
  • references/testing.md3.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.