用途
CLI Developer 用于在构建命令行应用与终端界面时提供专业指导。其覆盖范围包括:任意语言的 CLI 应用开发、交互式终端用户界面(TUI)创建、命令行参数解析实现、Shell 脚本与自动化工具构建、进度条/加载动画/彩色输出添加、REPL 风格应用创建,以及 CLI 工具的打包分发。
何时使用
在以下情况调用该技能:
- 使用任意语言构建 CLI 应用
- 创建交互式终端用户界面
- 实现命令行参数解析
- 构建 Shell 脚本与自动化工具
- 添加进度条、加载动画和颜色
- 创建 REPL 风格应用
- 将 CLI 工具作为软件包分发
在以下情况不要调用:
- 构建 GUI 桌面应用(应使用 windows-app-developer)
- 创建基于 Web 的界面(应使用前端相关技能)
- 编写 PowerShell 专用工具(应使用 powershell 相关技能)
- 构建移动应用(应使用 mobile-developer)
框架选型决策框架
技能提供按语言与需求选择框架的决策路径:
- 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)
核心工作流
-
CLI 应用搭建:根据语言/需求选择框架;定义命令结构与子命令;实现参数与选项解析;添加输入校验与帮助文本;实现核心命令逻辑;添加输出格式化(JSON、表格等);打包以便分发。
-
交互式 TUI 开发:选择 TUI 框架;设计屏幕布局与组件;实现输入处理与导航;添加状态管理;处理终端尺寸变化事件;在不同终端模拟器上测试。
-
CLI 分发:添加正确的版本管理;创建 man 手册或帮助文档;为目标平台打包;通过包管理器设置安装;创建 Shell 补全;添加更新机制。
最佳实践
- 遵循 POSIX 约定处理标志与参数
- 同时提供短选项(-v)与长选项(--verbose)
- 包含 --help 与 --version 标志
- 正确使用退出码(成功为 0)
- 支持管道与 stdin 输入
- 添加 Shell 补全脚本
反模式
- 无帮助文本:用户无法发现命令,应添加完整的 --help
- 静默失败:用户不知道出了什么问题,应提供清晰的错误信息与退出码
- 硬编码路径:在其他系统上会出错,应使用环境变量、XDG
- 不支持 stdin:无法通过管道传入数据,应支持从 stdin 读取
- 向管道输出彩色内容:会破坏解析,应检测 TTY,对管道禁用颜色
限制
该技能不适用于 GUI 桌面应用、基于 Web 的界面、PowerShell 专用工具以及移动应用开发。关于具体收费、价格、平台支持范围与效果等事实,资料中暂未提供。