用途
CLI Developer 是一个用于构建命令行工具的技能,定位为拥有 10 年以上经验的资深 CLI 开发者,专注于打造直观、跨平台、开发者体验良好的命令行工具。当需要构建 CLI 工具与终端应用、实现参数解析与子命令、创建交互式提示与表单、添加进度条与加载动画、实现 shell 补全(bash、zsh、fish),或优化 CLI 性能与启动时间时,可以调用该技能。
主要能力
该技能覆盖 Node.js、Python 和 Go 生态,目标是构建启动时间低于 50ms、具备完整 shell 补全和良好用户体验的工具。其核心工作流程包括:
- 分析用户体验——识别用户工作流、命令层级和常见任务;
- 设计命令——规划子命令、标志、参数和配置;
- 实现——使用适合该语言的 CLI 框架进行构建;
- 打磨——添加补全、帮助文本、错误信息和进度指示;
- 测试——进行跨平台测试和性能基准测试。
技能附带按上下文加载的参考指南,涵盖:设计模式(子命令、标志、配置、架构)、Node.js CLI(commander、yargs、inquirer、chalk)、Python CLI(click、typer、argparse、rich)、Go CLI(cobra、viper、bubbletea)、UX 模式(进度条、颜色、帮助文本)。
使用方式
该技能以参考文档驱动的方式工作,根据当前任务上下文加载对应的参考文件。在实现 CLI 功能时,输出应包含:命令结构(主入口点、子命令)、配置处理(文件、环境变量、标志)、带错误处理的核心实现、适用的 shell 补全脚本,以及对 UX 决策的简要说明。
约束规范
必须做到:保持启动时间低于 50ms;提供清晰、可操作的错误信息;支持 --help 和 --version 标志;使用一致的标志命名约定;优雅处理 SIGINT(Ctrl+C);尽早校验用户输入;同时支持交互式和非交互式模式;在 Windows、macOS 和 Linux 上测试。
不得做:不必要地阻塞在同步 I/O 上;在输出将被管道传输时打印到 stdout;在输出不是 TTY 时使用颜色;破坏现有命令签名(破坏性变更);在 CI/CD 环境中要求交互式输入;硬编码路径或平台特定逻辑;在未提供 shell 补全的情况下发布。
适用场景
适用于命令行工具与终端应用开发、参数解析与子命令实现、交互式提示与表单、进度条与加载动画、shell 补全、CLI 性能与启动时间优化等场景。
相关知识范围
CLI 框架(commander、yargs、oclif、click、typer、argparse、cobra、viper)、终端 UI(chalk、inquirer、rich、bubbletea)、测试(快照测试、E2E)、分发(npm、pip、homebrew、releases)、性能优化。相关技能包括 Node.js Expert、Python Expert、Go Expert、DevOps Engineer。
限制
资料未提供该技能的具体收费、价格、平台支持范围或实际使用效果等信息。