Skip to content

monorepo_toolkit Free

CLI toolkit for Flutter monorepo management. Generates the devtools/ directory with a full suite of automation scripts — build preparation, dependency management, environment sync, flavor management, and more.

Version: 1.0.0

Included Scripts

The monorepo_toolkit generates these scripts out of the box — all free:

ScriptDescription
build_prepareBuild-time dependency swapping (noop/impl pattern for release stripping)
dependency_graphDependency enforcement and visualization between packages
dependency_managerCentralized dependency version management across packages
env_syncEnvironment variable synchronization across flavors and packages
flavor_managerFlavor/environment configuration management (dev, staging, production)
workspace_setupInitial workspace setup and bootstrap automation
app_scaffoldAdd new app targets to existing monorepo
shared_scriptsShared utility scripts used by other commands
run_appInteractive device selection and flavor-aware app launcher

Planned Additions

  • CMake support for native build configuration
  • melos run:android / melos run:ios convenience commands
  • Integration test support with Maestro or Patrol

Extensible with Pro & Enterprise Bricks

The toolkit can be extended with additional devtools bricks:

BrickTierDescription
asset_generatorFreeType-safe asset enum generation
ui_kit_generatorFreeCLI commands for component/theme management
coverage_managerProTest coverage pipeline with thresholds
size_guardProFile size threshold enforcement
asset_optimizerProImage optimization (SVG, PNG, JPEG)
affectedEnterpriseGit-based affected package detection for CI
ui_kit_themeEnterpriseAdvanced theme variant management

Variables

VariableTypeDefaultDescription
appNamestringMyAppThe name of your application
organizationstringMyCompanyThe name of your organization
isForMonorepobooleantrueWhether this is being generated as part of a monorepo

Usage

Interactive

bash
archipelago generate monorepo_toolkit

Non-interactive (CI)

bash
archipelago generate monorepo_toolkit --config my_config.json

Config Template

json
{
  "@appName": "The name of your application",
  "appName": "MyApp",
  "@organization": "The name of your organization",
  "organization": "MyCompany",
  "@isForMonorepo": "Whether this is being generated as part of a monorepo",
  "isForMonorepo": true
}

Generated Structure

devtools/
├── monorepo_toolkit/
│   ├── bin/
│   │   └── monorepo_toolkit.dart          # CLI entry point
│   ├── lib/
│   │   ├── monorepo_toolkit.dart
│   │   └── src/
│   │       ├── command_runner.dart         # CLI command runner
│   │       └── models/
│   │           └── config_registry.dart    # Script config registry
│   └── pubspec.yaml
└── scripts/
    ├── app_scaffold/                      # Add new apps
    ├── build_prepare/                     # Build-time dep swap
    ├── dependency_graph/                  # Dependency enforcement
    ├── dependency_manager/                # Version management
    ├── env_sync/                          # Environment sync
    ├── flavor_manager/                    # Flavor management
    ├── run_app/                           # Interactive app launcher
    ├── shared_scripts/                    # Shared utilities
    └── workspace_setup/                   # Bootstrap automation

Built by Banua Coder