SuperAPI AI 工具集

cli-building

编程与开发

查看项目

更新于 10-15 23:39

技能介绍

CLI Building 是一份关于构建命令行界面的指南,面向创建新 CLI 工具或命令、构建交互式终端应用、为现有项目添加命令以及使用 CLI 框架的场景。

核心原则包括:异步优先,所有 I/O 操作使用 async/await,避免阻塞;可组合命令,命令应模块化、可复用并支持组合;策略模式,用于分支工作流或基于任务的命令;输出格式化,使用 unicode 符号与颜色支持。

框架选择方面,TypeScript/JavaScript 推荐 stricli(@bloomberg/stricli),其从底层为 async/await 设计,提供类型安全的命令定义与完整类型推断、懒加载启动性能、零依赖;oclif 为替代方案,功能成熟、有插件系统,适合复杂 CLI。Python 推荐 cyclopts,现代异步优先、类型安全、API 简洁;typer 在完全异步支持可用时可选,基于类型提示,适合简单到中等复杂度 CLI。

命令架构上,可组合命令应设计为可复用模块,包含共享命令工具、命令中间件、可复用命令模块与组合模式;策略模式用于工作流分支、任务型命令、动态命令路由与条件执行。

输出格式化要求:除非明确指示,不使用 emoji;使用 unicode 符号(✓、✗、→、⚠)表示状态;使用颜色库而非硬编码 ANSI 码;始终尊重 NO_COLOR 环境变量;使用加粗、变暗等格式提升可读性。

异步模式要求文件、网络、进程、数据库操作均使用异步 API;错误处理使用 try/catch 配合 await,处理 promise rejection,提供清晰错误信息并返回适当退出码。

命令结构示例中,stricli 使用 createCli 定义命令并调用 cli.run();cyclopts 使用 App 与 @app.default 装饰器定义异步命令。

最佳实践包括:默认异步、可组合设计、策略模式、规范格式化并支持 NO_COLOR、清晰错误与退出码、类型安全、隔离测试命令。详细内容可参考 references 目录下的 async-patterns.md、composable-commands.md、strategy-pattern.md、output-formatting.md 与 frameworks.md。