Smithery Logo
MCPsSkillsDocsPricing
Login
NewFlame, an assistant that learns and improves. Available onTelegramSlack
    evanfang0054

    cli-creator

    evanfang0054/cli-creator
    Coding
    1

    About

    SKILL.md

    Install

    • Telegram
      Telegram
    • Slack
      Slack
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    • Download skill
    ├─
    ├─
    └─
    Smithery Logo

    Give agents more agency

    Resources

    DocumentationPrivacy PolicySystem Status

    Company

    PricingAboutBlog

    Connect

    © 2026 Smithery. All rights reserved.

    About

    创建生产级 Node.js CLI 工具的完整解决方案,包含 15+ 个优化点和 104KB 专业模板。当用户需要构建命令行工具时使用:(1)创建新的 CLI 项目,(2)选择合适的框架和依赖,(3)实现完整 CLI 功能(配置管理、进度条、版本检查、输出格式化等),(4)配置测试和打包,(5)应用最佳实践(POSIX 兼容、TTY/CI 检测、错误处理、Shell 补全)

    SKILL.md

    CLI Creator

    创建生产级、专业化的 Node.js CLI 工具。

    概述

    本技能提供创建企业级 CLI 工具的完整解决方案,包含:

    • 15+ 优化点: 基于 cli-developer 最佳实践
    • 14 个模板文件: 104KB 生产级代码
    • 完整功能支持: 配置管理、进度条、版本检查、输出格式化、操作摘要
    • 多框架支持: Commander.js、oclif、Yargs、Ink、citty、cac
    • 100% 功能覆盖: P0 核心架构 + P1 功能增强 + P2 UX 提升

    快速开始 (5分钟创建生产级CLI)

    # Minimal 模板 (基础)
    npx ts-node skills/cli-creator/scripts/init_cli.ts my-cli
    
    # Standard 模板 (推荐) ⭐
    npx ts-node skills/cli-creator/scripts/init_cli.ts my-cli --template standard
    
    # Advanced 模板 (完整)
    npx ts-node skills/cli-creator/scripts/init_cli.ts my-cli --template advanced
    

    生成的 CLI 将包含:

    • ✅ 完整的环境检测和适配 (TTY/CI/颜色支持)
    • ✅ 友好的错误处理和提示
    • ✅ 完善的帮助文档生成
    • ✅ 标准退出码和信号处理
    • ✅ 进度条支持 (standard+)
    • ✅ 版本检查 (standard+)
    • ✅ 输出格式化 (standard+)
    • ✅ 操作摘要 (standard+)
    • ✅ 配置文件层级 (advanced)
    • ✅ 交互式提示 (advanced)

    工作流程决策树

    用户请求创建 CLI
    │
    ├─ 步骤 1: 框架选择
    │  ├─ 评估项目复杂度 (命令数量、交互需求、插件需求)
    │  ├─ 参考 references/framework_comparison.md
    │  └─ 推荐: Commander.js (默认) / oclif / Ink
    │
    ├─ 步骤 2: 项目初始化
    │  ├─ 运行 scripts/init_cli.ts 生成项目结构
    │  ├─ 选择模板级别 (minimal/standard/advanced)
    │  └─ 配置项目元数据 (名称、描述、版本)
    │
    ├─ 步骤 3: 开发指导
    │  ├─ 实现命令逻辑 (src/commands/)
    │  ├─ 配置 UI 增强 (chalk, ora)
    │  ├─ 添加配置管理 (cosmiconfig + zod)
    │  └─ 参考 references/best_practices.md
    │
    ├─ 步骤 4: 测试和打包
    │  ├─ 配置测试 (vitest)
    │  ├─ 运行 scripts/validate_cli.ts 验证
    │  ├─ 参考 references/testing_strategies.md
    │  └─ 参考 references/packaging_guide.md
    │
    └─ 步骤 5: 发布分发
       ├─ npm publish (推荐)
       ├─ npx 一键运行
       └─ 可选: Node.js SEA 单文件打包
    

    核心脚本

    scripts/init_cli.ts

    CLI 项目初始化主脚本。

    用法:

    npx ts-node skills/cli-creator/scripts/init_cli.ts <cli-name> [options]
    

    选项:

    • --framework <name>: 指定框架 (commander/oclif/yargs/ink/citty/cac)
    • --template <type>: 模板级别 (minimal/standard/advanced)
    • --ui: 包含 UI 库 (chalk + ora)
    • --config: 包含配置管理 (cosmiconfig + zod)
    • --testing: 包含测试配置 (vitest)

    示例:

    # 最小化 CLI (Commander.js)
    npx ts-node skills/cli-creator/scripts/init_cli.ts my-tool
    
    # 标准配置,包含 UI 和测试
    npx ts-node skills/cli-creator/scripts/init_cli.ts my-tool --template standard --ui --testing
    
    # 高级配置,oclif 框架
    npx ts-node skills/cli-creator/scripts/init_cli.ts my-tool --framework oclif --template advanced
    
    # React UI CLI (Ink)
    npx ts-node skills/cli-creator/scripts/init_cli.ts my-tool --framework ink
    

    scripts/generate_project.ts

    基于配置生成完整项目结构。

    自动调用: 由 init_cli.ts 内部调用

    scripts/install_dependencies.ts

    根据配置安装精确的依赖版本。

    自动调用: 由 init_cli.ts 内部调用

    scripts/validate_cli.ts

    验证生成的 CLI 项目完整性。

    用法:

    npx ts-node skills/cli-creator/scripts/validate_cli.ts <project-path>
    

    验证检查:

    • ✓ package.json 格式正确
    • ✓ bin/run.js 可执行文件存在
    • ✓ tsconfig.json 配置正确
    • ✓ 依赖安装完整
    • ✓ 可以运行 --help
    • ✓ 可以运行 --version
    • ✓ 测试可以运行

    参考文档导航

    框架选择

    何时读取: 用户询问"哪个框架最好?"或需要框架对比时

    # 搜索关键词
    grep -r "framework comparison" skills/cli-creator/references/
    grep -r "Commander.js vs oclif" skills/cli-creator/references/
    

    文件: references/framework_comparison.md

    • 框架选择决策树
    • 详细对比表格 (学习曲线、包体积、TypeScript 支持)
    • 推荐场景说明
    • 每个框架的优缺点分析

    最佳实践

    何时读取: 实现 CLI 功能或改进用户体验时

    # 搜索关键词
    grep -r "UX principles" skills/cli-creator/references/
    grep -r "POSIX" skills/cli-creator/references/
    grep -r "error handling" skills/cli-creator/references/
    

    文件: references/best_practices.md

    • 用户体验原则 (渐进式披露、POSIX 兼容、彩色输出)
    • 代码组织模式
    • 命令设计模式
    • 配置管理最佳实践
    • 性能优化建议

    依赖配置

    何时读取: 选择和配置依赖时

    # 搜索关键词
    grep -r "chalk" skills/cli-creator/references/
    grep -r "vitest" skills/cli-creator/references/
    grep -r "dependencies" skills/cli-creator/references/
    

    文件: references/dependency_guide.md

    • 最小化依赖方案
    • 完整功能方案
    • 框架特定配置
    • 依赖版本选择建议
    • 安全性考虑

    测试策略

    何时读取: 配置测试或调试测试问题时

    # 搜索关键词
    grep -r "vitest" skills/cli-creator/references/
    grep -r "test" skills/cli-creator/references/
    grep -r "coverage" skills/cli-creator/references/
    

    文件: references/testing_strategies.md

    • 测试框架选择 (Vitest 推荐)
    • 测试模式 (命令输出测试、单元测试、集成测试)
    • 代码示例
    • 覆盖率配置

    打包分发

    何时读取: 准备发布 CLI 时

    # 搜索关键词
    grep -r "npm publish" skills/cli-creator/references/
    grep -r "SEA" skills/cli-creator/references/
    grep -r "npx" skills/cli-creator/references/
    

    文件: references/packaging_guide.md

    • 分发方式对比 (npm、npx、Node.js SEA、nexe、Docker)
    • 推荐方案: npm + npx
    • package.json 配置
    • 发布流程
    • 高级: Node.js SEA 单文件

    完整技术栈参考

    何时读取: 需要深入技术细节或查阅完整库列表时

    # 搜索关键词
    grep -r "execa" skills/cli-creator/references/
    grep -r "zod" skills/cli-creator/references/
    grep -r "cosmiconfig" skills/cli-creator/references/
    

    文件: references/original_reference.md

    • 完整的 node-cli-skill.md 原始内容
    • 所有技术栈和库的详细文档
    • 优秀 CLI 项目参考
    • 设计思路与最佳实践 (完整版)

    框架支持策略

    支持的框架

    框架 默认 特点 推荐场景
    Commander.js ✅ 简单、流行、社区成熟 中小型 CLI,快速开发
    oclif - 企业级、插件系统、自动文档 大型 CLI、插件化需求
    Yargs - 功能丰富、中间件支持 复杂参数验证
    Ink - React 组件化、富交互 现代 UI、交互式 CLI
    citty - 轻量、现代 ESM UnJS 生态
    cac - 极简、零依赖 超轻量级工具

    框架选择决策树

    项目复杂度评估:
    ├── 1-3 个简单命令 → Commander.js / cac
    ├── 3-10 个命令,中等复杂 → Commander.js / Yargs
    ├── 10+ 个命令,需要插件 → oclif
    ├── 富 UI/交互式 → Ink
    └── 极简/零依赖追求 → cac / citty
    

    模板级别

    Minimal

    特点: 2 个文件,~4KB 代码,极速启动 适用: 学习、原型、简单脚本 生成内容:

    • utils.ts (环境检测: TTY/CI/颜色)
    • logger.ts (增强日志系统)

    Standard (推荐) ⭐

    特点: 10 个文件,~60KB 代码,完整功能 适用: 大多数 CLI 项目 生成内容:

    • P0 核心架构 (所有)
      • utils.ts (环境检测)
      • logger.ts (增强日志)
      • errors.ts (友好错误处理)
      • validation.ts (参数验证)
      • help.ts (帮助生成)
      • exit-codes.ts (标准退出码)
      • completion.ts (Shell 自动补全)
    • P1 功能增强 (4个)
      • progress.ts (单/多进度条)
      • update-check.ts (版本检查)
      • formatters.ts (表格/JSON/列表格式化)
      • summary.ts (操作摘要)
    • 功能特性:
      • 完整的进度反馈
      • 多种输出格式 (text/json/table)
      • 非阻塞版本检查
      • 详细的操作摘要

    Advanced

    特点: 13 个文件,~104KB 代码,企业级质量 适用: 大型项目、团队协作、生产环境 生成内容:

    • Standard 所有功能
    • P1 高级功能 (1个)
      • config-loader.ts (6层配置加载: CLI>环境>项目>用户>系统>默认)
    • P0 高级功能 (1个)
      • prompts.ts (交互式提示)
    • 完整功能特性:
      • 6层配置优先级
      • cosmiconfig 规范支持
      • Zod 验证支持
      • Inquirer 交互式提示
      • 完整的工具集

    代码质量: ⭐⭐⭐⭐⭐ (5/5) 开发效率提升: +97% (从 7.5h → 15min)

    常见使用场景

    场景 1: 创建新的 CLI 工具

    用户: "帮我创建一个 CLI 工具,叫 file-organizer"
    Claude:
      1. 收集配置信息 (名称、描述、功能)
      2. 推荐框架 (默认 Commander.js)
      3. 运行 init_cli.ts
      4. 生成项目结构
      5. 安装依赖
      6. 提供使用指南
    

    场景 2: 框架选择建议

    用户: "Commander.js 和 oclif 哪个更好?"
    Claude:
      1. 加载 framework_comparison.md
      2. 提供对比分析
      3. 根据用户需求推荐
    

    场景 3: CLI 开发问题

    用户: "我的 CLI 测试失败了"
    Claude:
      1. 加载 testing_strategies.md
      2. 诊断问题
      3. 提供解决方案
    

    场景 4: 添加功能到现有 CLI

    用户: "我想在我的 CLI 中添加配置文件支持"
    Claude:
      1. 加载 dependency_guide.md
      2. 推荐 cosmiconfig + zod
      3. 提供实现示例
    

    技术栈默认值

    核心依赖 (所有模板)

    {
      "dependencies": {
        "commander": "^12.0.0",
        "chalk": "^5.3.0"
      },
      "devDependencies": {
        "typescript": "^5.6.0",
        "tsx": "^4.19.0",
        "@types/node": "^22.0.0"
      }
    }
    

    Standard 模板依赖

    {
      "dependencies": {
        "cli-progress": "^3.12.0",
        "cli-table3": "^0.6.3"
      }
    }
    

    功能支持:

    • cli-progress: 单/多进度条、文件操作进度、下载进度
    • cli-table3: 美观的表格输出、CI 环境适配

    Advanced 模板依赖

    {
      "dependencies": {
        "cosmiconfig": "^9.0.0",
        "zod": "^3.23.0",
        "inquirer": "^9.0.0"
      }
    }
    

    功能支持:

    • cosmiconfig: 6层配置加载、多文件格式支持
    • zod: 类型安全的配置验证
    • inquirer: 交互式提示、输入确认

    开发工具依赖

    {
      "devDependencies": {
        "vitest": "^2.1.0",
        "@biomejs/biome": "^1.9.0"
      }
    }
    

    功能支持:

    • vitest: 快速测试框架
    • @biomejs/biome: 代码格式化和 lint

    目录结构示例

    Standard 模板生成的目录

    my-cli/
    ├── src/
    │   ├── commands/         # 命令实现
    │   │   ├── init.ts
    │   │   └── build.ts
    │   ├── lib/              # 工具库 (10 个文件, ~60KB)
    │   │   ├── utils.ts           # 环境检测 (TTY/CI/颜色)
    │   │   ├── logger.ts          # 增强日志系统
    │   │   ├── errors.ts          # 友好错误处理
    │   │   ├── validation.ts      # 参数验证
    │   │   ├── help.ts            # 帮助文档生成
    │   │   ├── exit-codes.ts      # 标准退出码
    │   │   ├── progress.ts        # 进度条 ⭐ NEW
    │   │   ├── update-check.ts    # 版本检查 ⭐ NEW
    │   │   ├── formatters.ts      # 输出格式化 ⭐ NEW
    │   │   └── summary.ts         # 操作摘要 ⭐ NEW
    │   ├── utils/            # 工具函数
    │   └── index.ts          # 入口
    ├── test/                 # 测试文件
    ├── bin/
    │   └── run.js            # 可执行文件
    ├── package.json          # 包含 cli-progress、cli-table3
    ├── tsconfig.json
    ├── vitest.config.ts
    └── README.md
    

    Advanced 模板额外生成

    my-cli/src/lib/
    ├── config-loader.ts      # 6层配置加载 ⭐ NEW
    └── prompts.ts            # 交互式提示 ⭐ NEW
    

    开发命令

    生成的 CLI 项目包含以下 npm scripts:

    {
      "scripts": {
        "dev": "tsx watch src/index.ts",
        "build": "tsdown src/index.ts --format cjs,esm",
        "test": "vitest",
        "test:coverage": "vitest run --coverage",
        "lint": "biome check .",
        "format": "biome format . --write",
        "typecheck": "tsc --noEmit"
      }
    }
    

    质量检查清单

    在发布 CLI 前,确保:

    • 可以运行 --help 显示帮助信息
    • 可以运行 --version 显示版本号
    • 支持 NO_COLOR 环境变量
    • 错误信息清晰有用
    • 测试覆盖率 > 80%
    • TypeScript 编译无错误
    • 通过 lint 检查
    • README.md 包含使用示例
    • package.json 包含正确的 bin 字段
    Recommended Servers
    fillin
    fillin
    DataForB2B
    DataForB2B
    Hostsmith
    Hostsmith
    Repository
    evanfang0054/cc-system-creator-scripts
    Files