click
Installation
SKILL.md
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()andgroup.add_command(). - Use
@click.pass_contextto 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_codeandresult.output. - Use
mix_stderr=Falseto test stderr separately.
Pitfalls
- Don't use
sys.exit()— useclick.exceptions.Exitor return from the command. - Don't use
print()— useclick.echo()for proper encoding handling. - Always handle
KeyboardInterrupt/ abort prompts gracefully.