My App

SK

Interactive CLI tool for managing the Skriuw monorepo

SK

SK is a powerful, interactive command-line tool designed to streamline development, building, and deployment workflows for Node.js monorepos and single-package projects.

Overview

The CLI provides an elegant interface with:

  • Interactive Menu - Beautiful ASCII art and arrow-key navigation
  • Process Management - Run multiple apps without blocking the terminal
  • Hotkey Controls - Quick actions with single keypresses (O, C, R, S, I)
  • Build Automation - Build individual apps or all at once with detailed summaries
  • Deployment Integration - Direct Vercel deployment from the CLI
  • Live Monitoring - Real-time status of running applications

Quick Start

Launch the CLI from the project root:

# Option 1: Full command
bun run cli

# Option 2: Short alias
bun run sk

# Option 3: Shell script
./sk

Features at a Glance

Development

  • Start individual apps or all apps simultaneously
  • Non-blocking process execution
  • Clean, filtered output (suppresses framework noise)
  • Real-time app status with port and URL information

Build & Deploy

  • Build with timing and success/failure tracking
  • Summary reports for batch builds
  • Vercel staging and production deployment
  • One-command build automation

App Management

  • Interactive hotkey controls
  • Open in browser or code editor
  • Restart or stop apps on the fly
  • Install packages without stopping servers

Configuration

  • Single config file at tools/sk/src/config.ts
  • Per-app settings (name, path, commands, port, color)
  • Global settings (editor, deployment commands, logo)
  • Easy to add new apps or modify existing ones

Advanced Features

  • Version management - Update and release versions from CLI
  • Auto-release script - Automated npm publishing
  • Logging system - Comprehensive logs with rotation
  • Health checks - Monitor app status and ports
  • Storage configuration - Customizable storage paths

Architecture

The CLI is built with:

  • TypeScript for type safety and maintainability
  • Inquirer.js for interactive menus and prompts
  • Chalk for colorized terminal output
  • Ora for loading spinners
  • Execa for robust process execution
  • Node.js child_process for non-blocking app management

Documentation