click

GitHub

提供使用 Click 库构建 CLI 应用的最佳实践,涵盖命令、分组、选项定义及类型安全。包含测试指南与常见陷阱,旨在提升命令行工具的开发质量与可维护性。

.claude/skills/click/SKILL.md microsoft/debugpy

Trigger Scenarios

开发 Python CLI 应用程序 使用 Click 框架实现子命令或参数解析 编写 CLI 工具的单元测试

Install

npx skills add microsoft/debugpy --skill click -g -y
More Options

Non-standard path

npx skills add https://github.com/microsoft/debugpy/tree/main/.claude/skills/click -g -y

Use without installing

npx skills use microsoft/debugpy@click

指定 Agent (Claude Code)

npx skills add microsoft/debugpy --skill click -a claude-code -g -y

安装 repo 全部 skill

npx skills add microsoft/debugpy --all -g -y

预览 repo 内 skill

npx skills add microsoft/debugpy --list

SKILL.md

Frontmatter
{
    "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.

Version History

  • e5743d3 Current 2026-08-20 17:01

Same Skill Collection

.claude/skills/django/SKILL.md
.claude/skills/flask/SKILL.md
.claude/skills/jinja2/SKILL.md
.claude/skills/numpy/SKILL.md
.claude/skills/pytest/SKILL.md
.claude/skills/requests/SKILL.md

Metadata

Files
0
Version
e5743d3
Hash
87e9c513
Indexed
2026-08-20 17:01

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-31 21:03
浙ICP备14020137号-1 $mapa de visitantes$