{
  "description": "Search Shodan, look up a host or domain, and count results. Needs an API key set with shodan init. Download, stream, alerts and scanning are left out.",
  "name": "shodan",
  "subcommands": [
    {
      "name": "search",
      "description": "Search Shodan and print matching banners.",
      "options": [
        {
          "names": [
            "--limit"
          ],
          "description": "Result limit",
          "args": {
            "name": "limit",
            "isOptional": false
          }
        },
        {
          "names": [
            "--fields"
          ],
          "description": "Comma-separated properties.",
          "args": {
            "name": "fields",
            "description": "Comma-separated properties.",
            "isOptional": false
          }
        },
        {
          "names": [
            "--separator"
          ],
          "description": "Separator",
          "args": {
            "name": "separator",
            "isOptional": false
          }
        }
      ],
      "args": [
        {
          "name": "query",
          "isOptional": false,
          "isVariadic": true
        }
      ]
    },
    {
      "name": "host",
      "description": "Show everything known about an IP address.",
      "options": [
        {
          "names": [
            "--history"
          ],
          "description": "Include history"
        },
        {
          "names": [
            "--format"
          ],
          "description": "Format",
          "args": {
            "name": "format",
            "isOptional": false,
            "suggestions": [
              {
                "name": "pretty",
                "description": "Pretty"
              },
              {
                "name": "tsv",
                "description": "TSV"
              }
            ]
          }
        },
        {
          "names": [
            "--filename",
            "-O"
          ],
          "description": "Save to file",
          "args": {
            "name": "filename",
            "isOptional": false,
            "template": "filepaths"
          }
        }
      ],
      "args": [
        {
          "name": "ip",
          "isOptional": false
        }
      ]
    },
    {
      "name": "count",
      "description": "Count how many results match a query.",
      "args": [
        {
          "name": "query",
          "isOptional": false,
          "isVariadic": true
        }
      ]
    },
    {
      "name": "domain",
      "description": "Show DNS records and subdomains for a domain.",
      "options": [
        {
          "names": [
            "--details",
            "-D"
          ],
          "description": "Look up host details"
        },
        {
          "names": [
            "--history",
            "-H"
          ],
          "description": "Historical DNS data"
        },
        {
          "names": [
            "--type",
            "-T"
          ],
          "description": "Record type",
          "args": {
            "name": "type",
            "isOptional": false,
            "suggestions": [
              {
                "name": "A",
                "description": "A"
              },
              {
                "name": "MX",
                "description": "MX"
              },
              {
                "name": "TXT",
                "description": "TXT"
              }
            ]
          }
        }
      ],
      "args": [
        {
          "name": "domain",
          "isOptional": false
        }
      ]
    }
  ]
}
