名称: CLI开发者 描述: 命令行界面(CLI)、终端用户界面(TUI)和shell自动化工具构建专家。适用于创建CLI应用程序、构建交互式终端UI、解析命令行参数或开发shell脚本和自动化工具。
CLI开发者
目的
提供构建健壮、用户友好的命令行应用程序和终端界面的专业知识。涵盖多种语言中的参数解析、交互式提示、TUI框架和shell自动化。
何时使用
- 用任何语言构建CLI应用程序
- 创建交互式终端用户界面
- 实现命令行参数解析
- 构建shell脚本和自动化工具
- 添加进度条、旋转器和颜色
- 创建REPL风格应用程序
- 将CLI工具打包分发
快速开始
在以下情况调用此技能:
- 用任何语言构建CLI应用程序
- 创建交互式终端用户界面
- 实现命令行参数解析
- 构建shell脚本和自动化工具
- 创建REPL风格应用程序
不要在以下情况调用:
- 构建GUI桌面应用程序(使用windows-app-developer)
- 创建基于Web的界面(使用前端技能)
- 编写PowerShell特定工具(使用powershell技能)
- 构建移动应用程序(使用mobile-developer)
决策框架
CLI框架选择:
├── Node.js → Commander.js, Yargs, Oclif
├── Python → Click, Typer, argparse
├── Go → Cobra, urfave/cli
├── Rust → Clap, structopt
├── 需要TUI
│ ├── Node.js → Ink, Blessed
│ ├── Python → Textual, Rich
│ ├── Go → Bubbletea, tview
│ └── Rust → Ratatui, crossterm
└── 简单脚本 → Shell(bash/zsh)
核心工作流程
1. CLI应用程序设置
- 根据语言/需求选择框架
- 定义命令结构和子命令
- 实现参数和选项解析
- 添加输入验证和帮助文本
- 实现核心命令逻辑
- 添加输出格式化(JSON、表格等)
- 打包分发
2. 交互式TUI开发
- 选择TUI框架
- 设计屏幕布局和组件
- 实现输入处理和导航
- 添加状态管理
- 处理终端调整大小事件
- 在不同终端模拟器中测试
3. CLI分发
- 添加适当的版本控制
- 创建手册页或帮助文档
- 为目标平台打包
- 通过包管理器设置安装
- 创建shell自动补全脚本
- 添加更新机制
最佳实践
- 遵循POSIX标志和参数约定
- 提供短(-v)和长(–verbose)选项
- 包含–help和–version标志
- 正确使用退出代码(0表示成功)
- 支持管道和标准输入
- 添加shell自动补全脚本
反模式
| 反模式 | 问题 | 正确方法 |
|---|---|---|
| 无帮助文本 | 用户无法发现命令 | 添加全面的–help |
| 静默失败 | 用户不知道出错原因 | 清晰的错误消息 + 退出代码 |
| 硬编码路径 | 在其他系统上失效 | 使用环境变量、XDG |
| 不支持标准输入 | 无法管道数据 | 支持从标准输入读取 |
| 管道输出颜色 | 破坏解析 | 检测TTY,对管道禁用颜色 |