Typer CLI Application Reference
SkillDev toolsHelps your agent write Python command-line apps using the Typer library.
Use Typer CLI Application Reference in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Typer CLI Application Reference and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Typer CLI Application Reference skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
About this skill
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", "type
What this skill tells your AI
The instructions your AI receives, as published by carapace-sh/carapace-bin in skills/typer/SKILL.md and read by Ahel’s review.
Reference for building CLI applications with 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| completion, shell completion, install-completion, show-completion, autocompletion, incomplete, shellingham, custom completion, completion function | references/completion.md |
| testing, pytest, CliRunner, Result, invoke, exit_code, input, isolated filesystem | references/testing.md |
| package, pyproject.toml, project.scripts, wheel, python -m, main.py, publish, docs generation | 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 |
Quick Guide
- How do I create a CLI app, commands, or subcommands? → references/commands.md
- How do I declare CLI arguments and options (Annotated vs default-value style)? → references/parameters.md
- Which Python types can I use for CLI parameters (Enum, Path, File, etc.)? → references/parameter-types.md
- How do I use the context (typer.Context) in callbacks and commands? → references/context.md
- How do I customize help text, use Rich markup, or print colored output? → references/help-output.md
- How do I add shell completion or custom value completion? → references/completion.md
- How do I test my CLI app with pytest? → references/testing.md
- How do I package my CLI app and publish it? → references/package.md
- How does Typer work internally (Click conversion, module layout)? → references/internals.md
- Why is my parameter an option instead of an argument (or vice versa)? → references/parameters.md and references/commands.md
- How do I make subcommands share CLI parameters via a callback? → references/commands.md and 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. - 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).
Signals
- GitHub stars
- 2k
- Forks
- 148
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
typer- Source
- github.com/carapace-sh/carapace-bin
github.com/carapace-sh/carapace-bin