smithery.ai

cli-creator

创建生产级 Node.js CLI 工?

First seen Apr 11, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 13,456 B
  • docs SUMMARY.md 425 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

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 字段