The modern Flutter CLI for project scaffolding, automation, code generation, builds, flavors, Firebase App Distribution, and developer productivity.
🚀 Scaffold • ⚙️ Automate • 🏗️ Generate • 📦 Build • 🔥 Deploy
dart pub global activate flutter_devops_kitVerify the installation:
fkit doctor# Check your development environment
fkit doctor
# Initialize FKIT inside your Flutter project
fkit init
# Generate a new feature
fkit gen feature- 🏗️ Project initialization & setup
- 📂 Feature & module code generation
- 🎯 Clean Architecture templates
- 🧩 BLoC, Riverpod & Provider support
- 📦 APK, AAB & IPA build automation
- 🔥 Firebase App Distribution
- 🎨 Multi-flavor project management
- 📱 Launcher icon & asset generation
- 🌍 Localization support
- ⚡ FVM integration
- 🛠️ Developer productivity commands
- 🔄 Reusable template system
FKIT (Flutter DevOps Kit) is a reusable command-line toolkit built for Flutter developers, teams, and organizations.
Instead of repeatedly configuring project structure, architecture, modules, builds, signing, localization, launcher icons, Firebase App Distribution, and code generation manually, FKIT provides a unified, scalable, and consistent CLI workflow.
Install FKIT once, configure your project using a simple fkit.yaml file, and automate the repetitive parts of Flutter development.
FKIT is built around four core principles:
- ⚡ Project Automation — Eliminate repetitive Flutter setup tasks.
- 🏗️ Template-Driven Code Generation — Generate production-ready architecture and boilerplate.
- 🚀 Build & Release Automation — Simplify APK, AAB, IPA builds, flavors, signing, and Firebase App Distribution.
- 🛠️ Developer Productivity — Standardize workflows across personal, team, and enterprise projects.
Whether you're starting a brand-new Flutter application or maintaining a large production codebase, FKIT helps you automate repetitive tasks, enforce consistency, and accelerate development.
FKIT can be installed globally using the Dart package manager.
Before installing FKIT, make sure the following are available:
- Flutter SDK
- Dart SDK
- Git
Verify your Flutter and Dart installations:
flutter --version
dart --versionInstall FKIT globally:
dart pub global activate flutter_devops_kitAdd the Dart global executable directory to your PATH.
echo 'export PATH="$PATH:$HOME/.pub-cache/bin"' >> ~/.zshrc
source ~/.zshrcecho 'export PATH="$PATH:$HOME/.pub-cache/bin"' >> ~/.bashrc
source ~/.bashrcVerify the installation:
fkit helpInstall FKIT globally using PowerShell or Command Prompt:
dart pub global activate flutter_devops_kitThe Dart global executable directory is typically:
%LOCALAPPDATA%\Pub\Cache\bin
Add this directory to the Windows PATH environment variable.
- Open System Properties.
- Select Advanced.
- Select Environment Variables.
- Under User variables, select the
Pathvariable. - Select Edit.
- Select New.
- Add:
%LOCALAPPDATA%\Pub\Cache\bin - Save the changes and restart your terminal.
Verify the installation:
fkit helpTo update to the latest published version:
dart pub global activate flutter_devops_kitTo remove FKIT:
dart pub global deactivate flutter_devops_kitAfter installation, run:
fkit helpYou can also verify your development environment with:
fkit doctorOnce installed, FKIT is available globally and can be used inside any Flutter project.
Flutter projects often require repetitive setup and maintenance tasks such as:
- Creating architecture-specific feature folders
- Generating DTOs, entities, repositories, use cases, BLoC's, and screens
- Maintaining dependency injection registrations
- Maintaining application routes
- Installing reusable project modules
- Configuring launcher icons
- Running code generation
- Managing Flutter and FVM commands
- Building APK, AAB, IPA, and Web applications
- Managing flavors
- Uploading builds to Firebase App Distribution
- Configuring Android signing
- Managing localization workflows
- Running formatting, analysis, and automated fixes
FKIT provides a single CLI interface for these workflows.
fkit <command>Current release:
0.1.1
FKIT is under active development.
The current release focuses on building the foundation for a scalable Flutter CLI ecosystem, including template-driven generation, reusable modules, project automation, and architecture-aware maintenance.
- Global CLI installation
- Interactive project initialization
- YAML-based project configuration
- Template-driven project setup
- Automated project bootstrap generation
- Environment diagnostics and validation
- FVM support
- Multi-platform project configuration
- Feature-first architecture scaffolding
- Feature generation with
fkit feat - Component generation with
fkit make - Resource generation workflows
- Template-driven generators
- Automatic barrel file maintenance
- Automatic dependency injection maintenance
- Build Runner integration
- Module installation with
fkit install - Template-defined module configuration
- Interactive module options
- Conditional file generation
- Conditional package dependencies
- Automated dependency management
- Generic and DI-specific module integrations
Currently available modules:
- Theme
- Router
- Network
- GoRouter module generation
- Automatic route discovery
- Automatic route synchronization
- Existing route detection
- Duplicate route prevention
- Preservation of manually customized routes
- Automatic route import maintenance
- Dio-based API service
- Typed API responses
- Generic response mappers
- Object and list response mapping
- Pagination support
- API response extensions
- Centralized failure handling
- Dio exception mapping
- Network connectivity monitoring
- Network interceptor
- Authentication interceptor
- Optional Talker application and network logging
- Localization setup
- ARB file generation
l10n.yamlgeneration- Localization validation
- Localization diagnostics
- Automatic Flutter localization dependency configuration
- APK builds
- Android App Bundle builds
- IPA builds
- Flutter Web builds
- Flavor-aware workflows
- Firebase App Distribution
- Android signing setup
- Dart code obfuscation support
- Additional reusable modules
- Additional architecture templates
- Improved project setup customization
- Expanded automated test coverage
- Additional module integration strategies
- Fastlane integration
- Play Store deployment
- App Store deployment
- Web deployment automation
- Release pipelines
- Git tagging
- Changelog generation
- CI/CD templates
- Slack and Discord notifications
Run inside your Flutter project:
fkit initThis creates the FKIT project configuration and allows you to configure project settings and select the default architecture template.
Before running the complete project setup, configure any project-specific prerequisites required by your application.
Examples include:
- Firebase configuration
- Flutter flavors
- Environment files
- Platform-specific configuration
fkit setupThe setup command reads the selected architecture template and automatically performs the configured project setup workflow.
Depending on the selected template, FKIT can:
- Install reusable modules
- Add required dependencies
- Generate configured features
- Synchronize dependency injection
- Synchronize application routes
- Generate project bootstrap files
- Configure project-level requirements
- Run dependency synchronization
- Execute required code generation
For example, a template may define:
setup:
modules:
- theme
- router
- network
features:
- auth
bootstrap:
enabled: true
app:
template: bootstrap/app.dart.tpl
output: lib/app/view/app.dart
main:
template: bootstrap/main.dart.tpl
output: lib/main.dartRunning:
fkit setupcan transform a fresh Flutter project into a structured, architecture-ready starting point.
fkit doctorfkit feat profilefkit make screen auth loginfkit install networkfkit build apk productionfkit firebase production| Command | Description |
|---|---|
fkit help |
Show available commands |
fkit doctor |
Validate the development environment |
fkit init |
Initialize FKIT configuration |
fkit setup |
Setup the project using the selected architecture template |
fkit config |
Display the currently loaded FKIT configuration |
fkit feat auth |
Generate a complete feature module |
fkit make screen auth login |
Generate a feature component |
fkit install theme |
Install the theme module |
fkit install router |
Install the router module |
fkit install network |
Install the network module |
fkit l10n setup |
Setup Flutter localization |
fkit l10n generate |
Generate localization files |
fkit l10n doctor |
Validate localization configuration |
fkit build apk production |
Build an APK |
fkit build aab production |
Build an Android App Bundle |
fkit build ipa production |
Build an IPA |
fkit build web production |
Build the Flutter Web application |
fkit firebase production |
Upload a build to Firebase App Distribution |
fkit signing setup |
Setup Android signing |
FKIT uses reusable architecture templates to define how projects, features, components, modules, routing, dependency injection, and project setup workflows are generated.
The currently available template is:
bloc_clean— Feature-first Clean Architecture usingflutter_bloc
Templates can define:
- Feature structure
- Components
- Component groups
- Barrel files
- Dependency injection
- Routing
- Reusable modules
- Project requirements
- Project setup workflows
- Application bootstrap files
This architecture allows FKIT to support additional project structures and state-management approaches in future releases without coupling generators directly to a single architecture.
FKIT modules provide reusable project-level functionality that can be installed independently.
fkit install <module>Available modules include:
fkit install theme
fkit install router
fkit install networkModules can define:
- Generated files
- Required dependencies
- Development dependencies
- Interactive configuration options
- Conditional files
- Conditional dependencies
- Build Runner requirements
- Template and DI-specific integrations
This allows modules to remain reusable while adapting their integration behavior to the selected architecture template.
FKIT follows a configuration-driven and template-driven architecture.
The CLI is organized around:
Commands
↓
Services
↓
Templates
↓
Generators
↓
Resolvers
↓
Maintainers
↓
Integrators
Major architectural concepts include:
- Commands for user-facing workflows
- Services for reusable application logic
- Templates for architecture-specific behavior
- Generators for file creation
- Resolvers for project discovery
- Maintainers for existing code synchronization
- Integrators for module and architecture integration
This structure is designed to prevent architecture-specific logic from being hardcoded directly into CLI commands.
A configured Flutter project may look like:
my_flutter_project/
├── android/
├── ios/
├── web/
├── lib/
│ ├── app/
│ ├── core/
│ └── features/
├── env/
├── pubspec.yaml
└── fkit.yaml
The exact project structure depends on the selected FKIT architecture template.
Clone the FKIT repository and retrieve dependencies:
dart pub getRun FKIT locally:
dart run bin/fkit.dart helpActivate the local package globally:
dart pub global activate --source path .After making CLI changes, reactivate the package:
dart pub global activate --source path .Run FKIT inside a test Flutter project:
fkit helpBefore publishing a new FKIT version:
dart format .dart analyzedart testRun a dry publish:
dart pub publish --dry-runIf validation succeeds:
dart pub publishFKIT is under active development.
The 0.1.x releases focus on establishing the core architecture, template system, generators, maintainers, reusable modules, and project automation foundation.
Breaking changes may occur while the architecture evolves toward a stable release.
Contributions, bug reports, architecture templates, modules, and automation ideas are welcome.
Areas of contribution include:
- Build automation
- Deployment workflows
- Architecture templates
- Module development
- Feature generators
- Maintainers
- Integrators
- CI/CD templates
- Documentation
- Testing
MIT License
Built with ❤️ for scalable Flutter engineering workflows.
