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
./skFeatures 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
Getting Started
Installation, first launch, and basic usage
Configuration
How to configure apps, commands, and settings
Features
Complete feature list and capabilities
Usage Guide
Workflows, examples, and advanced usage
Extensibility
How to extend SK with custom tools and workflows
Troubleshooting
Common issues and solutions