A lightweight and powerful CLI tool to scaffold Flutter projects faster with interactive package selection, auto-generated boilerplate, and clean project setup.
FluPilot CLI streamlines Flutter development by providing an interactive command-line interface that automates project setup, package management, and boilerplate code generation. Whether you're building a simple app or a complex enterprise solution, FluPilot CLI helps you get started quickly with industry best practices baked in.
- Smart Bundle ID Configuration: Automated bundle ID setup for seamless deployment
- Directory Selection: Choose your project location with an intuitive picker
- Platform Optimization: Removes unnecessary platforms (web, desktop) for mobile-focused development
FluPilot CLI supports 150+ popular Flutter packages across multiple categories:
- App Setup: Icons, splash screens, onboarding flows
- Animations: Lottie, animate_do, flutter_animate, animated_text_kit
- Navigation: Bottom navigation bars, page indicators, pull-to-refresh
- Utilities: Shimmer effects, loading indicators, toast notifications
- State Management: BLoC, Provider, Riverpod, Hydrated BLoC
- Navigation: GoRouter with auto-generated route configurations
- Dependency Injection: GetIt with pre-configured service locator patterns
- HTTP Clients: Dio, Retrofit with interceptors and error handling
- Code Generation: JSON serialization, Freezed models, build_runner
- Connectivity: Network status monitoring, internet connection checking
- Local Storage: SharedPreferences, Hive, SQLite
- Cloud Services: Firebase (Auth, Firestore, Analytics), Supabase
- Caching: Cached network images, offline-first patterns
- Social Login: Google, Apple, Facebook authentication
- Biometric Auth: Fingerprint, Face ID, local authentication
- Security: Secure storage, encryption, app lock screens
- Internationalization: Easy Localization with auto-generated translations
- Responsive Design: Screen utilities, responsive frameworks
- Accessibility: Screen readers, semantic labels
- Media: Image/video pickers, audio players, camera integration
- System: Device info, package info, URL launcher
- Notifications: Local notifications, push messaging, awesome notifications
lib/
βββ core/
β βββ constants/
β βββ helpers/ # Extensions, spacing, regex utilities
β βββ networking/ # API services, error handling
β βββ services/ # Local auth, notifications, storage
β βββ widgets/ # Reusable UI components
βββ features/
β βββ auth/ # Feature-based modular structure
β βββ data/
β β βββ models/ # Data models with JSON serialization
β β βββ repo/ # Repository pattern implementation
β βββ logic/ # BLoC/Cubit state management
β βββ ui/ # Screens and widgets
βββ main.dart
- Complete auth flow with login/register/forgot password
- Social authentication (Google, Apple) integration
- Biometric authentication support
- Password validation with real-time feedback
- Responsive form design with localization
- Dio HTTP client with interceptors
- API error handling and result patterns
- Retrofit integration for type-safe API calls
- Network connectivity monitoring
- BLoC pattern implementation
- Cubit generators for rapid development
- State persistence with Hydrated BLoC
- Equatable for value comparison
- JSON serialization with json_annotation
- Freezed for immutable data classes
- Build runner automation
- Retrofit API client generation
- Automatic asset folder creation
- pubspec.yaml asset configuration
- Image optimization and organization
- Icon and splash screen generation
- iOS Info.plist permissions setup
- Android manifest permissions
- Firebase/Supabase configuration
- Platform-specific optimizations
- Flutter SDK: Latest stable version
- Git: Version control
- Gum: Interactive CLI components (auto-installed)
- Python 3: For build tools (macOS/Linux) or Python (Windows)
npm install -g flupilot-cli
flupilot-cli
git clone https://github.com/ahmedali109/FluPilot-CLI.git
cd FluPilot-CLI
chmod +x scripts/helper/check_and_install_deps.sh
./scripts/helper/check_and_install_deps.sh
-
Run FluPilot CLI:
flupilot-cli
-
Follow the Interactive Prompts:
- Select project directory
- Enter project name and bundle ID
- Choose package categories
- Select specific packages
- Configure Firebase/Supabase (if selected)
-
Your Project is Ready!:
- All dependencies installed
- Boilerplate code generated
- Platform configurations applied
- Ready to open in your preferred IDE
π Select project location
π Enter Flutter project name
π Configure Bundle ID (com.example.yourapp)
π Create Flutter project with optimized structure
π¦ Choose from 15+ categories:
βββ App Setup (Icons, Splash, Onboarding)
βββ UI Components (Animations, Navigation)
βββ State Management (BLoC, Provider)
βββ Networking (HTTP, GraphQL)
βββ Storage (Local, Cloud)
βββ Authentication (Social, Biometric)
βββ System Integration (Notifications, Device)
π οΈ Generate boilerplate for selected packages
π Create service classes and utilities
ποΈ Set up architecture patterns
βοΈ Configure platform-specific settings
π§ Run build_runner (if needed)
π― Open project in preferred IDE
β
Ready for development!
Quick prototype creation with essential features:
- Authentication system
- Basic UI components
- Local storage
- API integration
Production-ready setup with:
- Clean architecture
- State management
- Comprehensive testing structure
- CI/CD configurations
Educational setup with:
- Best practices implementation
- Modern Flutter patterns
- Code organization examples
- Documentation templates
--help, -h Show help information
--version, -v Display version information
- Animations: Lottie, animate_do, flutter_animate, animated_text_kit
- Indicators: Progress bars, loading spinners, shimmer effects
- Navigation: Bottom nav bars, page indicators, sliding panels
- Utilities: Toast notifications, dialogs, overlays
- State Management: BLoC, Provider, Riverpod, GetX
- Navigation: GoRouter, AutoRoute, Navigator 2.0
- Dependency Injection: GetIt, Injectable, Kiwi
- Code Generation: Build runner, JSON serialization, Freezed
- HTTP: Dio, Retrofit, HTTP interceptors
- GraphQL: GraphQL Flutter, Ferry
- Connectivity: Network monitoring, offline support
- Caching: Image caching, data persistence
- Local: SharedPreferences, Hive, SQLite, Secure Storage
- Cloud: Firebase, Supabase, AWS Amplify
- Caching: Cache management, offline-first patterns
- Social: Google, Apple, Facebook, Twitter sign-in
- Biometric: Fingerprint, Face ID, local authentication
- Security: JWT handling, secure storage, encryption
# Automatically configured
firebase_core: ^latest
firebase_auth: ^latest
cloud_firestore: ^latest
firebase_analytics: ^latest
// Auto-generated cubit structure
class AuthCubit extends Cubit<AuthState> {
AuthCubit() : super(AuthInitial());
void login(String email, String password) {
// Implementation generated
}
}
// Auto-configured API service
class ApiService {
final Dio _dio = DioFactory.getDio();
Future<Response> getData() {
// Type-safe API calls
}
}
We welcome contributions! Here's how you can help:
- Use the issue tracker
- Provide detailed reproduction steps
- Include system information
- Suggest new packages or integrations
- Propose architecture improvements
- Share use case scenarios
# Fork the repository
git clone https://github.com/yourusername/FluPilot-CLI.git
cd FluPilot-CLI
# Create feature branch
git checkout -b feature/amazing-feature
# Make your changes and test
./scripts/helper/check_and_install_deps.sh
# Submit pull request
- Improve README sections
- Add code examples
- Create tutorial content
- Translate documentation
- Template System: Custom project templates
- Plugin Architecture: Third-party integrations
- Testing Setup: Unit, widget, and integration tests
- CI/CD Templates: GitHub Actions, GitLab CI
- Web Support: Web-specific packages and setup
- Desktop Support: Windows, macOS, Linux configurations
This project is licensed under the ISC License - see the LICENSE file for details.
Made with β€οΈ by Ahmed Ali