Simple React CLI
A modern CLI tool for creating React projects with multiple frameworks (Vite, Next.js, Remix, Gatsby), Tailwind CSS v4, optional libraries, and a clean setup. Perfect for developers who want to skip boilerplate and start coding immediately! Supports both English and Russian interfaces.
⚠️ Note: This CLI may contain some bugs and issues. Subsequent patches will address and fix all identified problems. If you encounter any issues, please report them for faster resolution.
Changelog
v2.8.3 (2025-10-02) - npm Display Fix
🔧 Hotfixes:
- Fixed npm README Display: Added repository, homepage, and bugs fields to package.json
- npm Metadata: Improved package metadata for better npm website display
- Package Information: Enhanced package discoverability on npm registry
v2.8.2 (2025-10-02) - Enhanced User Experience
🎨 UX Improvements:
- Unified Interface Language: Added initial language selection that applies to entire CLI experience
- Consistent Navigation: Replaced all Y/N prompts with arrow key selection for uniformity
- Visual Consistency: All prompts now use ✅ Да/Yes and ❌ Нет/No with emoji indicators
- Streamlined Setup: Eliminated duplicate language selection during project setup
- Better Visual Feedback: Consistent interaction patterns throughout the application
- Improved Accessibility: All options clearly marked with visual indicators
🔧 Technical Improvements:
- Smart Language Handling: CLI remembers language choice throughout session
- Better Prompt System: Converted confirm prompts to list prompts for consistency
- Fixed Translation System: Corrected import issues with translation functions
- Enhanced Menu Flow: Language change option available in main menu
v2.8.1 (2025-10-02) - UI Improvements
🎨 UX Improvements:
- Cleaner Menu Interface: Removed "Show version" menu item, now displays version directly under main title
- Streamlined Navigation: Version is always visible in header, reducing menu clutter
- Better Visual Hierarchy: Version prominently displayed in green under the CLI title
✨ New Features:
- Interactive Auto-Update: CLI now offers interactive choice to update when new version is available
- Enhanced Menu System: Added new menu items:
- 📋 Show changelog - View complete changelog before updating
- ⬆️ Check for updates - Manual update check with interactive prompt
- Smart Version Display: Version menu now automatically checks for updates and offers to install
- Auto-Restart After Update: CLI automatically suggests restart after successful update
- Bilingual Update System: Full Russian/English support for all update features
🛠️ Improvements:
- Better File Cleanup: Fixed removal of react.svg and vite.svg files for all presets
- Enhanced Error Handling: Improved timeout and error handling for npm operations
- User Experience: More intuitive update flow with clear prompts and feedback
v2.7.2 (2025-10-02) - Package Fix
🔧 Hotfixes:
- Hotfix Readme.md
- Removed Unnecessary Assets: Deleted
react.svg and vite.svg from project template
- Removed Default CSS: Deleted standard
app.css for cleaner setup
- Updated Links: Removed git repository references, added portfolio link
- Template Cleanup: Cleaner project structure without boilerplate assets
✨ New Features:
- Interactive Menu System: Beautiful menu with arrow key navigation (no flags required!)
- 🚀 Start project setup
- 📦 Show version
- ❓ Show help
- 🚪 Exit
- Colored UI: Cyan-themed interface with beautiful ASCII art banners
- Progress Indicators: Integrated
ora spinners for all long-running operations
- Welcome Screen: Minimalist black and white design
- Separate page in
src/pages/Welcome.jsx for easy deletion
- Direct links to all installed package documentation
- Clean, professional appearance
🛡️ Error Handling & Validation:
- Global Error Handler: Comprehensive error handling with custom error classes (CLIError, ValidationError, InstallationError)
- Unhandled Rejection Handler: Catches and logs all unhandled promise rejections
- Graceful Interruption: Proper handling of SIGINT (Ctrl+C) and SIGTERM signals
- Input Validation:
- Path validation with invalid characters (
< > : " | ? *)
- Windows path length limits (240 characters)
- App title validation (max 100 characters)
- Error Logging: All errors logged to
error-log.txt
- Windows Compatibility: Fixed all Windows-specific issues (npx.cmd, spawn errors)
🎨 User Experience:
- Interactive Navigation: Arrow key navigation throughout the entire CLI
- Visual Feedback:
- Spinner animations for all long-running operations
- Color-coded messages (success ✓, warning ⚠, error ❌)
- Cyan-themed ASCII art banners
- Localized messages (Russian/English)
- Better Success Messages:
- Colored completion banner (green with checkmark)
- Clear next steps with highlighted commands
- Menu Navigation:
- Version display with Node.js info
- Detailed help screen in Russian
- Return to menu after viewing info
🔧 Code Quality Improvements:
- Removed Code Duplication:
- Added
writeFileWithLogging helper function
- Simplified project structure creation
- Removed duplicate console logs
- Better Code Organization:
- Created dedicated
error-handler.js module
- Improved separation of concerns with menu system
- Cleaner main flow with async/await
- Optimized Operations:
- Switched from
spawn to execSync for Windows compatibility
- All npm commands use
--silent flag
- Fixed directory creation order
📦 Package Updates:
- Version Bump: v2.5.1 → v2.6.0
- Updated Libraries: All packages compatible with React 19
- framer-motion: v12.23.x (replaces react-spring)
- lucide-react: v0.544.x (10.5M weekly downloads)
- zustand: v5.0.x (11.7M weekly downloads)
- react-hook-form: v7.63.x (13.1M weekly downloads)
- axios: v1.12.x (70.3M weekly downloads)
- Removed Deprecated: react-spring (React 19 conflicts)
🐛 Bug Fixes:
- Fixed Directory Creation: ENOENT error when creating Welcome.jsx
- Windows Compatibility:
- Fixed spawn ENOENT error (npx.cmd handling)
- Fixed spawn EINVAL error (switched to execSync)
- Removed DeprecationWarning (shell:true)
- Peer Dependencies: Removed react-spring to fix React 19 conflicts
- Version Comparison: Fixed semantic version comparison
- Logger: Added missing
white() method
- Translation: All spinner messages properly translated to Russian
- Error Logging: Fixed filename from setup-error.log to error-log.txt
- Duplicate Messages: Removed duplicate console logs
📚 Developer Experience:
- Interactive Menu: No need to remember CLI flags
- Better Error Messages: Detailed error information with context
- Detailed Logging: All errors logged with timestamps
- Cleaner Console Output: Color-coded, organized, professional
- Modern Welcome Screen: Design with all necessary links
- Updated Documentation: README with interactive menu usage
Installation
Quick Install:
npm i -g sr_setup-cli
Alternative methods:
npm install -g sr_setup-cli
npx sr_setup-cli
Usage
Simply run the CLI:
sr_setup-cli
You'll see an interactive menu where you can choose:
- 🚀 Start project setup - Begin interactive installation
- 📦 Show version - Display CLI version
- ❓ Show help - View detailed help information
- 🚪 Exit - Close the CLI
Navigate with arrow keys (↑/↓) and press Enter to select.
After selecting "Start project setup", follow the interactive prompts to configure your project:
- Choose CLI language: English or Русский
- Enter project name
- Enter app title (for browser tab)
- Choose framework: React (Vite), Next.js, Remix, or Gatsby
- Choose installation preset: Minimal, Full, Testing, or Custom
- Create project structure, setup .env files, create .gitignore (optional)
For the library and tool selection, use:
<space> to select
<a> to toggle all
<i> to invert selection
<enter> to proceed
Installation Presets
Choose from pre-configured installation presets:
- Minimal: React + Vite + Tailwind CSS only (fastest setup)
- Full: Router + State + Forms + UI + Testing + Tools (complete development setup) ⚠️ Takes very long time to install
- Testing: Tests + Base Tools (for existing projects)
- Custom: Manual selection of libraries and tools
Preset Contents
Full Preset Includes:
- Libraries: Lucide React, Framer Motion, React Router DOM, Zustand, React Hook Form, Axios
- Tools: ESLint, Prettier, Husky, Lint-Staged, Vitest
Testing Preset Includes:
- Tools: ESLint, Prettier, Husky, Lint-Staged, Vitest, @testing-library/react
Libraries & Tools
- Lucide React: Beautiful, customizable icons
- Framer Motion: Powerful animation library
- React Router: Client-side routing for SPAs
- Zustand: Lightweight state management
- React Hook Form: Performant form handling
- Axios: Promise-based HTTP client
- @testing-library/react: React testing utilities
- ESLint: Code linting for better code quality
- Prettier: Code formatting for consistent style
- Husky: Git hooks for automated checks
Example
sr_setup-cli
This creates a clean project ready for development with your chosen configuration.
Requirements
- Node.js >= 18.0.0
- npm, yarn, or pnpm
License
MIT License. See LICENSE for details.
Author
Oleg Litvinchuk
Portfolio: https://litvinchuk-resume.netlify.app/