关于 cli-developer
CLI Developer 是用于构建命令行应用和终端界面的技能,涵盖命令解析、交互式 TUI、Shell 自动化及多语言工具打包。
主要功能
- 01命令与选项解析
- 02交互式终端界面设计
- 03Shell 脚本与自动化
- 04REPL 风格应用指导
- 05命令行工具打包与分发
适用场景
- 01规划命令和子命令结构
- 02构建交互式终端界面
- 03添加验证、帮助和输出格式
- 04准备命令行工具分发
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill cli-developer安装后在 Claude Code 中输入/cli-developer确认已加载。
详细介绍
CLI 开发者
用途
提供构建健壮、易用的命令行应用和终端界面的专业知识,涵盖多种语言的参数解析、交互式提示、TUI 框架和 Shell 自动化。
适用场景
- 使用任意语言构建 CLI 应用
- 创建交互式终端用户界面
- 实现命令行参数解析
- 构建 Shell 脚本和自动化工具
- 添加进度条、加载动画和颜色
- 创建 REPL 风格的应用
- 将 CLI 工具打包分发
快速开始
在以下情况下调用此技能:
- 使用任意语言构建 CLI 应用
- 创建交互式终端用户界面
- 实现命令行参数解析
- 构建 Shell 脚本和自动化工具
- 创建 REPL 风格的应用
请勿在以下情况下调用:
- 构建 GUI 桌面应用(使用 windows-app-developer)
- 创建基于 Web 的界面(使用前端技能)
- 编写 PowerShell 专用工具(使用 PowerShell 技能)
- 构建移动应用(使用 mobile-developer)
决策框架
CLI Framework Selection:
├── Node.js → Commander.js, Yargs, Oclif
├── Python → Click, Typer, argparse
├── Go → Cobra, urfave/cli
├── Rust → Clap, structopt
├── TUI needed
│ ├── Node.js → Ink, Blessed
│ ├── Python → Textual, Rich
│ ├── Go → Bubbletea, tview
│ └── Rust → Ratatui, crossterm
└── Simple script → Shell (bash/zsh)
核心工作流
1. CLI 应用设置
- 根据语言和需求选择框架
- 定义命令结构和子命令
- 实现参数和选项解析
- 添加输入验证和帮助文本
- 实现核心命令逻辑
- 添加输出格式化(JSON、表格等)
- 打包以供分发
2. 交互式 TUI 开发
- 选择 TUI 框架
- 设计屏幕布局和组件
- 实现输入处理和导航
- 添加状态管理
- 处理终端大小调整事件
- 在不同的终端模拟器中测试
3. CLI 分发
- 添加适当的版本管理
- 创建 man 手册页或帮助文档
- 为目标平台打包
- 设置通过包管理器安装
- 创建 Shell 补全脚本
- 添加更新机制
最佳实践
- 遵循 POSIX 标志和参数约定
- 同时提供短选项(-v)和长选项(--verbose)
- 包含 --help 和 --version 标志
- 正确使用退出码(成功时为 0)
- 支持管道和标准输入
- 添加 Shell 补全脚本
反模式
| 反模式 | 问题 | 正确做法 |
|---|---|---|
| 没有帮助文本 | 用户无法了解可用命令 | 添加全面的 --help |
| 静默失败 | 用户不知道出了什么问题 | 提供清晰的错误消息和退出码 |
| 硬编码路径 | 在其他系统上无法正常工作 | 使用环境变量和 XDG |
| 不支持标准输入 | 无法通过管道传递数据 | 支持从标准输入读取 |
| 向管道输出彩色文本 | 导致解析失败 | 检测 TTY,管道输出时禁用颜色 |
评论
支持 Markdown