← ClaudeAtlas

cli-tool-creatorlisted

【CLI工具开发】设计和开发命令行工具,包含参数解析、子命令、交互式提示、输出格式化、自动补全。 触发时机: - 用户要求"开发CLI工具"、"命令行工具" - 需要将脚本封装为可分发的 CLI - 需要添加交互式命���行界面 支持 Python(Click/Typer) 和 Node.js(Commander/Ink)。
afine907/skills · ★ 0 · AI & Automation · score 75
Install: claude install-skill afine907/skills
# CLI Tool Creator — CLI 工具开发技能 设计和开发专业的命令行工具,提供良好的用户体验。 ## Goal 设计和开发命令行工具,包含参数解析、子命令、交互式提示、输出格式化、自动补全 ## Trigger - 用户要求"开发CLI工具"、"命令行工具" - 需要将脚本封装为可分发的 CLI - 需要添加交互式命令行界面 ## 技术选型 | 语言 | 框架 | 特点 | |------|------|------| | Python | Typer | 类型提示、自动生成帮助 | | Python | Click | 功能丰富、灵活 | | Node.js | Commander | 流行、轻量 | | Node.js | Ink | React 风格的终端 UI | | Go | Cobra | 功能强大、kubectl 使用 | ## Python + Typer 实现 ### 项目结构 ``` my-cli/ ├── src/ │ └── my_cli/ │ ├── __init__.py │ ├── main.py # 入口 │ ├── commands/ # 子命令 │ │ ├── __init__.py │ │ ├── init.py │ │ ├── build.py │ │ └── deploy.py │ ├── utils/ # 工具函数 │ │ ├── config.py │ │ └── output.py │ └── types.py # 类型定义 ├── tests/ ├── pyproject.toml └── README.md ``` ### 主入口 ```python # src/my_cli/main.py import typer from typing import Optional from enum import Enum app = typer.Typer( name="my-cli", help="一个示例 CLI 工具", no_args_is_help=True, ) class LogLevel(str, Enum): debug = "debug" info = "info" warning = "warning" error = "error" @app.command() def init( name: str = typer.Argument(..., help="项目名称"), template: str = typer.Option("default", "-t", "--template", help="项目模板"), force: bool = typer.Option(False, "-f", "--force", help="强制覆盖已存在的目录"), ): """初始化新项目""" typer.echo(f"正在创建项目: {name}")