npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ricardogenaro99/scaffolder

v1.2.1

Published

CLI interactivo para instanciar proyectos desde repositorios plantilla de GitHub (topic: scaffold-template) y para convertir cualquier repo en plantilla.

Readme

🚀 @ricardogenaro99/scaffolder (scaffolder)

CLI interactivo con Arquitectura Dinámica, Menú Interactivo, Paleta de Colores Semántica y High-End DX para instanciar proyectos desde plantillas de GitHub y convertir cualquier repositorio en plantilla.

npm version License: MIT Node.js Version


📦 1. Identidad y Modos de Distribución

  • Repositorio en GitHub: ricardogenaro99/cli-scaffolder
  • Nombre de Paquete en npm: @ricardogenaro99/scaffolder
  • Comando Binario en Terminal: scaffolder

Vías de Ejecución Soportadas:

  1. Ejecución al vuelo vía npx (Recomendado):
    npx @ricardogenaro99/scaffolder [command|project-name] [options]
  2. Instalación Global desde NPM:
    pnpm add -g @ricardogenaro99/scaffolder
    # o bien: npm install -g @ricardogenaro99/scaffolder
    scaffolder --help
  3. Instalación Global Directa desde GitHub:
    npm install -g ricardogenaro99/cli-scaffolder
    # o usando la URL de Git:
    npm install -g git+https://github.com/ricardogenaro99/cli-scaffolder.git
  4. Desarrollo Local:
    git clone [email protected]:ricardogenaro99/cli-scaffolder.git
    cd cli-scaffolder
    pnpm install
    pnpm build
    pnpm link --global

🎯 2. Tres Modos de Entrada (User Entrypoints)

Modo 1: Menú Principal Interactivo (scaffolder)

Invoca el comando scaffolder sin argumentos para desplegar un hub interactivo guiado por teclado:

scaffolder
  • 🚀 Crear nuevo proyecto → Inicia el selector fuzzy de plantillas y preguntas dinámicas.
  • ⚙️ Configurar repo como template → Inicia el asistente de creación de template.config.json.
  • 📋 Listar templates disponibles → Muestra tabla de plantillas remotas y locales.
  • 🤖 Instalar / Gestionar Skill para Agentes de IA → Asistente interactivo para configurar el skill para agentes.
  • 🚪 Salir → Finaliza la sesión limpiamente.

Modo 2: Atajo Directo (scaffolder <project-name>)

Salta directo al selector de plantillas y preguntas dinámicas para dicho proyecto, omitiendo el menú principal:

scaffolder my-awesome-backend

Modo 3: Subcomandos Explícitos & Automatización CI/CD / Headless

  • Instanciación interactiva directa:
    scaffolder create my-service --template ricardogenaro99/aws-cdk-nestjs-archetype-template
  • Instanciación 100% desatendida / No interactiva (CI/CD, Agentes de IA, Scripts):
    # Usando valores default declarados en template.config.json:
    scaffolder create billing-service --template ricardogenaro99/aws-cdk-nestjs-archetype-template --yes
    
    # Sobreescribiendo variables específicas con --var:
    scaffolder create kinpet-api \
      --template ricardogenaro99/aws-cdk-nestjs-archetype-template \
      --yes \
      --var REPO_ABREV=KINPET \
      --var STACK_NAME=KinpetApiStack \
      --var AWS_REGION=us-east-1
    • -y, --yes / --non-interactive: Omite spinners interactivos y confirmaciones de teclado. Resuelve prompts automáticamente con sus defaults o flags --var.
    • --var <key=val...>: Inyecta o sobreescribe variables dinámicas (soporta múltiples --var en la misma invocación).
    • --dry-run: Simula la ejecución sin modificar archivos en disco.
    • --verbose: Muestra salida detallada y streaming de comandos.
  • Gestión de Skill para Agentes de IA:
    # Instalar skill globalmente (~/.agents/skills/scaffolder/SKILL.md):
    scaffolder skill install --global
    
    # Instalar skill en el repo actual (.agents/skills/scaffolder/SKILL.md):
    scaffolder skill install --local
    
    # Mostrar el contenido íntegro del skill para lectura directa por LLMs:
    scaffolder skill show
    
    # Consultar estado de instalación:
    scaffolder skill status
  • Asistente de autoría:
    scaffolder init
  • Exploración de plantillas:
    scaffolder list

🎨 3. Sistema de Diseño Visual y DX

El CLI incorpora una paleta de colores semántica construida con picocolors, boxen, @clack/prompts y figures:

  • Banner Inicial: Logo ASCII degradado en cian/magenta con indicación de versión y autoría (by @ricardogenaro99).
  • Context Badge: ☁️ GitHub (@ricardogenaro99) • API: 4980/5000 (verde/cian) o 💻 Local • <path>.
  • Selector con Fuzzy Search & Tags: Badges coloreados por tecnología ([NodeJS] en verde, [AWS-CDK] en amarillo, [Serverless] en magenta).
  • Summary Box Pre-Vuelo: Tarjeta formateada con bordes redondeados (boxen) que resume las variables capturadas en cian antes de modificar el disco.
  • Barra de Progreso por Pasos: Etapas numeradas ([1/5]) con cronómetro por paso en gris tenue (✔ (1.1s)).
  • Project Tree View Post-Scaffold: Vista en árbol visual (📁/📄) destacando archivos clave en verde y tokens inyectados en cian.
  • Actionable Error Cards: Tarjetas de error con borde rojo y bloque de sugerencia en amarillo (💡 Sugerencia:).
  • Rollback Automático: Ante cualquier fallo en los hooks o extracción, se eliminan automáticamente las carpetas creadas parcialmente.

