Skip to content

Guides

Flutter project generator CLI: create an app and add features from the terminal ​

Short answer. flutter create makes an empty app. A project generator CLI makes an app that already has structure, and some can also add features later. The common choices are flutter create, Very Good CLI, Mason and Archipelago. Pick by what you want on day one: an empty app, a tested single app, your own templates, or a modular monorepo that grows by command.

This page shows the real commands for Archipelago and how it differs from the others. For a side-by-side table with sources, see Flutter boilerplate generators compared.

What a generator should do ​

A generator earns its place when it does more than copy files:

  • It uses your names. The app name, organization and class prefix are in every file, not my_app.
  • It takes options. State management, network library, CI provider and analytics vendors are choices, not forks.
  • It runs without a person. A config file and an output folder let it run in CI or a script.
  • It adds to the project later. Features come as commands, not as copy and paste.
  • It handles upgrades. Generated code is not frozen on the day you made it.

The four common options ​

ToolCommandWhat you get
flutter createflutter create my_appAn empty Flutter app. You set up the rest.
Very Good CLIvery_good create flutter_app my_appA tested app with bloc, flavors and GitHub Actions. Free, no sign-in. It also makes packages, plugins, Dart CLIs and Flame games.
Masonmason make <brick>The output of any brick, in any project. You pick and keep the bricks consistent. Free.
Archipelagoarchipelago createA modular Flutter monorepo with DI, routing, flavors, CI and a devtools/ toolkit. Features come later with archipelago generate <brick>.

Each is a good answer to a different question. Archipelago vs Very Good CLI goes into detail on the closest pair.

Create a project with Archipelago ​

bash
dart pub global activate archipelago_cli
archipelago doctor
archipelago auth login --interactive
archipelago create --output ./my_app
  • doctor checks the Dart and Flutter SDKs, Git and the tools the project uses. archipelago doctor --fix installs missing Dart tools.
  • auth login ties the CLI to your account. The account decides which bricks you can download.
  • create writes a config file, you edit it, and you press Enter. The file is deleted after generation.

The config is plain JSON:

json
{
  "appName": "MyApp",
  "organization": "Acme",
  "domain": "com",
  "prefix": "App",
  "gitProvider": "github",
  "networkLibrary": "dio",
  "stateManagement": "bloc",
  "monitoringVendors": ["sentry"],
  "starterFeatures": ["introduction_sdk", "auth_sdk", "home_sdk", "paywall_sdk"]
}

stateManagement is bloc, cubit, provider or riverpod. gitProvider is github or gitlab. Every option is in Getting Started and the flutter_modular_monorepo brick page.

Then link the packages and run:

bash
cd my_app
melos bootstrap
flutter run

Run it in CI or a script ​

Without a terminal, nobody can answer the prompts. Pass the config and the output folder:

bash
archipelago auth login --token "$ARCHIPELAGO_TOKEN"
archipelago create --config project_config.json --output ./my_app

Create the token in the dashboard under CLI Tokens, and keep it in a CI secret. The same flags work for generate. If files may already exist, add --on-conflict overwrite or --on-conflict skip.

Add features later ​

bash
archipelago brick list
archipelago generate feature_monorepo_skeleton
archipelago generate auth_sdk

brick list shows the bricks your plan can use. feature_monorepo_skeleton makes an empty feature package that registers its own routes and dependency injection. A brick such as auth_sdk adds a finished feature. Adding bricks does not use up a project scaffold. There are 76 bricks: 50 Free, 20 Pro and 6 Enterprise. Browse them in the Brick Catalog.

Upgrade what you generated ​

Bricks have their own versions. To merge a newer version into packages you changed:

bash
archipelago upgrade auth_sdk --dry-run
archipelago upgrade auth_sdk

--dry-run shows what would change and writes nothing. If files conflict, they keep conflict markers, and you run the command again after you fix them. See Upgrading generated packages.

What the toolkit adds ​

The generated devtools/ folder runs in your repo with no CLI dependency. It has scripts for flavors, environment files, dependency graph checks and release builds with build_prepare. See Monorepo Toolkit and the Flutter monorepo template for the layout.

When not to use Archipelago ​

  • You want an empty app. Use flutter create.
  • You want no sign-in. Very Good CLI and Mason need no account. Archipelago needs a free one.
  • You want one tested app, not a monorepo. Very Good CLI is a good fit, and its test tooling is strong.
  • You write your own templates. Mason is the tool for that. Archipelago is built on it.
  • Your project is a package or plugin. Archipelago makes app monorepos. Very Good CLI has templates for packages, plugins and Dart CLIs.

FAQ ​

What is the best Flutter project generator? ​

It depends on what you need. flutter create for an empty app. Very Good CLI for a free, tested single app. Mason for your own templates. Archipelago for a modular monorepo with DI and CI wired, and features you add later.

Do I need to install Mason? ​

No. Archipelago uses Mason under the hood, and the CLI handles it for you.

Is the CLI free? ​

The CLI is MIT licensed and on pub.dev. The Free plan gives you 3 project scaffolds per month and the Free bricks. See pricing for Pro and Enterprise.

Can I run it in CI? ​

Yes. Use --config and --output, and log in with a token. See the CI section above.

Does it overwrite my files? ​

Only after it asks. By default, it prompts when a generated file already exists and differs. Use --on-conflict skip to keep yours.

Try Archipelago

Make a free account, install the CLI, and generate a project:

dart pub global activate archipelago_cli
archipelago auth login --interactive
archipelago create --output ./my_app

The Free plan includes 3 project scaffolds per month and the Free bricks. See Getting Started for each step, and pricing for Pro and Enterprise.