{
  "description": "Flash firmware to Espressif chips with espflash, inspect a connected board or list serial ports. Erase, partition-table, save-image and read-flash commands are left out.",
  "options": [
    {
      "names": [
        "--skip-update-check",
        "-S"
      ],
      "description": "Skip update check"
    }
  ],
  "name": "espflash",
  "subcommands": [
    {
      "name": "flash",
      "description": "Flash an ELF application to the connected device. Format, partition and monitor tuning options are left out.",
      "options": [
        {
          "names": [
            "--port",
            "-p"
          ],
          "description": "Leave empty to auto-detect a connected board.",
          "args": {
            "name": "port",
            "description": "Leave empty to auto-detect a connected board.",
            "isOptional": false
          }
        },
        {
          "names": [
            "--baud",
            "-B"
          ],
          "description": "Baud rate",
          "args": {
            "name": "baud",
            "isOptional": false
          },
          "isRequired": true
        },
        {
          "names": [
            "--chip",
            "-c"
          ],
          "description": "Target chip; usually auto-detected.",
          "args": {
            "name": "chip",
            "description": "Target chip; usually auto-detected.",
            "isOptional": false,
            "suggestions": [
              {
                "name": "esp32",
                "description": "ESP32"
              },
              {
                "name": "esp32c3",
                "description": "ESP32-C3"
              },
              {
                "name": "esp32s3",
                "description": "ESP32-S3"
              }
            ]
          }
        },
        {
          "names": [
            "--non-interactive"
          ],
          "description": "Non-interactive"
        },
        {
          "names": [
            "--monitor",
            "-M"
          ],
          "description": "Open monitor after flashing"
        },
        {
          "names": [
            "--no-verify"
          ],
          "description": "Skip verification"
        },
        {
          "names": [
            "--no-stub"
          ],
          "description": "No RAM stub"
        },
        {
          "names": [
            "--erase-parts"
          ],
          "description": "Comma-separated partition labels to erase.",
          "args": {
            "name": "erase_parts",
            "description": "Comma-separated partition labels to erase.",
            "isOptional": false
          },
          "isDangerous": true
        },
        {
          "names": [
            "--partition-table"
          ],
          "description": "Partition table",
          "args": {
            "name": "partition_table",
            "isOptional": false,
            "template": "filepaths"
          }
        }
      ],
      "args": [
        {
          "name": "image",
          "isOptional": true,
          "template": "filepaths"
        }
      ]
    },
    {
      "name": "board-info",
      "description": "Print chip type, flash size, features and MAC address of the connected device.",
      "options": [
        {
          "names": [
            "--port",
            "-p"
          ],
          "description": "Leave empty to auto-detect a connected board.",
          "args": {
            "name": "port",
            "description": "Leave empty to auto-detect a connected board.",
            "isOptional": false
          }
        },
        {
          "names": [
            "--baud",
            "-B"
          ],
          "description": "Baud rate",
          "args": {
            "name": "baud",
            "isOptional": false
          },
          "isRequired": true
        },
        {
          "names": [
            "--chip",
            "-c"
          ],
          "description": "Target chip; usually auto-detected.",
          "args": {
            "name": "chip",
            "description": "Target chip; usually auto-detected.",
            "isOptional": false,
            "suggestions": [
              {
                "name": "esp32",
                "description": "ESP32"
              },
              {
                "name": "esp32c3",
                "description": "ESP32-C3"
              },
              {
                "name": "esp32s3",
                "description": "ESP32-S3"
              }
            ]
          }
        },
        {
          "names": [
            "--non-interactive"
          ],
          "description": "Non-interactive"
        }
      ]
    },
    {
      "name": "list-ports",
      "description": "List serial ports, by default only those used by development boards.",
      "options": [
        {
          "names": [
            "--list-all-ports",
            "-a"
          ],
          "description": "Include all ports"
        },
        {
          "names": [
            "--name-only",
            "-n"
          ],
          "description": "Names only"
        }
      ]
    }
  ]
}