⚙️ 4. Contrato de Referencia (template.config.json)

Toda plantilla compatible incluye en la raíz el archivo template.config.json validado contra el esquema público:

{
  "$schema": "https://raw.githubusercontent.com/ricardogenaro99/cli-scaffolder/main/schemas/template.config.schema.json",
  "version": "1.0.0",
  "name": "AWS CDK + NestJS Archetype",
  "description": "Plantilla empresarial backend con NestJS, TypeScript y AWS CDK v2",
  "category": "Backend & Cloud",
  "order": 1,
  "defaultBranch": "master",
  "tags": ["nestjs", "aws-cdk", "typescript", "serverless", "pnpm"],
  "prompts": [
    {
      "name": "PROJECT_NAME",
      "type": "text",
      "message": "Nombre del proyecto (kebab-case):",
      "default": "my-service",
      "validate": "^[a-z0-9-]+$"
    },
    {
      "name": "STACK_PREFIX",
      "type": "text",
      "message": "Prefijo de Stacks CDK (PascalCase):",
      "default": "MyService",
      "validate": "^[A-Z][a-zA-Z0-9]+$"
    }
  ],
  "replacements": {
    "files": ["package.json", "cdk.json", "README.md"],
    "tokens": {
      "{{PROJECT_NAME}}": "PROJECT_NAME",
      "{{STACK_PREFIX}}": "STACK_PREFIX"
    }
  },
  "envSetup": {
    "copyExample": true,
    "source": ".env.example",
    "target": ".env"
  },
  "hooks": {
    "postScaffold": [
      "pnpm install"
    ]
  },
  "postInstall": {
    "initGit": true,
    "welcomeMessage": "🚀 ¡Proyecto instanciado con éxito! Ejecuta 'pnpm start:local' para comenzar."
  },
  "cleanup": ["template.config.json", ".DS_Store"]
}

🤖 5. Soporte Nativo para Agentes de IA (Agent-Native DX)

@ricardogenaro99/scaffolder está diseñado como un CLI Agent-First. Incluye un skill oficial (SKILL.md) que dota a cualquier agente de IA de conocimiento completo sobre el CLI, la matriz de decisiones para variables y el protocolo de ejecución desatendida.

Vía A: Instalación Automática mediante el CLI

  1. Desde el menú interactivo: Ejecuta scaffolder y selecciona 🤖 Instalar / Gestionar Skill para Agentes de IA. El CLI te preguntará si deseas instalarlo de forma global o local en el proyecto actual.
  2. Por comando de terminal:
    # Instalación global (Recomendado para todo el sistema):
    scaffolder skill install --global -y
    
    # Instalación local (Para compartir dentro de un repositorio monorepo/equipo):
    scaffolder skill install --local -y
    
    # Mostrar el contenido para lectura directa de un LLM:
    scaffolder skill show

Vía B: Configuración Manual desde el Repositorio

Si prefieres no utilizar el comando del CLI, puedes copiar el archivo fuente que reside en este repositorio:

  • Archivo fuente SSOT: skills/scaffolder/SKILL.md
  • Destino Global: Copia el archivo a ~/.agents/skills/scaffolder/SKILL.md (o ~/.gemini/skills/ / ~/.claude/skills/).
  • Destino Local: Copia el archivo a .agents/skills/scaffolder/SKILL.md en la raíz de tu proyecto.

Ecosistemas de IA Soportados:

  • Google DeepMind Antigravity: Descubrimiento automático en ~/.agents/skills/ y .gemini/skills/.
  • Claude Code (Anthropic): Reconocimiento inmediato de skills en la bóveda de herramientas.
  • OpenClaw / Shelbot: Acceso nativo para orquestación personal y subprocesos.
  • Cursor & Windsurf: Lectura de reglas y prompts de arquitectura para scaffolding autónomo.

🔑 6. Variables de Entorno

  • GITHUB_TOKEN / GH_TOKEN: Token de acceso personal de GitHub para evitar límites de tasa (Rate Limit). El CLI también detecta automáticamente tokens activos vía gh auth token.
  • LOCAL_TEMPLATES_DIR: Ruta personalizada para almacenamiento y prueba offline de plantillas locales.

🛠️ 6. Desarrollo y Testing

# Compilación rápida ESM con tsup
pnpm build

# Ejecutar suite de pruebas con Vitest
pnpm test

# Verificación de tipos y linting
pnpm typecheck
pnpm lint

📄 Licencia

Desarrollado por Ricardo Genaro bajo la Licencia MIT.