Overview
Very Good CLI is a Command-Line Interface that enables you to generate VGV-opinionated templates and execute helpful commands.

Quick Start 🚀
Prerequisites 📝
In order to use Very Good CLI you must have Dart and Flutter installed on your machine.
Very Good CLI requires Dart ">=3.11.0 <4.0.0"
Installing
dart pub global activate very_good_cli
Or install a specific version using:
dart pub global activate very_good_cli <version>
If you haven't already, you might need to set up your path.
When that is not possible (eg: CI environments), run very_good commands via:
dart pub global run very_good_cli:very_good <command> <args>
Commands
very_good create
Create a very good project in seconds based on the provided template. Each template has a corresponding sub-command.
Ex: very_good create flutter_app my_app will generate a Flutter starter app named my_app.
Creates a new very good project in the specified directory.
Usage: very_good create <subcommand> <project-name> [arguments]
-h, --help Print this usage information.
Available subcommands:
app_ui_package Generate a Very Good App UI package.
dart_cli Generate a Very Good Dart CLI application.
dart_package Generate a Very Good Dart package.
docs_site Generate a Very Good documentation site.
flame_game Generate a Very Good Flame game.
flutter_app Generate a Very Good Flutter application.
flutter_package Generate a Very Good Flutter package.
flutter_plugin Generate a Very Good Flutter plugin.
Run "very_good help" to see global options.
Pass . as the project name to create the project in the current directory.
Very Good CLI derives the project name from the current directory's basename.
See the create command docs for more details.
very_good mcp
Start the MCP (Model Context Protocol) server for AI assistant integration.
# Start the MCP server
very_good mcp
very_good packages get
Get packages in a Dart or Flutter project.
# Install packages in the current directory
very_good packages get
# Install packages in ./some/other/directory
very_good packages get ./some/other/directory
# Install packages recursively
very_good packages get --recursive
# Install packages recursively (shorthand)
very_good packages get -r
very_good packages check licenses
Check packages' licenses in a Dart or Flutter project.
# Check licenses in the current directory
very_good packages check licenses
# Only allow the use of certain licenses
very_good packages check licenses --allowed="MIT,BSD-3-Clause,BSD-2-Clause,Apache-2.0"
# Deny the use of certain licenses
very_good packages check licenses --forbidden="unknown"
# Check licenses for certain dependencies types
very_good packages check licenses --dependency-type="direct-main,transitive"
# Check and list licenses in the current directory
very_good packages check licenses --reporter="csv"
very_good test
Run tests in a Dart or Flutter project.
# Run all tests
very_good test
# Run all tests and collect coverage
very_good test --coverage
# Run all tests and enforce 100% coverage
very_good test --coverage --min-coverage 100
# Run only tests in ./some/other/directory
very_good test ./some/other/directory
# Run tests recursively
very_good test --recursive
# Run tests recursively (shorthand)
very_good test -r
# Run tests and stop after the first failure
very_good test --fail-fast
# Run tests and collect coverage from all files
very_good test --coverage --collect-coverage-from all
For Dart projects, use very_good dart test instead.
All test parameters and options work identically with this command.
very_good --help
See the complete list of commands and usage information.
🦄 A Very Good Command-Line Interface
Usage: very_good <command> [arguments]
Global options:
-h, --help Print this usage information.
--version Print the current version.
--[no-]verbose Noisy logging, including all shell commands executed.
Available commands:
create very_good create <subcommand> <project-name> [arguments]
Creates a new very good project in the specified directory.
dart very_good dart <subcommand> [arguments]
Run Dart CLI commands.
mcp Start the MCP (Model Context Protocol) server. WARNING: This is an experimental package and may change or become unstable without notice. Use it with caution at your own risk.
packages Command for managing packages.
test Run tests in a Dart or Flutter project.
update Update Very Good CLI.
Run "very_good help <command>" for more information about a command.