NonStop
Digital Product Development Experts for Startups & Enterprises
🎉 Founded by Ajay Kumar 🎉**
🚀 NonStop CLI
⚡ Supercharge your Flutter development with mono-repo magic
🎯 What is NonStop CLI?
The NonStop CLI simplifies Flutter project setup and management, with a focus on mono-repository structures using Melos. It provides standardized templates, validation tools for your development environment, and ongoing updates for the best experience.
🎨 Perfect for teams who want consistent project structure and streamlined development workflows
🚀 Quick Start
# Install NonStop CLI globally
dart pub global activate nonstop_cli
# Check your development environment
nonstop doctor
# Create your first mono-repo project
nonstop create my_awesome_app
# Navigate and start coding!
cd my_awesome_app
📖 Commands
🏗️ create - Project Generator
Creates a new Flutter project based on predefined templates.
nonstop create <project-name> [arguments]
🔧 Arguments
| Argument | Alias | Description | Default |
|---|---|---|---|
--template |
-t |
Type of project to create | mono |
--output-directory |
-o |
Output directory for the new project | Current directory |
--description |
--desc |
Description for the new project | "A Melos-managed project for mono-repo, created using NonStop CLI." |
--org-name |
--org |
Organization name for the new project | com.example |
--defaults |
-y |
Skip the module picker and take the recommended set | Prompt |
📦 Template Options
| Template | 🎯 Description | 📁 Structure Created |
|---|---|---|
mono |
🏢 Generate a full app skeleton in a mono-repo (default) | App shell, design system, localization and the modules you pick |
package |
📦 Generate a Flutter package for a Melos-managed mono-repo | Flutter package compatible with mono-repo structure |
app |
📱 Generate a Flutter application for a Melos-managed mono-repo | Flutter application configured for mono-repo structure |
plugin |
🔌 Generate a Flutter plugin for a Melos-managed mono-repo | Flutter plugin compatible with mono-repo structure |
💡 Examples
🧩 Modules
mono does not stop at empty folders. It asks which platform modules the app
needs and generates them wired together - bootstrap order, DI registration,
route table and all.
? Which modules should youtube start with?
❯ ◉ Network - Dio client, auth + logging interceptors, typed errors
◉ Authentication - Firebase Auth (email, Google, Apple) with route guards
◯ Cloud Firestore - Firestore + Cloud Functions wiring and timestamp converters
◉ Push notifications
◉ Analytics
◉ Crash reporting
◉ Feature flags
◉ Developer tools
◉ Dashboard shell
Answer non-interactively with -y (recommended set) or per module:
nonstop create youtube -y --no-notifications --firestore
Two rules are applied for you, because the code will not compile otherwise:
push notifications pull in network, and developer tools pull in
feature_flags.
Every project also gets core, di, design_system, localization and
utils - the pieces every app needs.
🏢 Create a mono-repo project
nonstop create youtube
This creates the following structure:
youtube/
├── 📱 apps/
│ └── youtube/ # bootstrap, router, splash - no business logic
├── 🧩 features/
│ ├── auth/ # Firebase Auth + route guards
│ └── dashboard/ # bottom-navigation shell
├── 📦 packages/
│ ├── core/ # logger, DI bootstrap, observers, error types
│ ├── design_system/ # Material 3 theme, components, toasts
│ ├── di/ # service locator
│ ├── localization/ # type-safe strings (i69n)
│ ├── network/ # Dio client and interceptors
│ ├── analytics/
│ ├── crashlytics/
│ ├── feature_flags/
│ ├── notifications/
│ ├── developer/
│ └── utils/
├── 🔌 plugins/
├── 📋 analysis_options.yaml
├── 📖 README.md
├── ⚙️ melos.yaml
└── 📄 pubspec.yaml
The generated workspace is bootstrapped, formatted and passes its own
melos lint and melos test before you touch it. If you picked any Firebase
module, run flutterfire configure in the app directory - the generated
firebase_options.dart throws until you do.
📦 Create a Flutter package for a mono-repo
nonstop create core --template package
📱 Create a Flutter application for a mono-repo
nonstop create youtube_studio --template app -o ./apps
🏢 Create with custom organization
nonstop create youtube_music --org-name com.youtube
📁 Create in a specific directory
nonstop create youtube -o ./projects
🩺 doctor - Environment Checker
Checks your development environment to ensure all required tools are installed and configured correctly.
nonstop doctor
🔍 What it checks:
| Tool | 📋 Analysis |
|---|---|
| 🐦 Flutter | Installation and version compatibility |
| 🎯 Dart SDK | Installation and version compatibility |
| 🔧 Melos | Installation and version compatibility |
📊 Status Indicators:
- ✅ Success: Tool is installed and working properly
- ⚠️ Partial: Tool is installed but has issues
- ❌ Missing: Tool is not installed or not found
🔄 update - Stay Current
Updates the NonStop CLI to the latest version automatically.
nonstop update
🚀 What it does:
- 🔍 Checks the current installed version
- 🌐 Compares with the latest version on pub.dev
- ⬆️ Updates to the latest version if needed
🔄 Common Workflows
🚀 Setting up a new Flutter project with mono-repo
# 1️⃣ Check if your environment is properly set up
nonstop doctor
# 2️⃣ Create a new Flutter project with mono-repo structure
nonstop create youtube
# 3️⃣ Navigate to the project directory
cd youtube
# 🎉 You're ready to code!
📦 Adding a new package to an existing mono-repo
# 1️⃣ Navigate to your mono-repo root
cd youtube/packages
# 2️⃣ Create a new package
nonstop create core --template package
# 3️⃣ Update dependencies
melos bootstrap
📱 Adding a new app to an existing mono-repo
# 1️⃣ Create a new app in the apps directory
nonstop create youtube_studio --template app -o ./apps
# 2️⃣ Update dependencies
melos bootstrap
🛠️ Troubleshooting
❌ CLI not found after installation
Ensure the Dart SDK bin directory is in your PATH. Follow the instructions at: 📖 Running a script from your PATH
⚠️ Doctor command shows issues
If the doctor command shows issues with your development environment:
- 🐦 Ensure Flutter is installed correctly: Flutter Installation
- 🎯 Verify your Dart SDK installation:
dart --version - 🔧 Install Melos if missing:
dart pub global activate melos
🚫 Template generation fails
If template generation fails:
- 🔐 Ensure you have proper permissions in the target directory
- ✅ Check if the project name is valid (should follow Dart package naming rules)
- 🔍 Run with the
--verboseflag to see detailed logs:nonstop create my_project --verbose
⚙️ Global Options
| Option | Alias | 📝 Description |
|---|---|---|
--version |
-v |
📊 Print the current version of the CLI |
--verbose |
🔍 Enable verbose logging including all shell commands | |
--help |
-h |
❓ Display help information for commands |
🔗 Command Aliases
Choose your preferred way to invoke the CLI:
nonstop create my_app # Full command
ns create my_app # Short alias
nsio create my_app # Alternative alias
| Alias | 📝 Description |
|---|---|
nonstop |
🎯 Full command name |
ns |
⚡ Quick shorthand |
nsio |
🚀 Alternative short form |
🔗 Connect with NonStop
⭐ Star us on GitHub if this helped you!
📜 License
This project is licensed under the MIT License - see the LICENSE file for details.
Libraries
- command_runner
- commands/commands
- commands/create/command
- commands/create/flutter_app_for_mono_repo_bundle
- commands/create/flutter_package_for_mono_repo_bundle
- commands/create/flutter_plugin_for_mono_repo_bundle
- commands/create/flutter_project_with_mono_repo_bundle
- commands/create/modules
- commands/create/templates
- commands/doctor/command
- commands/doctor/src/doctor
- commands/doctor/src/utils/comand_version_validator
- commands/doctor/src/utils/doctor_validator
- commands/doctor/src/utils/user_messages
- commands/doctor/src/utils/utils
- commands/doctor/src/validators/dart_validator
- commands/doctor/src/validators/flutter_validator
- commands/doctor/src/validators/melos_validator
- commands/doctor/src/validators/validators
- commands/update/command
- nonstop_cli
- nonstop_cli
- template
- utils/customs
- utils/signature_extension
- utils/summary_extension
- utils/utils
- version