Labsco
microsoft logo

click

✓ Official2,400

by microsoft · part of microsoft/debugpy

Best practices for building CLI applications with Click including commands, groups, options, and testing.

🔥🔥🔥🔥✓ VerifiedFreeQuick setup
🧰 Not standalone. This skill ships with microsoft/debugpy and only works together with that tool — install the tool first, then add this skill.

This is the playbook your agent receives when the skill activates — you don't need to read it to use the skill, but it's here to audit before installing.


name: click description: Best practices for building CLI applications with Click including commands, groups, options, and testing.

Skill: Click

Best practices for building CLI applications with Click including commands, groups, options, and testing.

When to Use

Apply this skill when building command-line interfaces with Click — commands, groups, options, arguments, and prompts.

Commands

  • Use @click.command() for single commands, @click.group() for multi-command CLIs.
  • Declare options with @click.option() and positional args with @click.argument().
  • Use help= on every option and command for auto-generated help text.
  • Use envvar= to allow environment variable fallback for sensitive options.

Groups

  • Organize subcommands with @click.group() and group.add_command().
  • Use @click.pass_context to share state between group and subcommands.

Type Safety

  • Use Click's built-in types (click.Path(exists=True), click.Choice([...]), click.IntRange()).
  • Use callbacks for custom validation.

Testing

  • Use click.testing.CliRunner() for testing commands without subprocess overhead.
  • Assert on result.exit_code and result.output.
  • Use mix_stderr=False to test stderr separately.

Pitfalls

  • Don't use sys.exit() — use click.exceptions.Exit or return from the command.
  • Don't use print() — use click.echo() for proper encoding handling.
  • Always handle KeyboardInterrupt / abort prompts gracefully.