Very Good CLI
A Very Good Command-Line Interface for Dart.
Developed with 💙 by Very Good Ventures 🦄
Documentation 📝
For official documentation, please visit https://cli.vgv.dev.
Quick Start 🚀
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 (e.g.,very_good create flutter_app
will generate a Flutter starter 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:
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.
Usage
# Create a new Flutter app named my_app
very_good create flutter_app my_app
# Create a new Flutter app named my_app with a custom org
very_good create flutter_app my_app --desc "My new Flutter app" --org "com.custom.org"
# Create a new Flutter app named my_app with a custom application id
very_good create flutter_app my_app --desc "My new Flutter app" --application-id "com.custom.app.id"
# Create a new Flame game named my_game
very_good create flame_game my_game --desc "My new Flame game"
# Create a new Wear OS app named my_wear_app
very_good create flutter_app my_wear_app --desc "My new Wear OS app" --template wear
# Create a new Flutter package named my_flutter_package
very_good create flutter_package my_flutter_package --desc "My new Flutter package"
# Create a new Dart package named my_dart_package
very_good create dart_package my_dart_package --desc "My new Dart package"
# Create a new Dart package named my_dart_package that is publishable
very_good create dart_package my_dart_package --desc "My new Dart package" --publishable
# Create a new Dart CLI application named my_dart_cli
very_good create dart_cli my_dart_cli --desc "My new Dart CLI package"
# Create a new Dart CLI application named my_dart_cli with a custom executable name
very_good create dart_cli my_dart_cli --desc "My new Dart CLI package" --executable-name my_executable_name
# Create a new Flutter plugin named my_flutter_plugin (all platforms enabled)
very_good create flutter_plugin my_flutter_plugin --desc "My new Flutter plugin"
# Create a new Flutter plugin named my_flutter_plugin (some platforms only)
very_good create flutter_plugin my_flutter_plugin --desc "My new Flutter plugin" --platforms android,ios,macos
# Create a new docs site named my_docs_site
very_good create docs_site my_docs_site
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
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"
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.
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.