{
  "name": "flutter",
  "description": "Run flutter command",
  "subcommands": [
    {
      "name": "analyze",
      "description": "Analyze the project's Dart code",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "--current-package"
          ],
          "description": "Analyze the current project, if applicable"
        },
        {
          "names": [
            "--no-current-package"
          ],
          "description": "Don't analyze the current project, if applicable"
        },
        {
          "names": [
            "--watch"
          ],
          "description": "Run analysis continuously, watching the filesystem for changes"
        },
        {
          "names": [
            "--write"
          ],
          "description": "Also output the results to a file. This is useful with --watch if you want a file to always contain the latest results",
          "takes_arg": true,
          "arg": {
            "name": "file path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--pub"
          ],
          "description": "Run 'flutter pub get' before executing this command"
        },
        {
          "names": [
            "--no-pub"
          ],
          "description": "Don't run 'flutter pub get' before executing this command"
        },
        {
          "names": [
            "--congratulate"
          ],
          "description": "Show output even when there are no errors, warnings, hints, or lints. Ignored if --watch is specified"
        },
        {
          "names": [
            "--no-congratulate"
          ],
          "description": "Hide output even when there are no errors, warnings, hints, or lints. Ignored if --watch is specified"
        },
        {
          "names": [
            "--preamble"
          ],
          "description": "When analyzing the flutter repository, display the number of files that will be analyzed. Ignored if --watch is specified"
        },
        {
          "names": [
            "--no-preamble"
          ],
          "description": "When analyzing the flutter repository, don't display the number of files that will be analyzed. Ignored if --watch is specified"
        },
        {
          "names": [
            "--fatal-infos"
          ],
          "description": "Treat info level issues as fatal"
        },
        {
          "names": [
            "--no-fatal-infos"
          ],
          "description": "Don't treat info level issues as fatal"
        },
        {
          "names": [
            "--fatal-warnings"
          ],
          "description": "Treat warning level issues as fatal"
        },
        {
          "names": [
            "--no-fatal-warnings"
          ],
          "description": "Don't treat warning level issues as fatal"
        }
      ]
    },
    {
      "name": "assemble",
      "description": "Assemble and build Flutter resources",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "-d",
            "--define"
          ],
          "description": "Allows passing configuration to a target with --define=target=key=value"
        },
        {
          "names": [
            "--performance-measurement-file"
          ],
          "description": "Output individual target performance to a JSON file"
        },
        {
          "names": [
            "-i",
            "--input"
          ],
          "description": "Treat warning level issues as fatal"
        },
        {
          "names": [
            "--depfile"
          ],
          "description": "A file path where a depfile will be written. This contains all build inputs and outputs in a make style syntax"
        },
        {
          "names": [
            "--build-inputs"
          ],
          "description": "A file path where a newline separated file containing all inputs used will be written after a build. This file is not included as a build input or output. This file is not written if the build fails f"
        },
        {
          "names": [
            "--build-outputs"
          ],
          "description": "A file path where a newline separated file containing all outputs used will be written after a build. This file is not included as a build input or output. This file is not written if the build fails "
        },
        {
          "names": [
            "-o",
            "--output"
          ],
          "description": "A directory where output files will be written. Must be either absolute or relative from the root of the current Flutter project"
        },
        {
          "names": [
            "--ExtraGenSnapshotOptions"
          ]
        },
        {
          "names": [
            "--ExtraFrontEndOptions"
          ]
        },
        {
          "names": [
            "--DartDefines"
          ]
        },
        {
          "names": [
            "--resource-pool-size"
          ],
          "description": "The maximum number of concurrent tasks the build system will run"
        }
      ]
    },
    {
      "name": "attach",
      "description": "Attach to a running app",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "--debug"
          ],
          "description": "Build a debug version of your app (default mode)"
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Build a version of your app specialized for performance profiling"
        },
        {
          "names": [
            "-t",
            "--target"
          ],
          "description": "The main entry-point file of the application, as run on the device. If the --target option is omitted, but a file name is provided on the command line, then that is used instead. (defaults to \"lib/mai",
          "takes_arg": true,
          "arg": {
            "name": ".dart file path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--observatory-port"
          ],
          "description": "(deprecated use host-vmservice-port instead) Listen to the given port for an observatory debugger connection. Specifying port 0 (the default) will find a random free port"
        },
        {
          "names": [
            "--device-vmservice-port"
          ],
          "description": "Look for vmservice connections only from the specified port. Specifying port 0 (the default) will accept the first vmservice discovered"
        },
        {
          "names": [
            "--host-vmservice-port"
          ],
          "description": "When a device-side vmservice port is forwarded to a host-side port, use this value as the host port. Specifying port 0 (the default) will find a random free host port"
        },
        {
          "names": [
            "--dart-define"
          ],
          "description": "Additional key-value pairs that will be available as constants from the String.fromEnvironment, bool.fromEnvironment, int.fromEnvironment, and double.fromEnvironment constructors",
          "takes_arg": true,
          "arg": {
            "name": "foo=bar"
          }
        },
        {
          "names": [
            "--device-user"
          ],
          "description": "Identifier number for a user or work profile on Android only. Run \"adb shell pm list users\" for available identifiers",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        },
        {
          "names": [
            "--null-assertions"
          ],
          "description": "Perform additional null assertions on the boundaries of migrated and un-migrated code. This setting is not currently supported on desktop devices"
        },
        {
          "names": [
            "--no-null-assertions"
          ],
          "description": "Not performing additional null assertions on the boundaries of migrated and un-migrated code. This setting is not currently supported on desktop devices"
        },
        {
          "names": [
            "--debug-uri"
          ],
          "description": "The URI at which the observatory is listening"
        },
        {
          "names": [
            "--app-id"
          ],
          "description": "The package name (Android) or bundle identifier (iOS) for the app. This can be specified to avoid being prompted if multiple observatory ports are advertised. If you have multiple devices or emulators"
        },
        {
          "names": [
            "--pid-file"
          ],
          "description": "Specify a file to write the process id to. You can send SIGUSR1 to trigger a hot reload and SIGUSR2 to trigger a hot restart"
        },
        {
          "names": [
            "--track-widget-creation"
          ],
          "description": "Track widget creation locations. This enables features such as the widget inspector. This parameter is only functional in debug mode (i.e. when compiling JIT, not AOT)"
        },
        {
          "names": [
            "--no-track-widget-creation"
          ],
          "description": "No tracking widget creation locations. This disables features such as the widget inspector. This parameter is only functional in debug mode (i.e. when compiling JIT, not AOT)"
        },
        {
          "names": [
            "--dds-port"
          ],
          "description": "When this value is provided, the Dart Development Service (DDS) will be bound to the provided port. Specifying port 0 (the default) will find a random free port"
        },
        {
          "names": [
            "--devtools-server-address"
          ],
          "description": "When this value is provided, the Flutter tool will not spin up a new DevTools server instance, but instead will use the one provided at this address"
        },
        {
          "names": [
            "--device-timeout"
          ],
          "description": "Time in seconds to wait for devices to attach. Longer timeouts may be necessary for networked devices",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        }
      ]
    },
    {
      "name": "bash-completion",
      "description": "Output command line shell completion setup scripts",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "--overwrite"
          ],
          "description": "When performing operations, overwrite existing files"
        },
        {
          "names": [
            "--no-overwrite"
          ]
        }
      ]
    },
    {
      "name": "build",
      "description": "Build an executable app or install bundle",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "-t",
            "--target"
          ],
          "description": "The main entry-point file of the application, as run on the device.\n If the --target option is omitted, but a file name is provided on the command line, then that is used instead.\n(defaults to \"lib/ma",
          "takes_arg": true,
          "arg": {
            "name": "path"
          }
        }
      ],
      "args": [
        {
          "name": "executable-type",
          "suggestions": [
            "aar",
            "apk",
            "appbundle",
            "bundle",
            "ios",
            "ios-framework",
            "ipa",
            "web"
          ]
        }
      ]
    },
    {
      "name": "channel",
      "description": "List or switch Flutter channels",
      "args": [
        {
          "name": "channel-name",
          "description": "Switch to <channel name>. Leave this blank to see available channels"
        }
      ]
    },
    {
      "name": "clean",
      "description": "Delete the build/ and .dart_tool/ directories",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        }
      ]
    },
    {
      "name": "config",
      "description": "Configure Flutter settings",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "--analytics"
          ],
          "description": "Enable reporting anonymously tool usage statistics and crash reports"
        },
        {
          "names": [
            "--no-analytics"
          ],
          "description": "Disable reporting anonymously tool usage statistics and crash reports"
        },
        {
          "names": [
            "--clear-ios-signing-cert"
          ],
          "description": "Clear the saved development certificate choice used to sign apps for iOS device deployment"
        },
        {
          "names": [
            "--android-sdk"
          ],
          "description": "The Android SDK directory"
        },
        {
          "names": [
            "--android-studio-dir"
          ],
          "description": "The Android Studio install directory"
        },
        {
          "names": [
            "--build-dir"
          ],
          "description": "The relative path to override a projects build directory",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "template": "folders"
          }
        },
        {
          "names": [
            "--enable-web"
          ],
          "description": "Enable Flutter for web. This setting will take effect on the master, dev, beta, and stable channels"
        },
        {
          "names": [
            "--no-enable-web"
          ],
          "description": "Disable Flutter for web. This setting will take effect on the master, dev, beta, and stable channels"
        },
        {
          "names": [
            "--enable-linux-desktop"
          ],
          "description": "Enable beta-quality support for desktop on Linux. This setting will take effect on the master, dev, beta, and stable channels. Newer beta versions are available on the beta channel"
        },
        {
          "names": [
            "--no-enable-linux-desktop"
          ],
          "description": "Disable beta-quality support for desktop on Linux. This setting will take effect on the master, dev, beta, and stable channels. Newer beta versions are available on the beta channel"
        },
        {
          "names": [
            "--enable-macos-desktop"
          ],
          "description": "Enable beta-quality support for desktop on macOS. This setting will take effect on the master, dev, beta, and stable channels. Newer beta versions are available on the beta channel"
        },
        {
          "names": [
            "--no-enable-macos-desktop"
          ],
          "description": "Disable beta-quality support for desktop on macOS. This setting will take effect on the master, dev, beta, and stable channels. Newer beta versions are available on the beta channel"
        },
        {
          "names": [
            "--enable-windows-desktop"
          ],
          "description": "Enable beta-quality support for desktop on Windows. This setting will take effect on the master, dev, beta, and stable channels. Newer beta versions are available on the beta channel"
        },
        {
          "names": [
            "--no-enable-windows-desktop"
          ],
          "description": "Disable beta-quality support for desktop on Windows. This setting will take effect on the master, dev, beta, and stable channels. Newer beta versions are available on the beta channel"
        },
        {
          "names": [
            "--single-widget-reload-optimization"
          ],
          "description": "Enable Hot reload optimization for changes to class body of a single widget. This setting will take effect on the master, dev, and beta channels"
        },
        {
          "names": [
            "--no-single-widget-reload-optimization"
          ],
          "description": "Disable Hot reload optimization for changes to class body of a single widget. This setting will take effect on the master, dev, and beta channels"
        },
        {
          "names": [
            "--enable-android"
          ],
          "description": "Enable Flutter for Android. This setting will take effect on the master, dev, beta, and stable channels"
        },
        {
          "names": [
            "--no-enable-android"
          ],
          "description": "Disable Flutter for Android. This setting will take effect on the master, dev, beta, and stable channels"
        },
        {
          "names": [
            "--enable-ios"
          ],
          "description": "Enable Flutter for iOS. This setting will take effect on the master, dev, beta, and stable channels"
        },
        {
          "names": [
            "--no-enable-ios"
          ],
          "description": "Disable Flutter for iOS. This setting will take effect on the master, dev, beta, and stable channels"
        },
        {
          "names": [
            "--enable-fuchsia"
          ],
          "description": "Enable Flutter for Fuchsia. This setting will take effect on the master channel"
        },
        {
          "names": [
            "--no-enable-fuchsia"
          ],
          "description": "Disable Flutter for Fuchsia. This setting will take effect on the master channel"
        },
        {
          "names": [
            "--experimental-invalidation-strategy"
          ],
          "description": "Enable Hot reload optimization that reduces incremental artifact size. This setting will take effect on the master, dev, and beta channels"
        },
        {
          "names": [
            "--no-experimental-invalidation-strategy"
          ],
          "description": "Disable Hot reload optimization that reduces incremental artifact size. This setting will take effect on the master, dev, and beta channels"
        },
        {
          "names": [
            "--clear-features"
          ],
          "description": "Remove all configured features and restore them to the default values"
        }
      ]
    },
    {
      "name": "create",
      "description": "Create a new Flutter project",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "--pub"
          ],
          "description": "Run 'flutter pub get' before executing this command"
        },
        {
          "names": [
            "--no-pub"
          ],
          "description": "Don't run 'flutter pub get' before executing this command"
        },
        {
          "names": [
            "--offline"
          ],
          "description": "When \"flutter pub get\" is run by the create command, this indicates whether to run it in offline mode or not. In offline mode, it will need to have all dependencies already available in the pub cache "
        },
        {
          "names": [
            "--no-offline"
          ]
        },
        {
          "names": [
            "--with-driver-test"
          ],
          "description": "(Deprecated) Also add a flutter_driver dependency and generate a sample 'flutter drive' test. This flag has been deprecated, instead see package:integration_test at https://pub.dev/packages/integratio"
        },
        {
          "names": [
            "--no-with-driver-test"
          ]
        },
        {
          "names": [
            "--overwrite"
          ],
          "description": "When performing operations, overwrite existing files"
        },
        {
          "names": [
            "--no-overwrite"
          ]
        },
        {
          "names": [
            "--description"
          ],
          "description": "The description to use for your new Flutter project. This string ends up in the pubspec.yaml file. (defaults to \"A new Flutter project.\")"
        },
        {
          "names": [
            "--org"
          ],
          "description": "The organization responsible for your new Flutter project, in reverse domain name notation. This string is used in Java package names and as prefix in the iOS bundle identifier. (defaults to \"com.exam"
        },
        {
          "names": [
            "--project-name"
          ],
          "description": "The project name for this new Flutter project. This must be a valid dart package name"
        },
        {
          "names": [
            "-i",
            "--ios-language"
          ],
          "description": "[objc, swift (default)]",
          "takes_arg": true,
          "arg": {
            "suggestions": [
              "objc",
              "swift (default)"
            ]
          }
        },
        {
          "names": [
            "-a",
            "--android-language"
          ],
          "description": "[java, kotlin (default)]",
          "takes_arg": true,
          "arg": {
            "suggestions": [
              "java",
              "kotlin (default)"
            ]
          }
        },
        {
          "names": [
            "--platforms"
          ],
          "description": "The platforms supported by this project. This argument only works when the --template is set to app or plugin. Platform folders (e.g. android/) will be generated in the target project. When adding pla",
          "takes_arg": true,
          "arg": {
            "suggestions": [
              "web",
              "macos",
              "linux",
              "windows",
              "android",
              "ios"
            ]
          }
        },
        {
          "names": [
            "-t",
            "--template"
          ],
          "description": "Specify the type of project to create. [app] (default) Generate a Flutter application. [module] Generate a project to add a Flutter module to an existing Android or iOS application. [package]         ",
          "takes_arg": true,
          "arg": {
            "name": "type",
            "suggestions": [
              "app (default)",
              "module",
              "package",
              "plugin"
            ]
          }
        },
        {
          "names": [
            "-s",
            "--sample"
          ],
          "description": "Specifies the Flutter code sample to use as the main.dart for an application. Implies --template=app. The value should be the sample ID of the desired sample from the API documentation website (http:/",
          "takes_arg": true,
          "arg": {
            "name": "id"
          }
        },
        {
          "names": [
            "--list-samples"
          ],
          "description": "Specifies a JSON output file for a listing of Flutter code samples that can be created with --sample",
          "takes_arg": true,
          "arg": {
            "name": "file path",
            "template": "filepaths"
          }
        }
      ]
    },
    {
      "name": "devices",
      "description": "List all connected devices",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "--machine"
          ],
          "description": "Output device information in machine readable structured JSON format"
        },
        {
          "names": [
            "-t",
            "--timeout"
          ],
          "description": "(deprecated) Use --device-timeout instead"
        },
        {
          "names": [
            "--device-timeout"
          ],
          "description": "Time in seconds to wait for devices to attach. Longer timeouts may be necessary for networked devices",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        }
      ]
    },
    {
      "name": "doctor",
      "description": "Show information about the installed tooling",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "--android-licenses"
          ],
          "description": "Run the Android SDK manager tool to accept the SDK's licenses"
        }
      ]
    },
    {
      "name": "downgrade",
      "description": "Downgrade Flutter to the last active version for the current channel",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        }
      ]
    },
    {
      "name": "drive",
      "description": "Run integration tests for the project on an attached device or emulator",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "--debug"
          ],
          "description": "Build a debug version of your app (default mode)"
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Build a version of your app specialized for performance profiling"
        },
        {
          "names": [
            "--release"
          ],
          "description": "Build a release version of your app"
        },
        {
          "names": [
            "--dart-define"
          ],
          "description": "Additional key-value pairs that will be available as constants from the String.fromEnvironment, bool.fromEnvironment, int.fromEnvironment, and double.fromEnvironment constructors",
          "takes_arg": true,
          "arg": {
            "name": "foo=bar"
          }
        },
        {
          "names": [
            "--flavor"
          ],
          "description": "Build a custom app flavor as defined by platform-specific build setup. Supports the use of product flavors in Android Gradle scripts, and the use of custom Xcode schemes"
        },
        {
          "names": [
            "--web-renderer"
          ],
          "description": "The renderer implementation to use when building for the web. Possible values are: html - always use the HTML renderer. This renderer uses a combination of HTML, CSS, SVG, 2D Canvas, and WebGL. This i"
        },
        {
          "names": [
            "--trace-startup"
          ],
          "description": "Trace application startup, then exit, saving the trace to a file"
        },
        {
          "names": [
            "--verbose-system-logs"
          ],
          "description": "Include verbose logging from the flutter engine"
        },
        {
          "names": [
            "--cache-sksl"
          ],
          "description": "Only cache the shader in SkSL instead of binary or GLSL"
        },
        {
          "names": [
            "--dump-skp-on-shader-compilation"
          ],
          "description": "Automatically dump the skp that triggers new shader compilations. This is useful for writing custom ShaderWarmUp to reduce jank. By default, this is not enabled to reduce the overhead. This is only av"
        },
        {
          "names": [
            "--purge-persistent-cache"
          ],
          "description": "Removes all existing persistent caches. This allows reproducing shader compilation jank that normally only happens the first time an app is run, or for reliable testing of compilation jank fixes (e.g."
        },
        {
          "names": [
            "--route"
          ],
          "description": "Which route to load when running the app"
        },
        {
          "names": [
            "--vmservice-out-file"
          ],
          "description": "A file to write the attached vmservice uri to after an application is started. e.g. project/example/out.txt",
          "takes_arg": true,
          "arg": {
            "name": ".txt output file path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--use-application-binary"
          ],
          "description": "Specify a pre-built application binary to use when running. For android applications, this must be the path to an APK. For iOS applications, the path to an IPA. Other device types do not yet support p",
          "takes_arg": true,
          "arg": {
            "name": "file path to .apk",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--endless-trace-buffer"
          ],
          "description": "Enable tracing to the endless tracer. This is useful when recording huge amounts of traces. If we need to use endless buffer to record startup traces, we can combine the (\"--trace-startup\"). For examp"
        },
        {
          "names": [
            "--trace-systrace"
          ],
          "description": "Enable tracing to the system tracer. This is only useful on platforms where such a tracer is available (Android and Fuchsia)"
        },
        {
          "names": [
            "--trace-skia"
          ],
          "description": "Enable tracing of Skia code. This is useful when debugging the raster thread (formerly known as the GPU thread). By default, Flutter will not log skia code"
        },
        {
          "names": [
            "-a",
            "--dart-entrypoint-args"
          ],
          "description": "Pass a list of arguments to the Dart entrypoint at application startup. By default this is main(List<String> args). Specify this option multiple times each with one argument to pass multiple arguments"
        },
        {
          "names": [
            "-t",
            "--target"
          ],
          "description": "The main entry-point file of the application, as run on the device. If the --target option is omitted, but a file name is provided on the command line, then that is used instead. (defaults to \"lib/mai",
          "takes_arg": true,
          "arg": {
            "name": ".dart file path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--observatory-port"
          ],
          "description": "(deprecated use host-vmservice-port instead) Listen to the given port for an observatory debugger connection. Specifying port 0 (the default) will find a random free port"
        },
        {
          "names": [
            "--device-vmservice-port"
          ],
          "description": "Look for vmservice connections only from the specified port. Specifying port 0 (the default) will accept the first vmservice discovered"
        },
        {
          "names": [
            "--host-vmservice-port"
          ],
          "description": "When a device-side vmservice port is forwarded to a host-side port, use this value as the host port. Specifying port 0 (the default) will find a random free host port"
        },
        {
          "names": [
            "--pub"
          ],
          "description": "Run 'flutter pub get' before executing this command"
        },
        {
          "names": [
            "--no-pub"
          ],
          "description": "Don't run 'flutter pub get' before executing this command"
        },
        {
          "names": [
            "--track-widget-creation"
          ],
          "description": "Track widget creation locations. This enables features such as the widget inspector. This parameter is only functional in debug mode (i.e. when compiling JIT, not AOT)"
        },
        {
          "names": [
            "--no-track-widget-creation"
          ],
          "description": "No tracking widget creation locations. This disables features such as the widget inspector. This parameter is only functional in debug mode (i.e. when compiling JIT, not AOT)"
        },
        {
          "names": [
            "--null-assertions"
          ],
          "description": "Perform additional null assertions on the boundaries of migrated and un-migrated code. This setting is not currently supported on desktop devices"
        },
        {
          "names": [
            "--no-null-assertions"
          ],
          "description": "Not performing additional null assertions on the boundaries of migrated and un-migrated code. This setting is not currently supported on desktop devices"
        },
        {
          "names": [
            "--device-user"
          ],
          "description": "Identifier number for a user or work profile on Android only. Run \"adb shell pm list users\" for available identifiers",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        },
        {
          "names": [
            "--device-timeout"
          ],
          "description": "Time in seconds to wait for devices to attach. Longer timeouts may be necessary for networked devices",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        },
        {
          "names": [
            "--dds-port"
          ],
          "description": "When this value is provided, the Dart Development Service (DDS) will be bound to the provided port. Specifying port 0 (the default) will find a random free port"
        },
        {
          "names": [
            "--devtools-server-address"
          ],
          "description": "When this value is provided, the Flutter tool will not spin up a new DevTools server instance, but instead will use the one provided at this address"
        },
        {
          "names": [
            "--keep-app-running"
          ],
          "description": "Will keep the Flutter application running when done testing. By default, \"flutter drive\" stops the application after tests are finished, and --keep-app-running overrides this. On the other hand, if --"
        },
        {
          "names": [
            "--no-keep-app-running"
          ]
        },
        {
          "names": [
            "--use-existing-app"
          ],
          "description": "Connect to an already running instance via the given observatory URL. If this option is given, the application will not be automatically started, and it will only be stopped if --no-keep-app-running i",
          "takes_arg": true,
          "arg": {
            "name": "URL"
          }
        },
        {
          "names": [
            "--driver"
          ],
          "description": "The test file to run on the host (as opposed to the target file to run on the device). By default, this file has the same base name as the target file, but in the \"test_driver/\" directory instead, and",
          "takes_arg": true,
          "arg": {
            "name": "driver"
          }
        },
        {
          "names": [
            "--build"
          ],
          "description": "(Deprecated) Build the app before running. To use an existing app, pass the --use-application-binary flag with an existing APK (defaults to on)"
        },
        {
          "names": [
            "--no-build"
          ]
        },
        {
          "names": [
            "--driver-port"
          ],
          "description": "The port where Webdriver server is launched at. Defaults to 4444",
          "takes_arg": true,
          "arg": {
            "name": "port number"
          }
        },
        {
          "names": [
            "--headless"
          ],
          "description": "Whether the driver browser is going to be launched in headless mode. Defaults to true"
        },
        {
          "names": [
            "--no-headless"
          ]
        },
        {
          "names": [
            "--browser-name"
          ],
          "description": "Name of browser where tests will be executed. Following browsers are supported: Chrome, Firefox, Safari (macOS and iOS) and Edge. Defaults to Chrome. [android-chrome, chrome (default), edge, firefox, "
        },
        {
          "names": [
            "--browser-dimension"
          ],
          "description": "The dimension of browser when running Flutter Web test. This will affect screenshot and all offset-related actions. By default. it is set to 1600,1024 (1600 by 1024). (defaults to \"1600,1024\")"
        },
        {
          "names": [
            "--android-emulator"
          ],
          "description": "Whether to perform Flutter Driver testing on Android Emulator.Works only if 'browser-name' is set to 'android-chrome'"
        },
        {
          "names": [
            "--no-android-emulator"
          ]
        },
        {
          "names": [
            "--chrome-binary"
          ],
          "description": "Location of Chrome binary. Works only if 'browser-name' is set to 'chrome'"
        },
        {
          "names": [
            "--write-sksl-on-exit"
          ],
          "description": "Attempts to write an SkSL file when the drive process is finished to the provided file, overwriting it if necessary"
        },
        {
          "names": [
            "--test-arguments"
          ],
          "description": "Additional arguments to pass to the Dart VM running The test script"
        }
      ]
    },
    {
      "name": "emulators",
      "description": "List, launch and create emulators",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "--launch"
          ],
          "description": "The full or partial ID of the emulator to launch",
          "takes_arg": true,
          "arg": {
            "name": "emulator id"
          }
        },
        {
          "names": [
            "--create"
          ],
          "description": "Creates a new Android emulator based on a Pixel device"
        },
        {
          "names": [
            "--name"
          ],
          "description": "Used with flag --create. Specifies a name for the emulator being created"
        }
      ]
    },
    {
      "name": "format",
      "description": "Format one or more Dart files",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "-n",
            "--dry-run"
          ],
          "description": "Show which files would be modified but make no changes"
        },
        {
          "names": [
            "--set-exit-if-changed"
          ],
          "description": "Return exit code 1 if there are any formatting changes"
        },
        {
          "names": [
            "-m",
            "--machine"
          ],
          "description": "Produce machine-readable JSON output"
        },
        {
          "names": [
            "-l",
            "--line-length"
          ],
          "description": "Wrap lines longer than this length. Defaults to 80 characters. (defaults to \"80\")"
        }
      ]
    },
    {
      "name": "gen-l10n",
      "description": "Generate localizations for the current project",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "--arb-dir"
          ],
          "description": "The directory where the template and translated arb files are located. (defaults to \"lib/l10n\")"
        },
        {
          "names": [
            "--output-dir"
          ],
          "description": "The directory where the generated localization classes will be written if the synthetic-package flag is set to false. If output-dir is specified and the synthetic-package flag is enabled, this option "
        },
        {
          "names": [
            "--template-arb-file"
          ],
          "description": "The template arb file that will be used as the basis for generating the Dart localization and messages files. (defaults to \"app_en.arb\")"
        },
        {
          "names": [
            "--output-localization-file"
          ],
          "description": "The filename for the output localization and localizations delegate classes. (defaults to \"app_localizations.dart\")"
        },
        {
          "names": [
            "--untranslated-messages-file"
          ],
          "description": "The location of a file that describes the localization messages have not been translated yet. Using this option will create a JSON file at the target location, in the following format: \"locale\": [\"mes"
        },
        {
          "names": [
            "--output-class"
          ],
          "description": "The Dart class name to use for the output localization and localizations delegate classes. (defaults to \"AppLocalizations\")"
        },
        {
          "names": [
            "--preferred-supported-locales"
          ],
          "description": "The list of preferred supported locales for the application. By default, the tool will generate the supported locales list in alphabetical order. Use this flag if you would like to default to a differ",
          "takes_arg": true,
          "arg": {
            "name": "locale"
          }
        },
        {
          "names": [
            "--header"
          ],
          "description": "The header to prepend to the generated Dart localizations files. This option takes in a string. For example, pass in \"/// All localized files.\" if you would like this string prepended to the generated"
        },
        {
          "names": [
            "--header-file"
          ],
          "description": "The header to prepend to the generated Dart localizations files. The value of this option is the name of the file that contains the header text which will be inserted at the top of each generated Dart"
        },
        {
          "names": [
            "--use-deferred-loading"
          ],
          "description": "Generate the Dart localization file with locales imported as deferred, allowing for lazy loading of each locale in Flutter web. \n\nThis can reduce a web app’s initial startup time by decreasing the siz"
        },
        {
          "names": [
            "--no-use-deferred-loading"
          ],
          "description": "Don't generate the Dart localization file with locales imported as deferred"
        },
        {
          "names": [
            "--gen-inputs-and-outputs-list"
          ],
          "description": "When specified, the tool generates a JSON file containing the tool's inputs and outputs named gen_l10n_inputs_and_outputs.json. \n\nThis can be useful for keeping track of which files of the Flutter pro",
          "takes_arg": true,
          "arg": {
            "name": "path to output directory",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--synthetic-package"
          ],
          "description": "Determines that the generated output files will be generated as a synthetic package or at a specified directory in the Flutter project. \n\nThis flag is set to true by default. \n\nWhen synthetic-package "
        },
        {
          "names": [
            "--no-synthetic-package"
          ]
        },
        {
          "names": [
            "--project-dir"
          ],
          "description": "When specified, the tool uses the path passed into this option as the directory of the root Flutter project. \n\nWhen null, the relative path to the present working directory will be used",
          "takes_arg": true,
          "arg": {
            "name": "absolute path to flutter project",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--required-resource-attributes"
          ],
          "description": "Requires all resource ids to contain a corresponding resource attribute. \n\nBy default, simple messages will not require metadata, but it is highly recommended as this provides context for the meaning "
        },
        {
          "names": [
            "--no-required-resource-attributes"
          ]
        }
      ]
    },
    {
      "name": "install",
      "description": "Install a Flutter app on an attached device",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "--device-user"
          ],
          "description": "Identifier number for a user or work profile on Android only. Run \"adb shell pm list users\" for available identifiers",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        },
        {
          "names": [
            "--device-timeout"
          ],
          "description": "Time in seconds to wait for devices to attach. Longer timeouts may be necessary for networked devices",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        }
      ]
    },
    {
      "name": "logs",
      "description": "Show log output for running Flutter apps",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "-c",
            "--clear"
          ],
          "description": "Clear log history before reading from logs"
        },
        {
          "names": [
            "--device-timeout"
          ],
          "description": "Time in seconds to wait for devices to attach. Longer timeouts may be necessary for networked devices",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        }
      ]
    },
    {
      "name": "pub",
      "description": "Commands for managing Flutter packages",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "add"
          ],
          "description": "Add a dependency to pubspec.yaml"
        },
        {
          "names": [
            "cache"
          ],
          "description": "Work with the Pub system cache"
        },
        {
          "names": [
            "deps"
          ],
          "description": "Print package dependencies"
        },
        {
          "names": [
            "downgrade"
          ],
          "description": "Downgrade packages in a Flutter project"
        },
        {
          "names": [
            "get"
          ],
          "description": "Get packages in a Flutter project"
        },
        {
          "names": [
            "global"
          ],
          "description": "Work with Pub global packages"
        },
        {
          "names": [
            "login"
          ],
          "description": "Log into pub.dev"
        },
        {
          "names": [
            "logout"
          ],
          "description": "Log out of pub.dev"
        },
        {
          "names": [
            "outdated"
          ],
          "description": "Analyze dependencies to find which ones can be upgraded"
        },
        {
          "names": [
            "pub"
          ],
          "description": "Pass the remaining arguments to Dart's \"pub\" tool"
        },
        {
          "names": [
            "publish"
          ],
          "description": "Publish the current package to pub.dartlang.org"
        },
        {
          "names": [
            "remove"
          ],
          "description": "Removes a dependency from the current package"
        },
        {
          "names": [
            "run"
          ],
          "description": "Run an executable from a package"
        },
        {
          "names": [
            "test"
          ],
          "description": "Run the \"test\" package"
        },
        {
          "names": [
            "upgrade"
          ],
          "description": "Upgrade the current package's dependencies to latest versions"
        },
        {
          "names": [
            "uploader"
          ],
          "description": "Manage uploaders for a package on pub.dev"
        },
        {
          "names": [
            "version"
          ],
          "description": "Print Pub version"
        }
      ]
    },
    {
      "name": "run",
      "description": "Run your Flutter app on an attached device",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "--debug"
          ],
          "description": "Build a debug version of your app (default mode)"
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Build a version of your app specialized for performance profiling"
        },
        {
          "names": [
            "--release"
          ],
          "description": "Build a release version of your app"
        },
        {
          "names": [
            "--dart-define"
          ],
          "description": "Additional key-value pairs that will be available as constants from the String.fromEnvironment, bool.fromEnvironment, int.fromEnvironment, and double.fromEnvironment constructors",
          "takes_arg": true,
          "arg": {
            "name": "foo=bar"
          }
        },
        {
          "names": [
            "--flavor"
          ],
          "description": "Build a custom app flavor as defined by platform-specific build setup. Supports the use of product flavors in Android Gradle scripts, and the use of custom Xcode schemes"
        },
        {
          "names": [
            "--web-renderer"
          ],
          "description": "The renderer implementation to use when building for the web. Possible values are: html - always use the HTML renderer. This renderer uses a combination of HTML, CSS, SVG, 2D Canvas, and WebGL. This i"
        },
        {
          "names": [
            "--trace-startup"
          ],
          "description": "Trace application startup, then exit, saving the trace to a file"
        },
        {
          "names": [
            "--verbose-system-logs"
          ],
          "description": "Include verbose logging from the flutter engine"
        },
        {
          "names": [
            "--cache-sksl"
          ],
          "description": "Only cache the shader in SkSL instead of binary or GLSL"
        },
        {
          "names": [
            "--dump-skp-on-shader-compilation"
          ],
          "description": "Automatically dump the skp that triggers new shader compilations. This is useful for writing custom ShaderWarmUp to reduce jank. By default, this is not enabled to reduce the overhead. This is only av"
        },
        {
          "names": [
            "--purge-persistent-cache"
          ],
          "description": "Removes all existing persistent caches. This allows reproducing shader compilation jank that normally only happens the first time an app is run, or for reliable testing of compilation jank fixes (e.g."
        },
        {
          "names": [
            "--route"
          ],
          "description": "Which route to load when running the app"
        },
        {
          "names": [
            "--vmservice-out-file"
          ],
          "description": "A file to write the attached vmservice uri to after an application is started. e.g. project/example/out.txt",
          "takes_arg": true,
          "arg": {
            "name": ".txt output file path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--use-application-binary"
          ],
          "description": "Specify a pre-built application binary to use when running. For android applications, this must be the path to an APK. For iOS applications, the path to an IPA. Other device types do not yet support p",
          "takes_arg": true,
          "arg": {
            "name": "file path to .apk",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--endless-trace-buffer"
          ],
          "description": "Enable tracing to the endless tracer. This is useful when recording huge amounts of traces. If we need to use endless buffer to record startup traces, we can combine the (\"--trace-startup\"). For examp"
        },
        {
          "names": [
            "--trace-systrace"
          ],
          "description": "Enable tracing to the system tracer. This is only useful on platforms where such a tracer is available (Android and Fuchsia)"
        },
        {
          "names": [
            "--trace-skia"
          ],
          "description": "Enable tracing of Skia code. This is useful when debugging the raster thread (formerly known as the GPU thread). By default, Flutter will not log skia code"
        },
        {
          "names": [
            "-a",
            "--dart-entrypoint-args"
          ],
          "description": "Pass a list of arguments to the Dart entrypoint at application startup. By default this is main(List<String> args). Specify this option multiple times each with one argument to pass multiple arguments"
        },
        {
          "names": [
            "-t",
            "--target"
          ],
          "description": "The main entry-point file of the application, as run on the device. If the --target option is omitted, but a file name is provided on the command line, then that is used instead. (defaults to \"lib/mai",
          "takes_arg": true,
          "arg": {
            "name": ".dart file path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--observatory-port"
          ],
          "description": "(deprecated use host-vmservice-port instead) Listen to the given port for an observatory debugger connection. Specifying port 0 (the default) will find a random free port"
        },
        {
          "names": [
            "--device-vmservice-port"
          ],
          "description": "Look for vmservice connections only from the specified port. Specifying port 0 (the default) will accept the first vmservice discovered"
        },
        {
          "names": [
            "--host-vmservice-port"
          ],
          "description": "When a device-side vmservice port is forwarded to a host-side port, use this value as the host port. Specifying port 0 (the default) will find a random free host port"
        },
        {
          "names": [
            "--pub"
          ],
          "description": "Run 'flutter pub get' before executing this command"
        },
        {
          "names": [
            "--no-pub"
          ],
          "description": "Don't run 'flutter pub get' before executing this command"
        },
        {
          "names": [
            "--track-widget-creation"
          ],
          "description": "Track widget creation locations. This enables features such as the widget inspector. This parameter is only functional in debug mode (i.e. when compiling JIT, not AOT)"
        },
        {
          "names": [
            "--no-track-widget-creation"
          ],
          "description": "No tracking widget creation locations. This disables features such as the widget inspector. This parameter is only functional in debug mode (i.e. when compiling JIT, not AOT)"
        },
        {
          "names": [
            "--null-assertions"
          ],
          "description": "Perform additional null assertions on the boundaries of migrated and un-migrated code. This setting is not currently supported on desktop devices"
        },
        {
          "names": [
            "--no-null-assertions"
          ],
          "description": "Not performing additional null assertions on the boundaries of migrated and un-migrated code. This setting is not currently supported on desktop devices"
        },
        {
          "names": [
            "--device-user"
          ],
          "description": "Identifier number for a user or work profile on Android only. Run \"adb shell pm list users\" for available identifiers",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        },
        {
          "names": [
            "--device-timeout"
          ],
          "description": "Time in seconds to wait for devices to attach. Longer timeouts may be necessary for networked devices",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        },
        {
          "names": [
            "--dds-port"
          ],
          "description": "When this value is provided, the Dart Development Service (DDS) will be bound to the provided port. Specifying port 0 (the default) will find a random free port"
        },
        {
          "names": [
            "--devtools-server-address"
          ],
          "description": "When this value is provided, the Flutter tool will not spin up a new DevTools server instance, but instead will use the one provided at this address"
        },
        {
          "names": [
            "--enable-software-rendering"
          ],
          "description": "Enable rendering using the Skia software backend. This is useful when testing Flutter on emulators. By default, Flutter will attempt to either use OpenGL or Vulkan and fall back to software when neith"
        },
        {
          "names": [
            "--skia-deterministic-rendering"
          ],
          "description": "When combined with --enable-software-rendering, provides 100% deterministic Skia rendering"
        },
        {
          "names": [
            "--await-first-frame-when-tracing"
          ],
          "description": "Whether to wait for the first frame when tracing startup (\"--trace-startup\"), or just dump the trace as soon as the application is running. The first frame is detected by looking for a Timeline event "
        },
        {
          "names": [
            "--no-await-first-frame-when-tracing"
          ]
        },
        {
          "names": [
            "--use-test-fonts"
          ],
          "description": "Enable (and default to) the \"Ahem\" font. This is a special font used in tests to remove any dependencies on the font metrics. It is enabled when you use \"flutter test\". Set this flag when running a te"
        },
        {
          "names": [
            "--no-use-test-fonts"
          ]
        },
        {
          "names": [
            "--build"
          ],
          "description": "(Deprecated) Build the app before running. To use an existing app, pass the --use-application-binary flag with an existing APK (defaults to on)"
        },
        {
          "names": [
            "--no-build"
          ]
        },
        {
          "names": [
            "--pid-file"
          ],
          "description": "Specify a file to write the process id to. You can send SIGUSR1 to trigger a hot reload and SIGUSR2 to trigger a hot restart"
        },
        {
          "names": [
            "--fast-start"
          ],
          "description": "Whether to quickly bootstrap applications with a minimal app. Currently this is only supported on Android devices. This option cannot be paired with --use-application-binary"
        },
        {
          "names": [
            "--no-fast-start"
          ]
        }
      ]
    },
    {
      "name": "screenshot",
      "description": "Take a screenshot from a connected device",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "-o",
            "--out"
          ],
          "description": "Location to write the screenshot",
          "takes_arg": true,
          "arg": {
            "name": "path to file",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--observatory-uri"
          ],
          "description": "The observatory URI to connect to. This is required when --type is \"skia\" or \"rasterizer\". To find the observatory URI, use \"flutter run\" and look for \"An Observatory ... is available at\" in the outpu",
          "takes_arg": true,
          "arg": {
            "name": "URI"
          }
        },
        {
          "names": [
            "--type"
          ],
          "description": "The type of screenshot to retrieve. [device] (default)    Delegate to the device's native screenshot capabilities. This screenshots the entire screen currently being displayed (including content not r",
          "takes_arg": true,
          "arg": {
            "name": "type",
            "suggestions": [
              "device (default)",
              "rasterizer",
              "skia"
            ]
          }
        },
        {
          "names": [
            "--device-timeout"
          ],
          "description": "Time in seconds to wait for devices to attach. Longer timeouts may be necessary for networked devices",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        }
      ]
    },
    {
      "name": "symbolize",
      "description": "Symbolize a stack trace from an AOT-compiled Flutter app",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "-d",
            "--debug-info"
          ],
          "description": "A path to the symbols file generated with \"--split-debug-info\". e.g. /out/android/app.arm64.symbols",
          "takes_arg": true,
          "arg": {
            "name": "file path of .symbols",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-i",
            "--input"
          ],
          "description": "A file path containing a Dart stack trace. e.g. /crashes/stack_trace.err",
          "takes_arg": true,
          "arg": {
            "name": "file path",
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-o",
            "--output"
          ],
          "takes_arg": true,
          "arg": {
            "name": "file path",
            "description": "A file path for a symbolized stack trace to be written to",
            "template": "filepaths"
          }
        }
      ]
    },
    {
      "name": "test",
      "description": "Run Flutter unit tests for the current project",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "--pub"
          ],
          "description": "Run 'flutter pub get' before executing this command"
        },
        {
          "names": [
            "--no-pub"
          ],
          "description": "Don't run 'flutter pub get' before executing this command"
        },
        {
          "names": [
            "--null-assertions"
          ],
          "description": "Perform additional null assertions on the boundaries of migrated and un-migrated code. This setting is not currently supported on desktop devices"
        },
        {
          "names": [
            "--no-null-assertions"
          ],
          "description": "Not performing additional null assertions on the boundaries of migrated and un-migrated code. This setting is not currently supported on desktop devices"
        },
        {
          "names": [
            "--track-widget-creation"
          ],
          "description": "Track widget creation locations. This enables features such as the widget inspector. This parameter is only functional in debug mode (i.e. when compiling JIT, not AOT)"
        },
        {
          "names": [
            "--no-track-widget-creation"
          ],
          "description": "No tracking widget creation locations. This disables features such as the widget inspector. This parameter is only functional in debug mode (i.e. when compiling JIT, not AOT)"
        },
        {
          "names": [
            "--dart-define"
          ],
          "description": "Additional key-value pairs that will be available as constants from the String.fromEnvironment, bool.fromEnvironment, int.fromEnvironment, and double.fromEnvironment constructors",
          "takes_arg": true,
          "arg": {
            "name": "foo=bar"
          }
        },
        {
          "names": [
            "--web-renderer"
          ],
          "description": "The renderer implementation to use when building for the web. Possible values are: html - always use the HTML renderer. This renderer uses a combination of HTML, CSS, SVG, 2D Canvas, and WebGL. This i"
        },
        {
          "names": [
            "--name"
          ],
          "description": "A regular expression matching substrings of the names of tests to run",
          "takes_arg": true,
          "arg": {
            "name": "regexp"
          }
        },
        {
          "names": [
            "--plain-name"
          ],
          "description": "A plain-text substring of the names of tests to run",
          "takes_arg": true,
          "arg": {
            "name": "substring"
          }
        },
        {
          "names": [
            "-t",
            "--tags"
          ],
          "description": "Run only tests associated with tags"
        },
        {
          "names": [
            "-x",
            "--exclude-tags"
          ],
          "description": "Run only tests WITHOUT given tags"
        },
        {
          "names": [
            "--start-paused"
          ],
          "description": "Start in a paused mode and wait for a debugger to connect. You must specify a single test file to run, explicitly. Instructions for connecting with a debugger are printed to the console once the test "
        },
        {
          "names": [
            "--coverage"
          ],
          "description": "Whether to collect coverage information"
        },
        {
          "names": [
            "--merge-coverage"
          ],
          "description": "Whether to merge coverage data with \"coverage/lcov.base.info\". Implies collecting coverage data. (Requires lcov)"
        },
        {
          "names": [
            "--coverage-path"
          ],
          "description": "Where to store coverage information (if coverage is enabled). (defaults to \"coverage/lcov.info\")"
        },
        {
          "names": [
            "--update-goldens"
          ],
          "description": "Whether matchesGoldenFile() calls within your test methods should update the golden files rather than test for an existing match"
        },
        {
          "names": [
            "--j",
            "--concurrency"
          ],
          "description": "The number of concurrent test processes to run. (defaults to \"6\")",
          "takes_arg": true,
          "arg": {
            "name": "jobs"
          }
        },
        {
          "names": [
            "--test-assets"
          ],
          "description": "Build the assets bundle for testing. Consider using --no-test-assets if assets are not required"
        },
        {
          "names": [
            "--no-test-assets"
          ],
          "description": "Exclude the assets bundle for build testing"
        },
        {
          "names": [
            "--test-randomize-ordering-seed"
          ],
          "description": "The seed to randomize the execution order of test cases. Must be a 32bit unsigned integer or \"random\". If \"random\", pick a random seed to use. If not passed, do not randomize test case execution order"
        },
        {
          "names": [
            "-r",
            "--reporter"
          ],
          "description": "Set how to print test results.\n[compact] (default) A single line, updated continuously.\n[expanded] A separate line for each update.\n[json] A machine-readable format (see https://dart.dev/go/test-docs/",
          "takes_arg": true,
          "arg": {
            "name": "reporter",
            "suggestions": [
              "compact (default)",
              "expanded",
              "json"
            ]
          }
        },
        {
          "names": [
            "--timeout"
          ],
          "description": "The default test timeout. For example: 15s, 2x, none. Defaults to \"30s\""
        },
        {
          "names": [
            "--dds-port"
          ],
          "description": "When this value is provided, the Dart Development Service (DDS) will be bound to the provided port. Specifying port 0 (the default) will find a random free port"
        }
      ]
    },
    {
      "name": "upgrade",
      "description": "Upgrade your copy of Flutter",
      "options": [
        {
          "names": [
            "-h",
            "--help"
          ],
          "description": "Print this usage information"
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
        },
        {
          "names": [
            "-d",
            "--device-id"
          ],
          "description": "Target device id or name (prefixes allowed)",
          "takes_arg": true,
          "arg": {
            "name": "device id",
            "description": "Target device id or name (prefixes allowed)"
          }
        },
        {
          "names": [
            "--suppress-analytics"
          ],
          "description": "Suppress analytics reporting when this command runs"
        },
        {
          "names": [
            "-f",
            "--force"
          ],
          "description": "Force upgrade the flutter branch, potentially discarding local changes"
        },
        {
          "names": [
            "--verify-only"
          ],
          "description": "Verifies for any new flutter update, without fetching the update"
        }
      ]
    }
  ],
  "options": [
    {
      "names": [
        "-h",
        "--help"
      ],
      "description": "Print this usage information"
    },
    {
      "names": [
        "-v",
        "--verbose"
      ],
      "description": "Noisy logging, including all shell commands executed. If used with --help, shows hidden options"
    },
    {
      "names": [
        "-d",
        "--device-id"
      ],
      "description": "Target device id or name (prefixes allowed)",
      "takes_arg": true,
      "arg": {
        "name": "device id",
        "description": "Target device id or name (prefixes allowed)"
      }
    },
    {
      "names": [
        "--suppress-analytics"
      ],
      "description": "Suppress analytics reporting when this command runs"
    }
  ]
}
